forked from gzt/A8000
30 changed files with 880 additions and 337 deletions
-
3.env.development
-
2.env.production
-
1components.d.ts
-
228src/assets/404.svg
-
54src/pages/Index/History.vue
-
1src/pages/Index/Index.vue
-
24src/pages/Index/Regular/Consumables.vue
-
71src/pages/Index/Regular/Emergency.vue
-
180src/pages/Index/Regular/Running.vue
-
10src/pages/Index/Regular/TestTube.vue
-
192src/pages/Index/Settings/Device.vue
-
22src/pages/Index/Settings/NavBar.vue
-
134src/pages/Index/Settings/Users.vue
-
6src/pages/Index/TestTube/ChangeUser.vue
-
10src/pages/Index/components/Consumables/MoveLiquidArea.vue
-
14src/pages/Index/components/Consumables/ProjectSelector.vue
-
1src/pages/Index/components/History/HistoryTable.vue
-
5src/pages/Index/components/Running/SampleDisplay.vue
-
9src/pages/Index/components/TestTube/TestTubeRack.vue
-
105src/pages/NotFound/NotFound.vue
-
7src/router/router.ts
-
8src/services/Index/Test-tube/test-tube.ts
-
49src/services/Index/settings/settings.ts
-
6src/store/modules/consumables.ts
-
8src/store/modules/emergency.ts
-
12src/types/Index/History.ts
-
1src/types/Index/Running.ts
-
51src/websocket/socket.ts
-
2tsconfig.app.tsbuildinfo
-
1更改ip和端口说明.txt
@ -1,5 +1,4 @@ |
|||
# 获取服务器信息 |
|||
VITE_USE_MOCK=true |
|||
# VITE_API_BASE_URL=http://localhost:5173 |
|||
VITE_API_BASE_URL=http://127.0.0.1:8082 |
|||
VITE_WS_URL=ws://127.0.0.1:8082 |
|||
# VITE_API_BASE_URL=http://127.0.0.1:8082 |
@ -1,4 +1,4 @@ |
|||
VITE_USE_MOCK=false |
|||
# VITE_API_BASE_URL=http://localhost:5173 |
|||
VITE_API_BASE_URL=http://127.0.0.1:8082 |
|||
# VITE_API_BASE_URL=http://127.0.0.1:8082 |
|||
# http://127.0.0.1:8081 |
@ -0,0 +1,228 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<!-- Generator: Adobe Illustrator 26.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> |
|||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" |
|||
viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve"> |
|||
<style type="text/css"> |
|||
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#F1F5FD;} |
|||
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:url(#路径-4_00000050632979787163712370000004402289656010794929_);} |
|||
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:url(#形状结合_00000096051452682684376650000006052564890831324603_);} |
|||
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:url(#形状结合备份_00000056428556065409621620000004827495438855059113_);} |
|||
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:url(#路径_00000041988667532778376190000011833368102510834822_);} |
|||
.st5{fill-rule:evenodd;clip-rule:evenodd;fill:#7A7A7A;} |
|||
.st6{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_1_);} |
|||
.st7{fill-rule:evenodd;clip-rule:evenodd;fill:url(#矩形_00000121266917754242279680000008763774048916907447_);} |
|||
.st8{fill-rule:evenodd;clip-rule:evenodd;fill:url(#矩形备份_00000092435780921635949690000001301147121284295304_);} |
|||
.st9{fill-rule:evenodd;clip-rule:evenodd;fill:url(#矩形备份-12_00000088090423629104571180000008022994967068858300_);} |
|||
.st10{fill-rule:evenodd;clip-rule:evenodd;fill:#B4B4B4;} |
|||
.st11{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000110462991301696480690000005004056820837907630_);} |
|||
.st12{fill:url(#矩形_00000083089096572437819500000017917013943696071810_);} |
|||
.st13{fill:url(#矩形备份-14_00000081634361041204783920000012875790997377730196_);} |
|||
.st14{fill-rule:evenodd;clip-rule:evenodd;fill:url(#矩形_00000049218456377759483510000000410213997448019359_);} |
|||
.st15{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000093139904852818986750000001778441669465217186_);} |
|||
.st16{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000052075747047872614720000016087753690891059098_);} |
|||
.st17{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000006706339570333159360000014180573116027021481_);} |
|||
.st18{fill:none;stroke:#60A3FF;stroke-width:2;stroke-dasharray:3,2;} |
|||
.st19{fill-rule:evenodd;clip-rule:evenodd;fill:url(#路径-23_00000112618515131201962970000005802617253128440995_);} |
|||
.st20{fill-rule:evenodd;clip-rule:evenodd;fill:#C09332;} |
|||
.st21{fill-rule:evenodd;clip-rule:evenodd;fill:url(#椭圆形备份-4_00000072961332682235062220000006060688426375177632_);} |
|||
</style> |
|||
<g> |
|||
<g> |
|||
<path class="st0" d="M967,646.8l-0.2,4l-0.7,4.1l-1.2,4l-1.6,4.1l-2.2,4.1l-2.7,4.2l-3.5,4.5l-4.2,4.6l-5,4.6l-5.8,4.8l-6.7,4.8 |
|||
l-8.3,5.3l-9.5,5.4l-10.8,5.4l-12.2,5.5l-12,4.8l-13.2,4.8l-14.4,4.7l-15.8,4.7l-32,8.2l-35.7,7.4l-36.8,6.2l-39.6,5.3l-26.7,2.8 |
|||
l-27.7,2.4l-28.5,1.9l-28.5,1.3l-29,0.8l-29.5,0.3l-29.5-0.3l-29-0.8l-28.5-1.3l-28.5-1.9l-27.7-2.4l-26.7-2.8l-39.6-5.3 |
|||
l-36.8-6.2l-35.7-7.4l-32-8.2l-15.8-4.7l-14.4-4.7l-13.2-4.8l-12-4.8l-12.2-5.5l-10.8-5.4l-9.5-5.4l-8.3-5.3l-6.7-4.8l-5.8-4.8 |
|||
l-5-4.6l-4.2-4.6l-3.5-4.5l-2.7-4.2l-2.2-4.1l-1.6-4.1l-1.2-4l-0.7-4.1l-0.2-4l0.2-4l0.7-4l1.2-4.1l1.6-4.1l2.2-4.1l2.7-4.2 |
|||
l3.5-4.5l4.2-4.6l5-4.6l5.8-4.8l6.7-4.8l8.3-5.3l9.5-5.4l10.8-5.4l12.2-5.5l12-4.8l13.2-4.8l14.4-4.7l15.8-4.7l32-8.2l35.7-7.4 |
|||
l36.8-6.2l39.6-5.3l26.7-2.8l27.7-2.4l28.5-1.9l28.5-1.3l29-0.8l29.5-0.3l29.5,0.3l29,0.8l28.5,1.3l28.5,1.9l27.7,2.4l26.7,2.8 |
|||
l39.6,5.3l36.8,6.2l35.7,7.4l32,8.2l15.8,4.7l14.4,4.7l13.2,4.8l12,4.8l12.2,5.5l10.8,5.4l9.5,5.4l8.3,5.3l6.7,4.8l5.8,4.8l5,4.6 |
|||
l4.2,4.6l3.5,4.5l2.7,4.2l2.2,4.1l1.6,4.1l1.2,4l0.7,4.1L967,646.8z"/> |
|||
</g> |
|||
|
|||
<linearGradient id="路径-4_00000026137865964607700810000018170323961780819634_" gradientUnits="userSpaceOnUse" x1="-446.3206" y1="1052.6857" x2="-445.8018" y2="1052.6808" gradientTransform="matrix(752.1 0 0 -73.1 335753.0312 77585.7734)"> |
|||
<stop offset="0" style="stop-color:#3A58DD;stop-opacity:0"/> |
|||
<stop offset="1" style="stop-color:#4164FF;stop-opacity:0.8469"/> |
|||
</linearGradient> |
|||
|
|||
<path id="路径-4" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#路径-4_00000026137865964607700810000018170323961780819634_);" d=" |
|||
M60.8,609.8v21l-38.5,12l280.2,12.4l192,8l124.6,4.8l75.3,2.4l41,1h19.1l7-0.3l1.5-0.3l5.8-4.1l4.3-3.9l0.9-1.4l0.4-1.1l-0.4-2 |
|||
l-1.1-1l-1.9-1l-7.8-3l-11.3-3.4l-16.6-4l-10.3-2.2l-27.9-4.9L679,636l-43.6-6l-56.1-6.7l-188.7-11.6l-54.5-3l-136.5-6.8l-82.6-3.6 |
|||
h-5.3l-6.6,0.6l-8.1,1.3l-10,2.2l-11.9,3.1L60.8,609.8z"/> |
|||
</g> |
|||
<g> |
|||
|
|||
<linearGradient id="形状结合_00000018916409860797645980000005857348407323321274_" gradientUnits="userSpaceOnUse" x1="-443.5644" y1="1053.1757" x2="-443.3418" y2="1052.0496" gradientTransform="matrix(148 0 0 -274.5 65945 289418)"> |
|||
<stop offset="0" style="stop-color:#3A5EDF"/> |
|||
<stop offset="0.5441" style="stop-color:#3A5EDF"/> |
|||
<stop offset="1" style="stop-color:#B6D5FF"/> |
|||
</linearGradient> |
|||
|
|||
<path id="形状结合" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#形状结合_00000018916409860797645980000005857348407323321274_);" d=" |
|||
M332,356.2l29,4.5L279.8,525l80.8,8.6v-81.8l26.4,3.9v80.7l8,0.9v32.5l-8-0.9v61.9l-26.4-3V566L247,553.5v-32L332,356.2z"/> |
|||
|
|||
<linearGradient id="形状结合备份_00000083787728793757186890000011325281787368251058_" gradientUnits="userSpaceOnUse" x1="-443.5644" y1="1053.1757" x2="-443.3418" y2="1052.0496" gradientTransform="matrix(148 0 0 -274.5 66321 289458)"> |
|||
<stop offset="0" style="stop-color:#3A5EDF"/> |
|||
<stop offset="0.5441" style="stop-color:#3A5EDF"/> |
|||
<stop offset="1" style="stop-color:#B6D5FF"/> |
|||
</linearGradient> |
|||
|
|||
<path id="形状结合备份" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#形状结合备份_00000083787728793757186890000011325281787368251058_);" d=" |
|||
M708,396.2l29,4.5L655.8,565l80.8,8.6v-81.8l26.4,3.9v80.7l8,0.9v32.5l-8-0.9v61.9l-26.4-3V606L623,593.5v-32L708,396.2z"/> |
|||
|
|||
<linearGradient id="路径_00000049184280712221121990000016096413304683218330_" gradientUnits="userSpaceOnUse" x1="-440.8087" y1="1053.2773" x2="-441.5797" y2="1053.2874" gradientTransform="matrix(84.5 0 0 -17 37589.8008 18431)"> |
|||
<stop offset="0" style="stop-color:#D9EAFF"/> |
|||
<stop offset="1" style="stop-color:#9BBFFE"/> |
|||
</linearGradient> |
|||
|
|||
<path id="路径" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#路径_00000049184280712221121990000016096413304683218330_);" d=" |
|||
M360.8,533.8l-84.5-9l18.2-8l66.3,7V533.8z"/> |
|||
<g> |
|||
<g> |
|||
<path class="st5" d="M736.8,573.8l-84.5-9l18.2-8l66.3,7V573.8z"/> |
|||
</g> |
|||
|
|||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-440.8087" y1="1053.2773" x2="-441.5797" y2="1053.2874" gradientTransform="matrix(84.5 0 0 -17 37965.8008 18471)"> |
|||
<stop offset="0" style="stop-color:#D9EAFF"/> |
|||
<stop offset="1" style="stop-color:#9BBFFE"/> |
|||
</linearGradient> |
|||
<path class="st6" d="M736.8,573.8l-84.5-9l18.2-8l66.3,7V573.8z"/> |
|||
</g> |
|||
|
|||
<linearGradient id="矩形_00000152246488493413696280000007289114670633051061_" gradientUnits="userSpaceOnUse" x1="-412.0719" y1="1052.1294" x2="-412.0539" y2="1053.0854" gradientTransform="matrix(13.3 0 0 -183.6 5874.0947 193791.2031)"> |
|||
<stop offset="0" style="stop-color:#CAE1FF"/> |
|||
<stop offset="0.3188" style="stop-color:#A5C7F9"/> |
|||
<stop offset="1" style="stop-color:#3258E8"/> |
|||
<stop offset="1" style="stop-color:#3258E8"/> |
|||
</linearGradient> |
|||
|
|||
<path id="矩形" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#矩形_00000152246488493413696280000007289114670633051061_);" d=" |
|||
M387.1,455.5l13.2-8.4l-0.1,175.2l-13.2,8.4L387.1,455.5z"/> |
|||
|
|||
<linearGradient id="矩形备份_00000183963056144538040930000006918638228677206408_" gradientUnits="userSpaceOnUse" x1="-412.0719" y1="1052.1294" x2="-412.0539" y2="1053.0854" gradientTransform="matrix(13.3 0 0 -183.6 6250.0947 193831.1719)"> |
|||
<stop offset="0" style="stop-color:#CAE1FF"/> |
|||
<stop offset="0.3188" style="stop-color:#A5C7F9"/> |
|||
<stop offset="1" style="stop-color:#3258E8"/> |
|||
<stop offset="1" style="stop-color:#3258E8"/> |
|||
</linearGradient> |
|||
|
|||
<path id="矩形备份" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#矩形备份_00000183963056144538040930000006918638228677206408_);" d=" |
|||
M763.1,495.5l13.2-8.4l-0.1,175.2l-13.2,8.4L763.1,495.5z"/> |
|||
|
|||
<linearGradient id="矩形备份-12_00000111191350573636734860000005547321025997162633_" gradientUnits="userSpaceOnUse" x1="-441.7216" y1="1052.6149" x2="-442.0403" y2="1052.4835" gradientTransform="matrix(98.2 0 0 -172.2 43713.707 181692.4062)"> |
|||
<stop offset="0" style="stop-color:#9BBFFE"/> |
|||
<stop offset="1" style="stop-color:#D9EAFF"/> |
|||
</linearGradient> |
|||
|
|||
<path id="矩形备份-12" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#矩形备份-12_00000111191350573636734860000005547321025997162633_);" d=" |
|||
M360.7,360.5l13.8-8l-80,164.2l-18.2,8L360.7,360.5z"/> |
|||
<g> |
|||
<g> |
|||
<path class="st10" d="M736.7,400.5l13.8-8l-80,164.2l-18.2,8L736.7,400.5z"/> |
|||
</g> |
|||
|
|||
<linearGradient id="SVGID_00000153691796376271185850000015217095896536950696_" gradientUnits="userSpaceOnUse" x1="-441.7216" y1="1052.6149" x2="-442.0403" y2="1052.4835" gradientTransform="matrix(98.2 0 0 -172.2 44089.707 181732.4062)"> |
|||
<stop offset="0" style="stop-color:#9BBFFE"/> |
|||
<stop offset="1" style="stop-color:#D9EAFF"/> |
|||
</linearGradient> |
|||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000153691796376271185850000015217095896536950696_);" d=" |
|||
M736.7,400.5l13.8-8l-80,164.2l-18.2,8L736.7,400.5z"/> |
|||
</g> |
|||
|
|||
<linearGradient id="矩形_00000044899230991114335130000008398548563822480526_" gradientUnits="userSpaceOnUse" x1="-443.2955" y1="1052.0338" x2="-443.4508" y2="1052.9313" gradientTransform="matrix(147 0 0 -267.6 65702 282171.2188)"> |
|||
<stop offset="0" style="stop-color:#D9EAFF"/> |
|||
<stop offset="1" style="stop-color:#9BBFFE"/> |
|||
</linearGradient> |
|||
|
|||
<path id="矩形_00000152227757958244507030000006504253000100579753_" style="fill:url(#矩形_00000044899230991114335130000008398548563822480526_);" d=" |
|||
M523.8,375.2l6.5,0.6l6.2,1l6,1.4l5.7,1.8l5.4,2.1l5.3,2.6l5,2.8l4.7,3.2l4.4,3.4l4.1,3.8l3.8,4.1l3.4,4.3l3.1,4.6l2.7,4.9l2.4,5.1 |
|||
l1.9,5.2l1.5,5.4l1.2,5.7l0.6,5.9l0.3,6.1v120l-0.3,6.1l-0.7,5.9l-1.1,5.7l-1.6,5.5l-2.1,5.4l-2.4,5.2L587,608l-3.2,4.7l-3.5,4.4 |
|||
l-3.8,4.2l-4.2,3.8l-4.4,3.5l-4.7,3.2l-4.9,2.8l-5.2,2.4l-5.4,2.1l-5.5,1.6l-5.7,1.1l-5.9,0.7l-13.6,0.3l-7.2-0.5l-6.4-1.5l-6.1-2 |
|||
l-5.7-2.5l-5.5-3l-5.2-3.5l-4.8-3.8l-4.4-4.3l-4.2-4.7l-3.7-5.1l-3.2-5.3l-2.8-5.6l-2.4-6l-1.9-6.1l-1.4-6.3l-0.8-6.5l-0.3-6.8 |
|||
v-120l0.2-6.8l0.6-6.6l1-6.3l1.4-6l1.8-6.1l2.2-5.6l2.6-5.3l3-5l3.4-4.7l3.8-4.3l4.2-3.8l4.6-3.5l4.9-3l5.3-2.5l5.9-2l6.4-1.5 |
|||
l3.5-0.5l11.1-0.6L523.8,375.2z M524.5,409.9l-8,0.8l-7.3,2.3l-6.7,3.6l-5.9,4.8l-4.8,5.9l-3.6,6.7l-2.3,7.3l-0.8,8v120l0.8,8 |
|||
l1,3.7l3,7.1l4.2,6.3l5.3,5.3l6.3,4.2l3.5,1.7l7.3,2.3l3.9,0.6l4.1,0.2l4.1-0.2l7.6-1.6l7.1-3l6.3-4.2l5.3-5.3l2.3-3.1l3.6-6.7 |
|||
l2.3-7.3l0.8-8v-120l-0.8-8l-1-3.7l-3-7.1l-4.2-6.3l-5.3-5.3l-6.3-4.2l-7.1-3l-7.6-1.6L524.5,409.9z"/> |
|||
|
|||
<linearGradient id="矩形备份-14_00000160894761831403589370000001850716006364706737_" gradientUnits="userSpaceOnUse" x1="-443.515" y1="1053.1833" x2="-443.2828" y2="1052.0573" gradientTransform="matrix(147 0 0 -267 65689 281540)"> |
|||
<stop offset="0" style="stop-color:#3A5EDF"/> |
|||
<stop offset="0.5441" style="stop-color:#3A5EDF"/> |
|||
<stop offset="1" style="stop-color:#B6D5FF"/> |
|||
</linearGradient> |
|||
<path id="矩形备份-14" style="fill:url(#矩形备份-14_00000160894761831403589370000001850716006364706737_);" d=" |
|||
M511.5,375.8l6.1,0.3l5.9,0.7l5.7,1.1l5.5,1.6l5.4,2.1l5.2,2.4l4.9,2.8l4.7,3.2l4.4,3.5l4.2,3.8l3.8,4.2l3.5,4.4l3.2,4.7l2.8,4.9 |
|||
l2.4,5.2l2.1,5.4l1.6,5.5l1.1,5.7l0.7,5.9l0.3,6.1v120l-0.3,6.1l-0.7,5.9l-1.1,5.7l-1.6,5.5l-2.1,5.4l-2.4,5.2L574,608l-3.2,4.7 |
|||
l-3.5,4.4l-3.8,4.2l-4.2,3.8l-4.4,3.5l-4.7,3.2l-4.9,2.8l-5.2,2.4l-5.4,2.1l-5.5,1.6l-5.7,1.1l-5.9,0.7l-6.1,0.3l-6.1-0.3l-5.9-0.7 |
|||
l-5.7-1.1l-5.5-1.6l-5.4-2.1l-5.2-2.4l-4.9-2.8l-4.7-3.2l-4.4-3.5l-4.2-3.8l-3.8-4.2l-3.5-4.4L449,608l-2.8-4.9l-2.4-5.2l-2.1-5.4 |
|||
l-1.6-5.5l-1.1-5.7l-0.7-5.9l-0.3-6.1v-120l0.3-6.1l0.7-5.9l1.1-5.7l1.6-5.5l2.1-5.4l2.4-5.2l2.8-4.9l3.2-4.7l3.5-4.4l3.8-4.2 |
|||
l4.2-3.8l4.4-3.5l4.7-3.2l4.9-2.8l5.2-2.4l5.4-2.1l5.5-1.6l5.7-1.1l5.9-0.7L511.5,375.8z M511.5,409.9l-8,0.8l-7.3,2.3l-6.7,3.6 |
|||
l-5.9,4.8l-4.8,5.9l-3.6,6.7l-2.3,7.3l-0.8,8v120l0.8,8l1,3.7l3,7.1l4.2,6.3l5.3,5.3l6.3,4.2l3.5,1.7l7.3,2.3l3.9,0.6l4.1,0.2 |
|||
l4.1-0.2l7.6-1.6l7.1-3l6.3-4.2l5.3-5.3l2.3-3.1l3.6-6.7l2.3-7.3l0.8-8v-120l-0.8-8l-1-3.7l-3-7.1l-4.2-6.3l-5.3-5.3l-6.3-4.2 |
|||
l-7.1-3l-7.6-1.6L511.5,409.9z"/> |
|||
|
|||
<linearGradient id="矩形_00000108306591926576854310000017650414361077820579_" gradientUnits="userSpaceOnUse" x1="-434.4635" y1="1053.7092" x2="-435.4431" y2="1053.6991" gradientTransform="matrix(39.7 0 0 -11 17648.4922 12041)"> |
|||
<stop offset="0" style="stop-color:#D9EAFF"/> |
|||
<stop offset="1" style="stop-color:#9BBFFE"/> |
|||
</linearGradient> |
|||
|
|||
<path id="矩形_00000096029455892058483730000016204549632984250496_" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#矩形_00000108306591926576854310000017650414361077820579_);" d=" |
|||
M377.3,444.8l23,2.5l-13.3,8.5l-26.4-3.7L377.3,444.8z"/> |
|||
<g> |
|||
<g> |
|||
<path class="st5" d="M753.3,484.8l23,2.5l-13.3,8.5l-26.4-3.7L753.3,484.8z"/> |
|||
</g> |
|||
|
|||
<linearGradient id="SVGID_00000138550223276581885650000015667328168437261476_" gradientUnits="userSpaceOnUse" x1="-434.4635" y1="1053.7092" x2="-435.4431" y2="1053.6991" gradientTransform="matrix(39.7 0 0 -11 18024.5059 12081)"> |
|||
<stop offset="0" style="stop-color:#D9EAFF"/> |
|||
<stop offset="1" style="stop-color:#9BBFFE"/> |
|||
</linearGradient> |
|||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000138550223276581885650000015667328168437261476_);" d=" |
|||
M753.3,484.8l23,2.5l-13.3,8.5l-26.4-3.7L753.3,484.8z"/> |
|||
</g> |
|||
<g> |
|||
<g> |
|||
<path class="st5" d="M344.8,349.2l29.7,3.3l-13.9,8.2l-28.6-4.4L344.8,349.2z"/> |
|||
</g> |
|||
|
|||
<linearGradient id="SVGID_00000177481347944350118210000016250866865903684277_" gradientUnits="userSpaceOnUse" x1="-435.2235" y1="1053.6572" x2="-436.2032" y2="1053.6476" gradientTransform="matrix(42.5 0 0 -11.5 18871.5 12472)"> |
|||
<stop offset="0" style="stop-color:#D9EAFF"/> |
|||
<stop offset="1" style="stop-color:#9BBFFE"/> |
|||
</linearGradient> |
|||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000177481347944350118210000016250866865903684277_);" d=" |
|||
M344.8,349.2l29.7,3.3l-13.9,8.2l-28.6-4.4L344.8,349.2z"/> |
|||
</g> |
|||
<g> |
|||
<g> |
|||
<path class="st5" d="M720.8,389.2l29.7,3.3l-13.9,8.2l-28.6-4.4L720.8,389.2z"/> |
|||
</g> |
|||
|
|||
<linearGradient id="SVGID_00000181769636904596474750000000315913503856130969_" gradientUnits="userSpaceOnUse" x1="-435.2235" y1="1053.6572" x2="-436.2032" y2="1053.6476" gradientTransform="matrix(42.5 0 0 -11.5 19247.5 12512)"> |
|||
<stop offset="0" style="stop-color:#D9EAFF"/> |
|||
<stop offset="1" style="stop-color:#9BBFFE"/> |
|||
</linearGradient> |
|||
<path style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_00000181769636904596474750000000315913503856130969_);" d=" |
|||
M720.8,389.2l29.7,3.3l-13.9,8.2l-28.6-4.4L720.8,389.2z"/> |
|||
</g> |
|||
</g> |
|||
<g> |
|||
<path id="路径-13备份" class="st18" d="M422.3,258.2l6.7,9.1l3.9,4.3l6.1,6.3l6.4,5.8l12.8,10.5l20.3,15l8.1,5.1l7.5,4.3 |
|||
l7.7,3.8l13,5.3l11.4,3.2l9.5,1.4l6.5,0.2l14.5-0.6l7.6-0.8l15.2-2.5l6.9-1.5l6.5-1.9l5.2-1.9l3.2-1.6l4-3l2.3-3.1l1.9-3.5l1.5-3.6 |
|||
l0.8-3.5l-0.1-4.3l-0.5-1.9l-0.9-1.6L609,296l-1.8-1l-2-0.5l-2.7-0.1l-3.5,0.4l-3.2,1.6l-1.9,1.7l-3.5,4.4l-3.2,6l-1.4,3.4l-2,7.4 |
|||
l-0.6,3.9l-0.2,4.1l0.2,4l0.7,4l1.2,4l1.6,3.9l2.3,3.7l3.1,3.7l5.5,4.8l7.7,4.4l7.2,3l7.7,2.6l8.3,2.1l9,1.6l9.5,1.1l10.3,0.6"/> |
|||
</g> |
|||
<linearGradient id="路径-23_00000039840558866766909530000014423366323275540880_" gradientUnits="userSpaceOnUse" x1="-438.8666" y1="1053.3011" x2="-438.8666" y2="1052.3011" gradientTransform="matrix(60 0 0 -44 26724 46565.5)"> |
|||
<stop offset="0" style="stop-color:#FBE214"/> |
|||
<stop offset="1" style="stop-color:#EFBE64"/> |
|||
</linearGradient> |
|||
<path id="路径-23" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#路径-23_00000039840558866766909530000014423366323275540880_);" d=" |
|||
M362,220.2l26,44l34-36.5L362,220.2z"/> |
|||
<path id="路径-24" class="st20" d="M398.3,253l9.2,5.2l1-16.5L398.3,253z"/> |
|||
<path id="路径-25" class="st20" d="M392,237.2l16.5,5l-5,5L392,237.2z"/> |
|||
<radialGradient id="椭圆形备份-4_00000028307693480110886310000000822382882494701463_" cx="-433.9157" cy="1052.7753" r="0.6341" gradientTransform="matrix(36 0 0 -36 15732 38431)" gradientUnits="userSpaceOnUse"> |
|||
<stop offset="0" style="stop-color:#BFD7FF"/> |
|||
<stop offset="1" style="stop-color:#7195FF"/> |
|||
</radialGradient> |
|||
<path id="椭圆形备份-4" style="fill-rule:evenodd;clip-rule:evenodd;fill:url(#椭圆形备份-4_00000028307693480110886310000000822382882494701463_);" d=" |
|||
M134,527.8l-0.3,3.3l-0.8,3l-1.4,2.8l-1.7,2.5l-2.2,2.2l-2.5,1.7l-2.8,1.4l-3,0.8l-3.3,0.3l-3.3-0.3l-3-0.8l-2.8-1.4l-2.5-1.7 |
|||
l-2.2-2.2l-1.7-2.5l-1.4-2.8l-0.8-3l-0.3-3.3l0.3-3.3l0.8-3l1.4-2.8l1.7-2.5l2.2-2.2l2.5-1.7l2.8-1.4l3-0.8l3.3-0.3l3.3,0.3l3,0.8 |
|||
l2.8,1.4l2.5,1.7l2.2,2.2l1.7,2.5l1.4,2.8l0.8,3L134,527.8z"/> |
|||
</svg> |
@ -1,21 +1,104 @@ |
|||
<template> |
|||
<el-empty description="没有权限,拒绝访问" /> |
|||
<button class="turn-index-btn" @click="$router.push('/')">返回首页</button> |
|||
<div class="not-found-container"> |
|||
<div class="content"> |
|||
<img src="@/assets/404.svg" alt="404" class="error-image" /> |
|||
<h1 class="title">{{ getTitle }}</h1> |
|||
<p class="description">{{ getDescription }}</p> |
|||
<button class="back-button" @click="backToIndex"> |
|||
<i class="el-icon-back"></i> |
|||
返回首页 |
|||
</button> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { computed } from 'vue' |
|||
import { useRoute, useRouter } from 'vue-router' |
|||
const route = useRoute() |
|||
const router = useRouter() |
|||
|
|||
const getTitle = computed(() => { |
|||
console.log(route.meta?.underDevelopment) |
|||
if (route.meta?.underDevelopment && userInfo.usrRole === "Admin") { |
|||
return '功能开发中' |
|||
} |
|||
return '没有权限' |
|||
}) |
|||
const userInfo = JSON.parse(sessionStorage.getItem('token') || '{}') |
|||
console.log('🚀 ~ userInfo:', userInfo) |
|||
const getDescription = computed(() => { |
|||
if (route.meta.underDevelopment && userInfo.usrRole === "Admin") { |
|||
return '该功能正在开发中,敬请期待...' |
|||
} |
|||
return '抱歉,您没有访问该页面的权限' |
|||
}) |
|||
|
|||
const backToIndex = () => { |
|||
// sessionStorage.setItem('activeTab', '/index/regular') |
|||
// sessionStorage.setItem('selectedTab', '常规') |
|||
// sessionStorage.setItem('currentTab', '0') |
|||
router.go(-1) |
|||
} |
|||
</script> |
|||
|
|||
<style lang="less"> |
|||
.turn-index-btn { |
|||
margin-top: 20px; |
|||
padding: 10px 20px; |
|||
border-radius: 5px; |
|||
border: none; |
|||
background-color: #409eff; |
|||
color: #fff; |
|||
cursor: pointer; |
|||
<style lang="less" scoped> |
|||
.not-found-container { |
|||
width: 100vw; |
|||
height: 100vh; |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
justify-content: center; |
|||
background-color: #f5f7fa; |
|||
text-align: center; |
|||
|
|||
.content { |
|||
width: 100vw; |
|||
height: 100vh; |
|||
|
|||
.error-image { |
|||
width: 800px; |
|||
height: 800px; |
|||
margin-bottom: 24px; |
|||
} |
|||
|
|||
.title { |
|||
font-size: 48px; |
|||
color: #303133; |
|||
margin-bottom: 16px; |
|||
font-weight: 500; |
|||
} |
|||
|
|||
.description { |
|||
font-size: 36px; |
|||
color: #606266; |
|||
margin-bottom: 32px; |
|||
} |
|||
|
|||
.back-button { |
|||
padding: 12px 36px; |
|||
font-size: 36px; |
|||
color: white; |
|||
background-color: #409eff; |
|||
border: none; |
|||
border-radius: 8px; |
|||
cursor: pointer; |
|||
transition: all 0.3s ease; |
|||
display: inline-flex; |
|||
align-items: center; |
|||
gap: 8px; |
|||
|
|||
&:hover { |
|||
background-color: #66b1ff; |
|||
transform: translateY(-2px); |
|||
box-shadow: 0 4px 12px rgba(64, 158, 255, 0.4); |
|||
} |
|||
|
|||
&:active { |
|||
transform: translateY(0); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1 +1 @@ |
|||
{"root":["./src/eventbus.ts","./src/main.ts","./src/vite-env.d.ts","./src/components/index.ts","./src/components/dialogs/index.ts","./src/mock/os-control.ts","./src/mock/user-manage.ts","./src/mock/index.ts","./src/mock/index/consumables.ts","./src/mock/index/emergency.ts","./src/mock/index/history.ts","./src/mock/index/initable.ts","./src/mock/index/running.ts","./src/mock/index/testtube.ts","./src/pages/index/components/index.ts","./src/pages/index/components/consumables/index.ts","./src/pages/index/components/consumables/warn/index.ts","./src/pages/index/components/history/index.ts","./src/pages/index/components/running/index.ts","./src/pages/index/components/setting/index.ts","./src/pages/index/components/testtube/index.ts","./src/pages/index/utils/generatesamplebackground.ts","./src/pages/index/utils/getbloodtypelabel.ts","./src/pages/index/utils/index.ts","./src/pages/index/utils/processtubesettings.ts","./src/router/router.ts","./src/services/index.ts","./src/services/index/emergency.ts","./src/services/index/history.ts","./src/services/index/idcard.ts","./src/services/index/index.ts","./src/services/index/init.ts","./src/services/index/regular.ts","./src/services/index/user-manage.ts","./src/services/index/test-tube/test-tube.ts","./src/services/index/running/index.ts","./src/services/index/running/running.ts","./src/services/index/settings/index.ts","./src/services/index/settings/settings.ts","./src/services/login/index.ts","./src/services/login/login.ts","./src/services/oscontrol/index.ts","./src/services/oscontrol/os.ts","./src/store/index.ts","./src/store/modules/consumables.ts","./src/store/modules/emergency.ts","./src/store/modules/test-tube.ts","./src/types/env.d.ts","./src/types/index/consumables.ts","./src/types/index/emergency.ts","./src/types/index/history.ts","./src/types/index/idcard.ts","./src/types/index/init.ts","./src/types/index/running.ts","./src/types/index/settings.ts","./src/types/index/testtube.ts","./src/types/index/user.ts","./src/types/index/index.ts","./src/types/index/osctrl.ts","./src/utils/axios.ts","./src/utils/formdate.ts","./src/utils/fuzzymatchbysequence.ts","./src/utils/getserverinfo.ts","./src/websocket/socket.ts","./src/app.vue","./src/components/keyboard.vue","./src/components/simplekeyboard.vue","./src/components/dialogs/errormodal.vue","./src/components/dialogs/stackinfomodal.vue","./src/pages/index/history.vue","./src/pages/index/index.vue","./src/pages/index/regular.vue","./src/pages/index/setting.vue","./src/pages/index/regular/consumables.vue","./src/pages/index/regular/emergency.vue","./src/pages/index/regular/running.vue","./src/pages/index/regular/testtube.vue","./src/pages/index/settings/device.vue","./src/pages/index/settings/lis.vue","./src/pages/index/settings/navbar.vue","./src/pages/index/settings/users.vue","./src/pages/index/settings/version.vue","./src/pages/index/testtube/changeuser.vue","./src/pages/index/components/consumables/ballgrid.vue","./src/pages/index/components/consumables/changenum.vue","./src/pages/index/components/consumables/idcardinfo.vue","./src/pages/index/components/consumables/infobar.vue","./src/pages/index/components/consumables/maincomponent.vue","./src/pages/index/components/consumables/moveliquidarea.vue","./src/pages/index/components/consumables/plate.vue","./src/pages/index/components/consumables/projectselector.vue","./src/pages/index/components/consumables/spttingplates.vue","./src/pages/index/components/consumables/tabbar.vue","./src/pages/index/components/consumables/time.vue","./src/pages/index/components/consumables/warn/initwarn.vue","./src/pages/index/components/consumables/warn/loadingmodal.vue","./src/pages/index/components/history/historymessage.vue","./src/pages/index/components/history/historytable.vue","./src/pages/index/components/history/historywarn.vue","./src/pages/index/components/running/emergencyresultdialog.vue","./src/pages/index/components/running/littlebufferdisplay.vue","./src/pages/index/components/running/platedisplay.vue","./src/pages/index/components/running/sampledisplay.vue","./src/pages/index/components/setting/addusermodal.vue","./src/pages/index/components/setting/delmessage.vue","./src/pages/index/components/setting/delwarn.vue","./src/pages/index/components/setting/enterpinmodal.vue","./src/pages/index/components/testtube/projectsetting.vue","./src/pages/index/components/testtube/testtuberack.vue","./src/pages/login/login.vue","./src/pages/notfound/notfound.vue"],"version":"5.6.3"} |
|||
{"root":["./src/eventbus.ts","./src/main.ts","./src/vite-env.d.ts","./src/components/index.ts","./src/components/dialogs/index.ts","./src/mock/os-control.ts","./src/mock/user-manage.ts","./src/mock/index.ts","./src/mock/index/consumables.ts","./src/mock/index/emergency.ts","./src/mock/index/history.ts","./src/mock/index/initable.ts","./src/mock/index/running.ts","./src/mock/index/testtube.ts","./src/pages/index/components/index.ts","./src/pages/index/components/consumables/index.ts","./src/pages/index/components/consumables/warn/index.ts","./src/pages/index/components/history/index.ts","./src/pages/index/components/running/index.ts","./src/pages/index/components/setting/index.ts","./src/pages/index/components/testtube/index.ts","./src/pages/index/utils/generatesamplebackground.ts","./src/pages/index/utils/getbloodtypelabel.ts","./src/pages/index/utils/index.ts","./src/pages/index/utils/processtubesettings.ts","./src/router/router.ts","./src/services/index.ts","./src/services/index/emergency.ts","./src/services/index/history.ts","./src/services/index/idcard.ts","./src/services/index/index.ts","./src/services/index/init.ts","./src/services/index/regular.ts","./src/services/index/user-manage.ts","./src/services/index/test-tube/test-tube.ts","./src/services/index/running/index.ts","./src/services/index/running/running.ts","./src/services/index/settings/index.ts","./src/services/index/settings/settings.ts","./src/services/login/index.ts","./src/services/login/login.ts","./src/services/oscontrol/index.ts","./src/services/oscontrol/os.ts","./src/store/index.ts","./src/store/modules/consumables.ts","./src/store/modules/device.ts","./src/store/modules/emergency.ts","./src/store/modules/settingtesttube.ts","./src/store/modules/test-tube.ts","./src/types/env.d.ts","./src/types/index/consumables.ts","./src/types/index/emergency.ts","./src/types/index/history.ts","./src/types/index/idcard.ts","./src/types/index/init.ts","./src/types/index/running.ts","./src/types/index/settings.ts","./src/types/index/testtube.ts","./src/types/index/user.ts","./src/types/index/index.ts","./src/types/index/osctrl.ts","./src/utils/axios.ts","./src/utils/formdate.ts","./src/utils/fuzzymatchbysequence.ts","./src/utils/getserverinfo.ts","./src/websocket/socket.ts","./src/app.vue","./src/components/keyboard.vue","./src/components/simplekeyboard.vue","./src/components/dialogs/errormodal.vue","./src/components/dialogs/stackinfomodal.vue","./src/pages/index/history.vue","./src/pages/index/index.vue","./src/pages/index/regular.vue","./src/pages/index/setting.vue","./src/pages/index/regular/consumables.vue","./src/pages/index/regular/emergency.vue","./src/pages/index/regular/running.vue","./src/pages/index/regular/testtube.vue","./src/pages/index/settings/device.vue","./src/pages/index/settings/lis.vue","./src/pages/index/settings/navbar.vue","./src/pages/index/settings/users.vue","./src/pages/index/settings/version.vue","./src/pages/index/testtube/changeuser.vue","./src/pages/index/components/consumables/ballgrid.vue","./src/pages/index/components/consumables/changenum.vue","./src/pages/index/components/consumables/idcardinfo.vue","./src/pages/index/components/consumables/infobar.vue","./src/pages/index/components/consumables/maincomponent.vue","./src/pages/index/components/consumables/moveliquidarea.vue","./src/pages/index/components/consumables/plate.vue","./src/pages/index/components/consumables/projectselector.vue","./src/pages/index/components/consumables/spttingplates.vue","./src/pages/index/components/consumables/tabbar.vue","./src/pages/index/components/consumables/time.vue","./src/pages/index/components/consumables/warn/initwarn.vue","./src/pages/index/components/consumables/warn/loadingmodal.vue","./src/pages/index/components/history/historymessage.vue","./src/pages/index/components/history/historytable.vue","./src/pages/index/components/history/historywarn.vue","./src/pages/index/components/running/emergencyresultdialog.vue","./src/pages/index/components/running/littlebufferdisplay.vue","./src/pages/index/components/running/platedisplay.vue","./src/pages/index/components/running/sampledisplay.vue","./src/pages/index/components/setting/addusermodal.vue","./src/pages/index/components/setting/delmessage.vue","./src/pages/index/components/setting/delwarn.vue","./src/pages/index/components/setting/enterpinmodal.vue","./src/pages/index/components/testtube/projectsetting.vue","./src/pages/index/components/testtube/testtuberack.vue","./src/pages/login/login.vue","./src/pages/notfound/notfound.vue"],"version":"5.6.3"} |
@ -0,0 +1 @@ |
|||
在src/utils/getServerInfo中,可以动态的获取ip,但端口需要手动更改,不再使用环境变量 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue