diff --git a/src/pom.xml.versionsBackup b/src/pom.xml.versionsBackup new file mode 100644 index 0000000..b260455 --- /dev/null +++ b/src/pom.xml.versionsBackup @@ -0,0 +1,62 @@ + + + 4.0.0 + + com.my + graphite_digester_bg + 0.0.7 + src + src + + 17 + + + + org.springframework.boot + spring-boot-starter-parent + 3.1.5 + + + + + + org.springframework.boot + spring-boot-starter-web + + + com.fazecast + jSerialComm + 2.6.2 + + + org.java-websocket + Java-WebSocket + 1.5.4 + + + + + + + + org.xerial + sqlite-jdbc + 3.43.2.0 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 3.0.2 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/src/publish.ps1 b/src/publish.ps1 index 7e86d9e..d8d09b5 100644 --- a/src/publish.ps1 +++ b/src/publish.ps1 @@ -14,6 +14,7 @@ Rename-Item -Path target/graphite_digester_bg-$version.jar -NewName "app-$versio # upload scp target/app-$version.jar root@192.168.8.10:/app-java/ +scp D:/device.db root@192.168.8.10:/app-java/device.db # start ssh root@192.168.8.10 "killall java" diff --git a/src/src/main/resources/application-dev.yml b/src/src/main/resources/application-dev.yml index e69de29..bbfa7f4 100644 --- a/src/src/main/resources/application-dev.yml +++ b/src/src/main/resources/application-dev.yml @@ -0,0 +1,13 @@ +spring: + datasource: + url: jdbc:sqlite:D:/device.db + username: 1 + password: 1 + driver-class-name: org.sqlite.JDBC + +server: + port: 8080 + +#mybatis: +# configuration: +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl diff --git a/src/src/main/resources/application-test.yml b/src/src/main/resources/application-test.yml index e69de29..67ceed4 100644 --- a/src/src/main/resources/application-test.yml +++ b/src/src/main/resources/application-test.yml @@ -0,0 +1,13 @@ +spring: + datasource: + url: jdbc:sqlite:/app-java/device.db + username: 1 + password: 1 + driver-class-name: org.sqlite.JDBC + +server: + port: 80 + +#mybatis: +# configuration: +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl diff --git a/src/src/main/resources/application.yml b/src/src/main/resources/application.yml index 1e2c6ce..b36ded0 100644 --- a/src/src/main/resources/application.yml +++ b/src/src/main/resources/application.yml @@ -1,13 +1,6 @@ spring: - datasource: - url: jdbc:sqlite:D:/device.db - username: 1 - password: 1 - driver-class-name: org.sqlite.JDBC - -server: - port: 80 - -#mybatis: -# configuration: -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + profiles: + active: dev + messages: + basename: static/i18n/messages + encoding: utf-8 \ No newline at end of file diff --git a/src/src/main/resources/static/index.html b/src/src/main/resources/static/index.html index d17686f..7eb3c01 100644 --- a/src/src/main/resources/static/index.html +++ b/src/src/main/resources/static/index.html @@ -1 +1 @@ -vue3-demo
\ No newline at end of file +vue3-demo
\ No newline at end of file diff --git a/src/src/main/resources/static/js/app.249db83d.js b/src/src/main/resources/static/js/app.249db83d.js new file mode 100644 index 0000000..249281b --- /dev/null +++ b/src/src/main/resources/static/js/app.249db83d.js @@ -0,0 +1,2 @@ +(function(){"use strict";var e={4967:function(e,t,l){var a=l(9242),n=l(1020),u=l(4870),s=l(3396),i=(l(560),l(7139)),c=l.p+"img/calendar.b4191ee0.svg",o=l.p+"img/clock.92f34a38.svg",r=l.p+"img/progress-finish.e0222eda.svg",d=l.p+"img/logout.88f35477.svg";const v=(0,n.Q_)("AppStore",{state:()=>({accessToken:null,isDeviceReady:!1}),actions:{setAccessToken(e){this.accessToken=e},setIsDeviceReady(e){this.isDeviceReady=e}}});l(3429),l(5564);var p=l.p+"img/camera-off.93bcc134.svg",m=l.p+"img/heating.b1a3f43f.svg",f=l.p+"img/bucket-full.e324e5ed.svg",w=l.p+"img/bucket-empty.631789af.svg",g=l(7327),_=l(1076);class x{static getClient(){return null===x.client&&(x.client=new x),x.client}constructor(){}async call(e,t){const l=v();let a={};a["App-Access-Token"]=l.accessToken;let n="http://localhost:8080/api";"192.168.8.10"===window.location.host&&(n="http://192.168.8.10/api");const u=await _.Z.post(`${n}/${e}`,t,{headers:a});if(!u.data.success)throw new Error(u.data.message);return u.data.data}async userLogin(e){return await this.call("user/login",e)}async userLogout(){return await this.call("user/logout")}async userList(){return await this.call("user/list")}async userDelete(e){return await this.call("user/delete",{id:e})}async deviceRuntimeVariableGet(e){let t=await this.call("device/runtime-variable/get",{name:e});return t.value}async deviceStart(){return await this.call("device/start")}async taskAppend(e,t={}){return await this.call("task/append",{name:e,params:t})}async taskActionExecute(){return await this.call("task/task-action-execute")}async resourceDataGet(e){return await this.call("resource/data-get",{name:e})}}(0,g.Z)(x,"client",null);const b=e=>((0,s.dD)("data-v-bff6f88c"),e=e(),(0,s.Cn)(),e),k={class:"h-full flex flex-col"},y={class:"h-full flex flex-col bg-white rounded-2xl p-5"},h=b((()=>(0,s._)("div",{class:"camera h-0 grow rounded-2xl flex flex-col justify-center items-center"},[(0,s._)("div",null,[(0,s._)("p",{class:"m-0 text-center"},[(0,s._)("img",{src:p})]),(0,s._)("p",{class:"m-0 mt-2 text-2xl text-white"},"未检测到照相设备")])],-1))),W={class:"mt-3"},A={class:"h-full flex flex-col bg-white rounded-2xl p-5"},U={class:"h-0 grow flex flex-col"},D=b((()=>(0,s._)("div",{class:"text-xl text-blue-500 mb-3"},[(0,s._)("img",{src:m,class:"inline-block w-6 h-6 mr-2"}),(0,s._)("span",null,"石墨加热区")],-1))),S={class:"heating-plate h-0 grow bg-green-400 flex flex-col justify-center items-center rounded-full"},C={class:"relative w-1/4 h-1/4"},I={class:"title absolute w-full text-center"},j={class:"mb-1"},H={key:0,class:"mb-0"},T=b((()=>(0,s._)("div",{class:"tube rounded-full h-full w-full"},null,-1))),O={class:"mt-3"},z={class:"h-full flex flex-col bg-white rounded-2xl p-5"},q={class:"h-0 grow"},Y={class:"flex flex-row items-center"},E={class:"ml-2 bg-amber-500 rounded-2xl py-2 px-4 text-white w-0 grow text-center"},F={class:"mb-0 text-2xl"},L={class:"mb-0"},M={class:"p-1"},N={class:"flex flex-row justify-evenly bg-white rounded-2xl p-5"},V={class:"w-full relative"},Z=b((()=>(0,s._)("div",{class:"h-full w-full text-center"},[(0,s._)("img",{class:"w-1/2",src:f})],-1))),K=b((()=>(0,s._)("img",{class:"w-1/2",src:w},null,-1))),P=[K],R={class:"mx-2 p-2 mt-3 rounded-2xl text-center",style:{background:"#D2DFEF",color:"#8799AB"}},G={class:"inline-block p-1 rounded-2xl mr-1",style:{background:"#DCE8F7"}},B={class:"inline-block py-1"},$={class:"text-center mt-1"},Q=b((()=>(0,s._)("p",null,"放入样本后点击确认完成添加",-1)));var J={__name:"Operation",setup(e){const t=(0,u.iH)({enable:!1}),l=(0,u.iH)({enable:!1,slotIndex:0}),a=(0,u.iH)({enable:!1,slotIndex:0,name:""}),n=(0,u.iH)({enable:!1,slotIndex:0,liquidIndex:0,liquidVolume:100,shakeTimes:3}),c=(0,u.iH)({enable:!1,slotIndex:0,temperature:0,duration:0}),o=(0,u.iH)([]),r=(0,u.iH)([]);function d(){v()}async function v(){let e=x.getClient(),t=await e.resourceDataGet("HeatingTubeRackSlot");o.value=structuredClone(t),t=await e.resourceDataGet("Acid"),r.value=structuredClone(t),setTimeout(v,1e3)}async function p(){t.value.enable=!0;let e=x.getClient();await e.taskAppend("SampleAdd")}async function m(){t.value.enable=!1;let e=x.getClient();await e.taskAppend("SampleAdd")}async function f(){t.value.enable=!1}async function w(){l.value.enable=!0}async function g(){l.value.enable=!1;let e=x.getClient();await e.taskAppend("SampleTakeOut",{slotIndex:l.value.slotIndex})}async function _(){l.value.enable=!1}async function b(){a.value.enable=!0}async function K(){a.value.enable=!1;let e=x.getClient();await e.taskAppend("Digestion",{slotIndex:a.value.slotIndex,name:a.value.name})}async function J(){a.value.enable=!1}function X(e){if(null===e.heatingStartedAt)return 0;let t=Date.now()/1e3-e.heatingStartedAt,l=t/e.heatingDuration*100;return l}function ee(){n.value.enable=!0}async function te(){n.value.enable=!1;let e=x.getClient();await e.taskAppend("LiquidAdd",{slotIndex:a.value.slotIndex,liquidIndex:a.value.liquidIndex,liquidVolume:a.value.liquidVolume,shakeTimes:a.value.shakeTimes})}function le(){n.value.enable=!1}function ae(){c.value.enable=!0}async function ne(){c.value.enable=!1;let e=x.getClient();await e.taskAppend("Heating",{slotIndex:c.value.slotIndex,temperature:c.value.temperature,duration:c.value.duration})}function ue(){c.value.enable=!1}return(0,s.bv)(d),(e,u)=>{const d=(0,s.up)("a-button"),v=(0,s.up)("a-col"),x=(0,s.up)("a-row"),se=(0,s.up)("a-progress"),ie=(0,s.up)("a-modal"),ce=(0,s.up)("a-radio-button"),oe=(0,s.up)("a-radio-group"),re=(0,s.up)("a-form-item"),de=(0,s.up)("a-form"),ve=(0,s.up)("a-select-option"),pe=(0,s.up)("a-select"),me=(0,s.up)("a-input-number");return(0,s.wg)(),(0,s.iD)("div",k,[(0,s.Wm)(x,{class:"h-0 grow"},{default:(0,s.w5)((()=>[(0,s.Wm)(v,{span:9,class:"p-1"},{default:(0,s.w5)((()=>[(0,s._)("div",y,[h,(0,s._)("div",W,[(0,s.Wm)(d,null,{default:(0,s.w5)((()=>[(0,s.Uk)("拍照")])),_:1})])])])),_:1}),(0,s.Wm)(v,{span:10,class:"p-1"},{default:(0,s.w5)((()=>[(0,s._)("div",A,[(0,s._)("div",U,[D,(0,s._)("div",S,[(0,s._)("div",C,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(o.value,(e=>((0,s.wg)(),(0,s.iD)("div",{key:e.index,class:(0,i.C_)(["tube-rack-slot absolute h-full w-full",{active:e.isLocked}]),style:(0,i.j5)({transform:`rotateZ(${72*(e.index-1)}deg) translateY(140%)`})},[(0,s._)("div",I,[(0,s._)("p",j,"A - "+(0,i.zw)(e.index+1),1),null!==e.digestion?((0,s.wg)(),(0,s.iD)("p",H,(0,i.zw)(e.digestion.name),1)):(0,s.kq)("",!0)]),(0,s.Wm)(x,{class:"tube-rack p-1 rounded-lg h-full"},{default:(0,s.w5)((()=>[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(16,(e=>(0,s.Wm)(v,{class:"p-1",key:e,span:6},{default:(0,s.w5)((()=>[T])),_:2},1024))),64))])),_:1})],6)))),128))])])]),(0,s._)("div",O,[(0,s.Wm)(x,null,{default:(0,s.w5)((()=>[(0,s.Wm)(v,{span:13,class:"text-left"},{default:(0,s.w5)((()=>[(0,s.Wm)(d,{onClick:b},{default:(0,s.w5)((()=>[(0,s.Uk)("预设")])),_:1}),(0,s.Wm)(d,{class:"ml-1",onClick:ee},{default:(0,s.w5)((()=>[(0,s.Uk)("加酸")])),_:1}),(0,s.Wm)(d,{class:"ml-1",onClick:ae},{default:(0,s.w5)((()=>[(0,s.Uk)("加热")])),_:1})])),_:1}),(0,s.Wm)(v,{span:11,class:"text-right"},{default:(0,s.w5)((()=>[(0,s.Wm)(d,{class:"ml-1",onClick:p},{default:(0,s.w5)((()=>[(0,s.Uk)("添加样本")])),_:1}),(0,s.Wm)(d,{class:"ml-1",onClick:w},{default:(0,s.w5)((()=>[(0,s.Uk)("取出样本")])),_:1})])),_:1})])),_:1})])])])),_:1}),(0,s.Wm)(v,{span:5,class:"p-1"},{default:(0,s.w5)((()=>[(0,s._)("div",z,[(0,s.Wm)(x,{class:"mb-3 text-blue-500"},{default:(0,s.w5)((()=>[(0,s.Wm)(v,{span:20,class:"text-xl"},{default:(0,s.w5)((()=>[(0,s.Uk)("加热温度")])),_:1}),(0,s.Wm)(v,{span:4,class:"text-right text-xl"},{default:(0,s.w5)((()=>[(0,s.Uk)("℃")])),_:1})])),_:1}),(0,s._)("div",q,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(o.value,(e=>((0,s.wg)(),(0,s.iD)("div",{key:e.index,class:"bg-gray-100 mb-2 flex flex-row p-2 rounded-2xl"},[(0,s._)("div",Y,[(0,s.Wm)(se,{type:"circle",percent:X(e),size:50,strokeWidth:18},null,8,["percent"])]),(0,s._)("div",E,[(0,s._)("p",F,(0,i.zw)(e.temperature||"---"),1),(0,s._)("p",L,"A - "+(0,i.zw)(e.index+1),1)])])))),128))])])])),_:1})])),_:1}),(0,s._)("div",M,[(0,s._)("div",N,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.value,(e=>((0,s.wg)(),(0,s.iD)("div",{key:e.index},[(0,s._)("div",V,[Z,(0,s._)("div",{class:"h-full w-full text-center absolute top-0 overflow-hidden",style:(0,i.j5)({height:100-e.volume/e.maxVolume*100+"%"})},P,4)]),(0,s._)("div",R,[(0,s._)("span",G,(0,i.zw)(e.volume),1),(0,s._)("span",B,(0,i.zw)(e.maxVolume),1)]),(0,s._)("div",$,(0,i.zw)(e.acidName),1)])))),128))])]),(0,s.Wm)(ie,{visible:t.value.enable,"onUpdate:visible":u[0]||(u[0]=e=>t.value.enable=e),title:"添加样本",onOk:m,onCancel:f},{default:(0,s.w5)((()=>[Q])),_:1},8,["visible"]),(0,s.Wm)(ie,{visible:l.value.enable,"onUpdate:visible":u[2]||(u[2]=e=>l.value.enable=e),title:"取出样本",onOk:g,onCancel:_},{default:(0,s.w5)((()=>[(0,s.Wm)(de,{"label-col":{span:4},"wrapper-col":{span:20},"label-align":"left",class:"py-5"},{default:(0,s.w5)((()=>[(0,s.Wm)(re,{label:"位置"},{default:(0,s.w5)((()=>[(0,s.Wm)(oe,{value:l.value.slotIndex,"onUpdate:value":u[1]||(u[1]=e=>l.value.slotIndex=e),"button-style":"solid"},{default:(0,s.w5)((()=>[(0,s.Wm)(ce,{value:"0"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-1")])),_:1}),(0,s.Wm)(ce,{value:"1"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-2")])),_:1}),(0,s.Wm)(ce,{value:"2"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-3")])),_:1}),(0,s.Wm)(ce,{value:"3"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-4")])),_:1}),(0,s.Wm)(ce,{value:"4"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-5")])),_:1})])),_:1},8,["value"])])),_:1})])),_:1})])),_:1},8,["visible"]),(0,s.Wm)(ie,{visible:a.value.enable,"onUpdate:visible":u[5]||(u[5]=e=>a.value.enable=e),title:"执行预设",onOk:K,onCancel:J},{default:(0,s.w5)((()=>[(0,s.Wm)(de,{"label-col":{span:4},"wrapper-col":{span:20},"label-align":"left",class:"py-5"},{default:(0,s.w5)((()=>[(0,s.Wm)(re,{label:"位置"},{default:(0,s.w5)((()=>[(0,s.Wm)(oe,{value:a.value.slotIndex,"onUpdate:value":u[3]||(u[3]=e=>a.value.slotIndex=e),"button-style":"solid"},{default:(0,s.w5)((()=>[(0,s.Wm)(ce,{value:"0"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-1")])),_:1}),(0,s.Wm)(ce,{value:"1"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-2")])),_:1}),(0,s.Wm)(ce,{value:"2"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-3")])),_:1}),(0,s.Wm)(ce,{value:"3"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-4")])),_:1}),(0,s.Wm)(ce,{value:"4"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-5")])),_:1})])),_:1},8,["value"])])),_:1}),(0,s.Wm)(re,{label:"预设"},{default:(0,s.w5)((()=>[(0,s.Wm)(pe,{value:a.value.name,"onUpdate:value":u[4]||(u[4]=e=>a.value.name=e)},{default:(0,s.w5)((()=>[(0,s.Wm)(ve,{value:"默认预设001"},{default:(0,s.w5)((()=>[(0,s.Uk)("默认预设001")])),_:1})])),_:1},8,["value"])])),_:1})])),_:1})])),_:1},8,["visible"]),(0,s.Wm)(ie,{visible:n.value.enable,"onUpdate:visible":u[10]||(u[10]=e=>n.value.enable=e),title:"加酸",onOk:te,onCancel:le},{default:(0,s.w5)((()=>[(0,s.Wm)(de,{"label-col":{span:4},"wrapper-col":{span:20},"label-align":"left",class:"py-5"},{default:(0,s.w5)((()=>[(0,s.Wm)(re,{label:"位置"},{default:(0,s.w5)((()=>[(0,s.Wm)(oe,{value:n.value.slotIndex,"onUpdate:value":u[6]||(u[6]=e=>n.value.slotIndex=e),"button-style":"solid"},{default:(0,s.w5)((()=>[(0,s.Wm)(ce,{value:"0"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-1")])),_:1}),(0,s.Wm)(ce,{value:"1"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-2")])),_:1}),(0,s.Wm)(ce,{value:"2"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-3")])),_:1}),(0,s.Wm)(ce,{value:"3"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-4")])),_:1}),(0,s.Wm)(ce,{value:"4"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-5")])),_:1})])),_:1},8,["value"])])),_:1}),(0,s.Wm)(re,{label:"酸液"},{default:(0,s.w5)((()=>[(0,s.Wm)(pe,{value:n.value.liquidIndex,"onUpdate:value":u[7]||(u[7]=e=>n.value.liquidIndex=e)},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.value,(e=>((0,s.wg)(),(0,s.j4)(ve,{key:e.index,value:e.index},{default:(0,s.w5)((()=>[(0,s.Uk)((0,i.zw)(e.acidName)+" @ "+(0,i.zw)(e.index+1),1)])),_:2},1032,["value"])))),128))])),_:1},8,["value"])])),_:1}),(0,s.Wm)(re,{label:"加量"},{default:(0,s.w5)((()=>[(0,s.Wm)(me,{value:n.value.liquidVolume,"onUpdate:value":u[8]||(u[8]=e=>n.value.liquidVolume=e),min:0},null,8,["value"])])),_:1}),(0,s.Wm)(re,{label:"摇匀次数"},{default:(0,s.w5)((()=>[(0,s.Wm)(me,{value:n.value.shakeTimes,"onUpdate:value":u[9]||(u[9]=e=>n.value.shakeTimes=e),min:0},null,8,["value"])])),_:1})])),_:1})])),_:1},8,["visible"]),(0,s.Wm)(ie,{visible:c.value.enable,"onUpdate:visible":u[14]||(u[14]=e=>c.value.enable=e),title:"加热",onOk:ne,onCancel:ue},{default:(0,s.w5)((()=>[(0,s.Wm)(de,{"label-col":{span:4},"wrapper-col":{span:20},"label-align":"left",class:"py-5"},{default:(0,s.w5)((()=>[(0,s.Wm)(re,{label:"位置"},{default:(0,s.w5)((()=>[(0,s.Wm)(oe,{value:c.value.slotIndex,"onUpdate:value":u[11]||(u[11]=e=>c.value.slotIndex=e),"button-style":"solid"},{default:(0,s.w5)((()=>[(0,s.Wm)(ce,{value:"0"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-1")])),_:1}),(0,s.Wm)(ce,{value:"1"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-2")])),_:1}),(0,s.Wm)(ce,{value:"2"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-3")])),_:1}),(0,s.Wm)(ce,{value:"3"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-4")])),_:1}),(0,s.Wm)(ce,{value:"4"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-5")])),_:1})])),_:1},8,["value"])])),_:1}),(0,s.Wm)(re,{label:"温度"},{default:(0,s.w5)((()=>[(0,s.Wm)(me,{value:c.value.temperature,"onUpdate:value":u[12]||(u[12]=e=>c.value.temperature=e),min:0},null,8,["value"])])),_:1}),(0,s.Wm)(re,{label:"持续时间"},{default:(0,s.w5)((()=>[(0,s.Wm)(me,{value:c.value.duration,"onUpdate:value":u[13]||(u[13]=e=>c.value.duration=e),min:0},null,8,["value"])])),_:1})])),_:1})])),_:1},8,["visible"])])}}},X=l(89);const ee=(0,X.Z)(J,[["__scopeId","data-v-bff6f88c"]]);var te=ee;const le={class:"p-1"};var ae={__name:"UserManagement",setup(e){const t=[{key:"account",dataIndex:"account",title:"用户名",align:"center"},{key:"roleName",title:"权限",align:"center"},{key:"createdAt",dataIndex:"createdAt",title:"创建时间",align:"center"},{key:"action",title:"操作",align:"center"}],l=(0,u.iH)([]);let a=null;async function n(){a=x.getClient(),await c()}async function c(){let e=await a.userList();l.value=structuredClone(e.list)}function o(e){if(0===e)return"";let t=new Date(e),l=[];return l.push(t.getFullYear()+"-"),l.push((t.getMonth()+1).toString().padStart(2,"0")+"-"),l.push(t.getDate().toString().padStart(2,"0")+" "),l.push(t.getHours().toString().padStart(2,"0")+":"),l.push(t.getMinutes().toString().padStart(2,"0")+":"),l.push(t.getSeconds().toString().padStart(2,"0")),l.join("")}async function r(e){await a.userDelete(e.id),await c()}return(0,s.bv)(n),(e,a)=>{const n=(0,s.up)("a-button"),u=(0,s.up)("a-popconfirm"),c=(0,s.up)("a-table");return(0,s.wg)(),(0,s.iD)("div",le,[(0,s.Wm)(c,{dataSource:l.value,columns:t},{bodyCell:(0,s.w5)((({column:e,record:t})=>["roleName"===e.key?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.Uk)((0,i.zw)(t.role.name),1)],64)):"createdAt"===e.key?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s.Uk)((0,i.zw)(o(t.createdAt)),1)],64)):"action"===e.key?((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s.Wm)(u,{title:"是否删除该用户?",onConfirm:e=>r(t)},{default:(0,s.w5)((()=>[(0,s.Wm)(n,{class:"ml-1",disabled:""},{default:(0,s.w5)((()=>[(0,s.Uk)("删除")])),_:1})])),_:2},1032,["onConfirm"]),(0,s.Wm)(n,{class:"ml-1",disabled:""},{default:(0,s.w5)((()=>[(0,s.Uk)("修改权限")])),_:1}),(0,s.Wm)(n,{class:"ml-1",disabled:""},{default:(0,s.w5)((()=>[(0,s.Uk)("修改密码")])),_:1})],64)):(0,s.kq)("",!0)])),_:1},8,["dataSource"])])}}};const ne=ae;var ue=ne;const se={class:"p-1"};var ie={__name:"History",setup(e){const t=[{key:"account",dataIndex:"account",title:"用户",align:"center"},{key:"slot",dataIndex:"slot",title:"试管架",align:"center"},{key:"action",dataIndex:"action",title:"动作",align:"center"},{key:"createdAt",dataIndex:"createdAt",title:"时间",align:"center"}],l=(0,u.iH)([{account:"admin",slot:"A-1",action:"加入试管",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"}]);return(e,a)=>{const n=(0,s.up)("a-table");return(0,s.wg)(),(0,s.iD)("div",se,[(0,s.Wm)(n,{dataSource:l.value,columns:t},null,8,["dataSource"])])}}};const ce=ie;var oe=ce;const re={class:"p-1"};var de={__name:"TaskStepManagement",setup(e){const t=[{key:"name",dataIndex:"name",title:"名称",align:"center"},{key:"steps",dataIndex:"steps",title:"步骤",align:"left"},{key:"action",dataIndex:"action",title:"操作",align:"center"}],l=(0,u.iH)([{name:"预设001",steps:"加酸:硫酸 -> 加热: 270℃ 15分钟 -> 加酸:硫酸 -> 加热: 270℃ 15分钟 -> 加酸:硫酸 -> 加热: 270℃ 15分钟",action:"删除 编辑"},{name:"预设002",steps:"加酸:盐酸 -> 加热: 270℃ 15分钟 -> 加酸:硫酸 -> 加热: 270℃ 15分钟 加热: 270℃ 15分钟",action:"删除 编辑"},{name:"预设003",steps:"加酸:氢氟酸 -> 加热: 270℃ 15分钟 -> 加酸:盐酸 -> 加热: 270℃ 15分钟 -> 加酸:盐酸 -> 加热: 270℃ 15分钟",action:"删除 编辑"},{name:"预设004",steps:"加酸:盐酸 -> 加热: 270℃ 15分钟 -> 加酸:氢氟酸 -> 加热: 270℃ 15分钟 -> 加酸:盐酸 -> 加热: 270℃ 15分钟",action:"删除 编辑"}]);return(e,a)=>{const n=(0,s.up)("a-table");return(0,s.wg)(),(0,s.iD)("div",re,[(0,s.Wm)(n,{dataSource:l.value,columns:t},null,8,["dataSource"])])}}};const ve=de;var pe=ve;const me={class:"flex flex-col justify-center items-center h-full bg-gray-50 rounded-3xl"},fe=(0,s._)("div",{class:"text-center mb-10 text-3xl bg-blue-200 p-5 rounded-3xl w-32 text-gray-100"},"硫酸",-1),we={class:"w-full relative"},ge=(0,s._)("div",{class:"h-full w-full text-center"},[(0,s._)("img",{class:"w-1/2",src:f})],-1),_e=(0,s._)("img",{class:"w-1/2",src:w},null,-1),xe=[_e],be=(0,s._)("div",{class:"mx-2 p-2 mt-3 rounded-2xl text-3xl",style:{background:"#D2DFEF",color:"#8799AB"}},[(0,s._)("span",{class:"inline-block p-1 rounded-2xl mr-5",style:{background:"#DCE8F7"}},"3000g"),(0,s._)("span",{class:"inline-block py-1"},"5000g")],-1),ke=(0,s._)("div",{class:"flex flex-col justify-center items-center h-full bg-gray-50 rounded-3xl"},[(0,s._)("div",{class:"text-center mb-10 text-3xl bg-blue-200 p-5 rounded-3xl w-32 text-gray-100"},"硫酸"),(0,s._)("div",{class:"w-full relative"},[(0,s._)("div",{class:"h-full w-full text-center"},[(0,s._)("img",{class:"w-1/2",src:f})])]),(0,s._)("div",{class:"mx-2 p-2 mt-3 rounded-2xl text-3xl",style:{background:"#D2DFEF",color:"#8799AB"}},[(0,s._)("span",{class:"inline-block p-1 rounded-2xl mr-5",style:{background:"#DCE8F7"}},"3000g"),(0,s._)("span",{class:"inline-block py-1"},"5000g")]),(0,s._)("div",{class:"p-5 text-3xl bg-blue-500 text-white mt-10 rounded-3xl"},"加载")],-1),ye={class:"flex flex-col justify-center items-center h-full bg-gray-50 rounded-3xl"};function he(e,t){const l=(0,s.up)("a-col"),a=(0,s.up)("a-row");return(0,s.wg)(),(0,s.j4)(a,{class:"h-full p-1"},{default:(0,s.w5)((()=>[(0,s.Wm)(l,{span:10,class:"p-5"},{default:(0,s.w5)((()=>[(0,s._)("div",me,[fe,(0,s._)("div",we,[ge,(0,s._)("div",{class:"h-full w-full text-center absolute top-0 overflow-hidden",style:(0,i.j5)({height:100*Math.random()+"%"})},xe,4)]),be])])),_:1}),(0,s.Wm)(l,{span:10,class:"p-5"},{default:(0,s.w5)((()=>[ke])),_:1}),(0,s.Wm)(l,{span:4,class:"p-5"},{default:(0,s.w5)((()=>[(0,s._)("div",ye,[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(8,(e=>(0,s._)("div",{key:e,class:(0,i.C_)(["bg-white bg-gray-200 p-5 mb-5 w-3/4 text-center rounded-3xl text-xl text-gray-500",{"!bg-blue-500 !text-white":2==e}])}," 硫酸 ",2))),64))])])),_:1})])),_:1})}const We={},Ae=(0,X.Z)(We,[["render",he]]);var Ue=Ae;const De={class:"p-1"};var Se={__name:"Test",setup(e){const t=[{key:"name",dataIndex:"name",title:"名称",align:"left"},{key:"action",dataIndex:"action",title:"操作",align:"right"}],l=(0,u.iH)([{name:"加液机械臂",action:"复位 最小值 最大值"},{name:"蠕动泵01",action:"复位 加液 回抽"},{name:"蠕动泵02",action:"复位 加液 回抽"},{name:"蠕动泵03",action:"复位 加液 回抽"},{name:"蠕动泵04",action:"复位 加液 回抽"},{name:"蠕动泵05",action:"复位 加液 回抽"},{name:"蠕动泵06",action:"复位 加液 回抽"},{name:"蠕动泵07",action:"复位 加液 回抽"},{name:"蠕动泵08",action:"复位 加液 回抽"},{name:"蠕动泵09",action:"复位 加液 回抽"},{name:"蠕动泵10",action:"复位 加液 回抽"},{name:"蠕动泵11",action:"复位 加液 回抽"},{name:"蠕动泵12",action:"复位 加液 回抽"},{name:"蠕动泵13",action:"复位 加液 回抽"},{name:"蠕动泵14",action:"复位 加液 回抽"},{name:"蠕动泵15",action:"复位 加液 回抽"},{name:"蠕动泵16",action:"复位 加液 回抽"}]);return(e,a)=>{const n=(0,s.up)("a-table");return(0,s.wg)(),(0,s.iD)("div",De,[(0,s.Wm)(n,{dataSource:l.value,columns:t},null,8,["dataSource"])])}}};const Ce=Se;var Ie=Ce;const je={key:0,style:{position:"fixed",background:"#676767",width:"100%",height:"100%",top:"0",left:"0",opacity:"0.9",display:"flex","flex-direction":"column","justify-content":"center","align-items":"center"}},He={style:{color:"#bbbbbb","font-size":"3rem","margin-top":"45px"}};var Te={__name:"Loading",setup(e,{expose:t}){const l=(0,u.iH)(!1),a=(0,u.iH)("");function n(e){l.value=!0,a.value=e}function c(){l.value=!1}return t({show:n,hide:c}),(e,t)=>{const n=(0,s.up)("a-spin");return l.value?((0,s.wg)(),(0,s.iD)("div",je,[(0,s.Wm)(n,{size:"large"}),(0,s._)("div",He,(0,i.zw)(a.value),1)])):(0,s.kq)("",!0)}}};const Oe=Te;var ze=Oe;const qe=e=>((0,s.dD)("data-v-4d7f5cfe"),e=e(),(0,s.Cn)(),e),Ye={class:"bg-white h-full rounded-full px-5 text-xl flex flex-row items-center justify-around"},Ee=qe((()=>(0,s._)("img",{class:"h-5",src:c},null,-1))),Fe=qe((()=>(0,s._)("img",{class:"h-5",src:o},null,-1))),Le=qe((()=>(0,s._)("div",{class:"bg-white h-full rounded-full px-5 text-xl flex flex-col justify-center"},[(0,s._)("div",null,[(0,s._)("img",{class:"h-5",src:r}),(0,s._)("span",{class:"ml-3"},"设备已就绪")])],-1))),Me=qe((()=>(0,s._)("div",{class:"h-full px-5 text-xl flex flex-row items-center justify-around"},[(0,s._)("span",{class:"bg-black text-white block py-2 px-4 rounded-full"},"A"),(0,s._)("span",{class:"text-2xl font-bold"},"ADMIN")],-1))),Ne={class:"h-full flex flex-col justify-between"},Ve={class:"page-menu"},Ze=["onClick"],Ke=qe((()=>(0,s._)("img",{src:d,class:"h-4 mr-1 align-baseline"},null,-1)));var Pe={__name:"Page",setup(e){const t=v(),l=(0,u.iH)("operation"),a=[{key:"operation",title:"实验操作",icon:"dashboard"},{key:"hisotry",title:"操作记录",icon:"file-text"},{key:"preset",title:"预设管理",icon:"partition"},{key:"acid",title:"酸液管理",icon:"experiment"},{key:"user",title:"用户管理",icon:"user"},{key:"test",title:"功能测试",icon:"issues-close"}],n=(0,u.iH)(null),c=(0,u.iH)(""),o=(0,u.iH)("");async function r(){m()}async function d(){let e=x.getClient();await e.userLogout(),t.setAccessToken(null)}function p(e){l.value=e}function m(){let e=new Date;c.value=[],c.value.push(e.getFullYear()),c.value.push((e.getMonth()+1).toString().padStart(2,"0")),c.value.push(e.getDate().toString().padStart(2,"0")),c.value=c.value.join("-"),o.value=[],o.value.push(e.getHours().toString().padStart(2,"0")),o.value.push(e.getMinutes().toString().padStart(2,"0")),o.value.push(e.getSeconds().toString().padStart(2,"0")),o.value=o.value.join(":"),setTimeout(m,1e3)}return(0,s.bv)(r),(e,t)=>{const u=(0,s.up)("a-col"),r=(0,s.up)("a-row"),v=(0,s.up)("a-layout-header"),m=(0,s.up)("a-layout-content"),f=(0,s.up)("a-badge"),w=(0,s.up)("a-layout-sider"),g=(0,s.up)("a-layout");return(0,s.wg)(),(0,s.iD)(s.HY,null,[(0,s.Wm)(g,{class:"h-full app-bg-default !p-0"},{default:(0,s.w5)((()=>[(0,s.Wm)(v,{class:"!bg-transparent !p-0 !leading-none"},{default:(0,s.w5)((()=>[(0,s.Wm)(r,{class:"h-full"},{default:(0,s.w5)((()=>[(0,s.Wm)(u,{span:6,class:"p-1"},{default:(0,s.w5)((()=>[(0,s._)("div",Ye,[(0,s._)("span",null,[Ee,(0,s.Uk)(" "+(0,i.zw)(c.value),1)]),(0,s._)("span",null,[Fe,(0,s.Uk)(" "+(0,i.zw)(o.value),1)])])])),_:1}),(0,s.Wm)(u,{span:14,class:"p-1"},{default:(0,s.w5)((()=>[Le])),_:1}),(0,s.Wm)(u,{span:4,class:"p-1"},{default:(0,s.w5)((()=>[Me])),_:1})])),_:1})])),_:1}),(0,s.Wm)(g,{class:"!bg-transparent"},{default:(0,s.w5)((()=>[(0,s.Wm)(m,{class:"overflow-hidden"},{default:(0,s.w5)((()=>["operation"===l.value?((0,s.wg)(),(0,s.j4)(te,{key:0})):"user"===l.value?((0,s.wg)(),(0,s.j4)(ue,{key:1})):"hisotry"===l.value?((0,s.wg)(),(0,s.j4)(oe,{key:2})):"preset"===l.value?((0,s.wg)(),(0,s.j4)(pe,{key:3})):"acid"===l.value?((0,s.wg)(),(0,s.j4)(Ue,{key:4})):"test"===l.value?((0,s.wg)(),(0,s.j4)(Ie,{key:5})):(0,s.kq)("",!0)])),_:1}),(0,s.Wm)(w,{class:"!bg-transparent p-1",width:"200"},{default:(0,s.w5)((()=>[(0,s._)("div",Ne,[(0,s._)("div",Ve,[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(a,(e=>(0,s._)("div",{key:e.key,class:(0,i.C_)(["item py-3 text-xl rounded-full mb-3",{active:e.key===l.value}]),onClick:t=>p(e.key)},[((0,s.wg)(),(0,s.j4)((0,s.LL)(`${e.icon}-outlined`),{class:"mr-5"})),(0,s._)("span",null,(0,i.zw)(e.title),1),e.key===l.value?((0,s.wg)(),(0,s.j4)(f,{key:0,class:"ml-1",color:"#1EF3A8"})):(0,s.kq)("",!0)],10,Ze))),64))]),(0,s._)("div",null,[(0,s._)("div",{class:"text-gray-400 px-5 py-3 text-xl rounded-full mb-1 text-center cursor-pointer",onClick:d},[Ke,(0,s.Uk)(" 退出登录 ")])])])])),_:1})])),_:1})])),_:1}),(0,s.Wm)(ze,{ref_key:"loadingModal",ref:n},null,512)],64)}}};const Re=(0,X.Z)(Pe,[["__scopeId","data-v-4d7f5cfe"]]);var Ge=Re,Be=l.p+"img/login-pic.8b43ef5b.png",$e=l.p+"img/logo.16d19b85.svg",Qe=l(4180);const Je=(0,s._)("div",{class:"p-10"},[(0,s._)("img",{class:"w-full",src:Be})],-1),Xe={class:"bg-gray-100 p-20 rounded-2xl w-full"},et=(0,s._)("div",{class:"text-center"},[(0,s._)("img",{src:$e,class:"w-20"})],-1),tt=(0,s._)("div",{class:"text-center my-8"},[(0,s._)("span",{style:{"font-size":"30px","font-weight":"500",color:"#8799AB"}},"长春黄金研究院有限公司")],-1),lt={class:"p-10"},at=(0,s._)("div",{class:"mb-2 ml-1"},"用户名",-1),nt=(0,s._)("div",{class:"mb-2 mt-8 ml-1"},"密码",-1),ut=(0,s._)("div",{class:"text-center text-xs mt-10 text-gray-400"},"CHANGCHUN GOLD RESEARCH INSTITUTE CO.,LTD.",-1);var st={__name:"Page",setup(e){const t=v(),l=(0,u.iH)(""),a=(0,u.iH)("");async function n(){try{const e=x.getClient();let n=await e.userLogin({account:l.value,password:a.value});t.setAccessToken(n.accessToken)}catch(e){return void Qe.Z.error({title:"登录失败",content:e.message})}}return(e,t)=>{const u=(0,s.up)("a-col"),i=(0,s.up)("a-input"),c=(0,s.up)("a-input-password"),o=(0,s.up)("a-button"),r=(0,s.up)("a-row");return(0,s.wg)(),(0,s.j4)(r,{class:"h-full"},{default:(0,s.w5)((()=>[(0,s.Wm)(u,{span:14,class:"flex flex-row items-center"},{default:(0,s.w5)((()=>[Je])),_:1}),(0,s.Wm)(u,{span:10,class:"flex flex-row items-center p-10"},{default:(0,s.w5)((()=>[(0,s._)("div",Xe,[et,tt,(0,s._)("div",lt,[at,(0,s._)("div",null,[(0,s.Wm)(i,{class:"rounded-full py-2 px-5",value:l.value,"onUpdate:value":t[0]||(t[0]=e=>l.value=e)},null,8,["value"])]),nt,(0,s._)("div",null,[(0,s.Wm)(c,{class:"rounded-full py-2 px-5",value:a.value,"onUpdate:value":t[1]||(t[1]=e=>a.value=e)},null,8,["value"])]),(0,s._)("div",null,[(0,s.Wm)(o,{block:"",type:"primary",size:"large",class:"!rounded-full mt-8",onClick:n},{default:(0,s.w5)((()=>[(0,s.Uk)("登录")])),_:1})])]),ut])])),_:1})])),_:1})}}};const it=st;var ct=it,ot={__name:"App",setup(e){const t=v();return(e,l)=>null===(0,u.SU)(t).accessToken?((0,s.wg)(),(0,s.j4)(ct,{key:0})):((0,s.wg)(),(0,s.j4)(Ge,{key:1}))}};const rt=ot;var dt=rt,vt=l(7382),pt=l(8364);l(1849);const mt=(0,a.ri)(dt);mt.use((0,n.WB)()),mt.use(vt.ZP),(()=>{let e=pt;for(let t in e)mt.component(t,e[t])})(),mt.mount("#app")}},t={};function l(a){var n=t[a];if(void 0!==n)return n.exports;var u=t[a]={exports:{}};return e[a].call(u.exports,u,u.exports,l),u.exports}l.m=e,function(){var e=[];l.O=function(t,a,n,u){if(!a){var s=1/0;for(r=0;r=u)&&Object.keys(l.O).every((function(e){return l.O[e](a[c])}))?a.splice(c--,1):(i=!1,u0&&e[r-1][2]>u;r--)e[r]=e[r-1];e[r]=[a,n,u]}}(),function(){l.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(t,{a:t}),t}}(),function(){l.d=function(e,t){for(var a in t)l.o(t,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}}(),function(){l.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){l.p="/"}(),function(){var e={143:0};l.O.j=function(t){return 0===e[t]};var t=function(t,a){var n,u,s=a[0],i=a[1],c=a[2],o=0;if(s.some((function(t){return 0!==e[t]}))){for(n in i)l.o(i,n)&&(l.m[n]=i[n]);if(c)var r=c(l)}for(t&&t(a);o {\r\n return {\r\n // access token\r\n accessToken : null,\r\n // is device ready\r\n isDeviceReady : false,\r\n };\r\n },\r\n\r\n // set access token\r\n actions: {\r\n // set access token\r\n setAccessToken( token ) {\r\n this.accessToken = token;\r\n },\r\n // set is device ready\r\n setIsDeviceReady( isReady ) {\r\n this.isDeviceReady = isReady;\r\n }\r\n },\r\n})","import axios from 'axios';\r\nimport { useAppStore } from '@/stores/AppStore';\r\nexport default class ApiClient {\r\n // client instance\r\n static client = null;\r\n\r\n /**\r\n * get client instance\r\n * @returns {ApiClient}\r\n */\r\n static getClient() {\r\n if (ApiClient.client === null) {\r\n ApiClient.client = new ApiClient();\r\n }\r\n return ApiClient.client;\r\n }\r\n\r\n // constructor\r\n constructor() {\r\n \r\n }\r\n\r\n // call api\r\n async call( name, params ) {\r\n const appStore = useAppStore();\r\n\r\n let headers = {};\r\n headers['App-Access-Token'] = appStore.accessToken;\r\n \r\n let baseURL = 'http://localhost:8080/api';\r\n if ( '192.168.8.10' === window.location.host ) {\r\n baseURL = 'http://192.168.8.10/api';\r\n }\r\n\r\n const response = await axios.post(`${baseURL}/${name}`, params, {\r\n headers : headers,\r\n });\r\n\r\n if ( !response.data.success ) {\r\n throw new Error(response.data.message);\r\n }\r\n\r\n return response.data.data;\r\n }\r\n\r\n // user login\r\n async userLogin( params ) {\r\n return await this.call('user/login', params);\r\n }\r\n\r\n // user logout\r\n async userLogout() {\r\n return await this.call('user/logout');\r\n }\r\n\r\n // user list\r\n async userList() {\r\n return await this.call('user/list');\r\n }\r\n\r\n // user delete\r\n async userDelete( id ) {\r\n return await this.call('user/delete', {id});\r\n }\r\n\r\n // get device runtime variable value\r\n async deviceRuntimeVariableGet( name ) {\r\n let response = await this.call('device/runtime-variable/get', {name});\r\n return response.value;\r\n }\r\n\r\n // start device\r\n async deviceStart() {\r\n return await this.call('device/start');\r\n }\r\n\r\n // append task\r\n async taskAppend( name, params={} ) {\r\n return await this.call('task/append', {\r\n name: name,\r\n params: params,\r\n });\r\n }\r\n\r\n // task action execute\r\n async taskActionExecute() {\r\n return await this.call('task/task-action-execute');\r\n }\r\n\r\n // resource data get\r\n async resourceDataGet( name ) {\r\n return await this.call('resource/data-get', {name});\r\n }\r\n}","\r\n\r\n","import script from \"./Operation.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Operation.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./Operation.vue?vue&type=style&index=0&id=bff6f88c&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bff6f88c\"]])\n\nexport default __exports__","\r\n","import script from \"./UserManagement.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./History.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./History.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./TaskStepManagement.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TaskStepManagement.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","","import { render } from \"./AcidManagement.vue?vue&type=template&id=5ef955aa\"\nconst script = {}\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n","import script from \"./Test.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Test.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./Loading.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n\r\n","import script from \"./Page.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Page.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./Page.vue?vue&type=style&index=0&id=4d7f5cfe&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4d7f5cfe\"]])\n\nexport default __exports__","\r\n","import script from \"./Page.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Page.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n","import script from \"./App.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport Antd from 'ant-design-vue';\nimport * as AntdIcons from '@ant-design/icons-vue'\nimport \"./diframe/style/tailwind.css\"\nimport \"./style/app.css\"\nimport 'ant-design-vue/dist/reset.css';\n\nconst app = createApp(App);\napp.use(createPinia());\napp.use(Antd);\n(() => {\n let icons = AntdIcons;\n for ( let icon in icons ) {\n app.component(icon, icons[icon]);\n }\n})();\napp.mount('#app');\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkvue3_demo\"] = self[\"webpackChunkvue3_demo\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(4967); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["useAppStore","defineStore","state","accessToken","isDeviceReady","actions","setAccessToken","token","this","setIsDeviceReady","isReady","ApiClient","getClient","client","constructor","call","name","params","appStore","headers","baseURL","window","location","host","response","axios","post","data","success","Error","message","userLogin","userLogout","userList","userDelete","id","deviceRuntimeVariableGet","value","deviceStart","taskAppend","taskActionExecute","resourceDataGet","_defineProperty","sampleAdd","ref","enable","sampleTakeout","slotIndex","presetSetup","acidAdd","liquidIndex","liquidVolume","shakeTimes","heating","temperature","duration","tubeRackSlots","acidBuckets","mounted","refreshResource","async","structuredClone","setTimeout","actionSampleAdd","actionSampleAddOk","actionSampleAddCancel","actionSampleTakeOut","actionSampleTakeOutOk","actionSampleTakeOutCancel","actionPresetSetup","actionPresetSetupOk","actionPresetSetupCancel","getTubeRackSlotHeatingProgress","tubeRackSlot","heatingStartedAt","Date","now","progress","heatingDuration","actionAcidAdd","acidAddOk","acidAddCancel","actionHeating","actionHeatingOk","actionHeatingCancel","onMounted","__exports__","columns","key","dataIndex","title","align","dataSource","refresh","list","formatCreatedAt","createdAt","time","timeString","push","getFullYear","getMonth","toString","padStart","getDate","getHours","getMinutes","getSeconds","join","actionDelete","record","account","slot","action","steps","class","_createElementVNode","src","_imports_0","_imports_1","_hoisted_5","style","_createBlock","_component_a_row","default","_withCtx","_createVNode","_component_a_col","span","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_normalizeStyle","height","Math","random","_hoisted_6","_hoisted_7","_","_hoisted_8","_hoisted_9","_createElementBlock","_Fragment","_renderList","i","_normalizeClass","script","render","show","titleContent","hide","__expose","activeContent","contents","icon","loadingModal","nowDate","nowTime","actionUserLogout","actionSwitchContent","content","password","actionLogin","e","Modal","error","app","createApp","App","use","createPinia","Antd","icons","AntdIcons","component","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","length","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/src/src/main/resources/static/js/app.d158f965.js b/src/src/main/resources/static/js/app.d158f965.js deleted file mode 100644 index 0e852b6..0000000 --- a/src/src/main/resources/static/js/app.d158f965.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){"use strict";var e={4967:function(e,l,t){var a=t(9242),n=t(1020),u=t(4870),s=t(3396),i=(t(560),t(7139)),c=t.p+"img/calendar.b4191ee0.svg",o=t.p+"img/clock.92f34a38.svg",r=t.p+"img/progress-finish.e0222eda.svg",d=t.p+"img/logout.88f35477.svg";const v=(0,n.Q_)("AppStore",{state:()=>({accessToken:null,isDeviceReady:!1}),actions:{setAccessToken(e){this.accessToken=e},setIsDeviceReady(e){this.isDeviceReady=e}}});t(3429),t(5564);var p=t.p+"img/camera-off.93bcc134.svg",m=t.p+"img/heating.b1a3f43f.svg",f=t.p+"img/bucket-full.e324e5ed.svg",w=t.p+"img/bucket-empty.631789af.svg",g=t(7327),_=t(1076);class x{static getClient(){return null===x.client&&(x.client=new x),x.client}constructor(){}async call(e,l){const t=v();let a={};a["App-Access-Token"]=t.accessToken;const n=await _.Z.post(`http://localhost:8080/api/${e}`,l,{headers:a});if(!n.data.success)throw new Error(n.data.message);return n.data.data}async userLogin(e){return await this.call("user/login",e)}async userLogout(){return await this.call("user/logout")}async userList(){return await this.call("user/list")}async userDelete(e){return await this.call("user/delete",{id:e})}async deviceRuntimeVariableGet(e){let l=await this.call("device/runtime-variable/get",{name:e});return l.value}async deviceStart(){return await this.call("device/start")}async taskAppend(e,l={}){return await this.call("task/append",{name:e,params:l})}async taskActionExecute(){return await this.call("task/task-action-execute")}async resourceDataGet(e){return await this.call("resource/data-get",{name:e})}}(0,g.Z)(x,"client",null);const b=e=>((0,s.dD)("data-v-bff6f88c"),e=e(),(0,s.Cn)(),e),k={class:"h-full flex flex-col"},y={class:"h-full flex flex-col bg-white rounded-2xl p-5"},h=b((()=>(0,s._)("div",{class:"camera h-0 grow rounded-2xl flex flex-col justify-center items-center"},[(0,s._)("div",null,[(0,s._)("p",{class:"m-0 text-center"},[(0,s._)("img",{src:p})]),(0,s._)("p",{class:"m-0 mt-2 text-2xl text-white"},"未检测到照相设备")])],-1))),W={class:"mt-3"},A={class:"h-full flex flex-col bg-white rounded-2xl p-5"},U={class:"h-0 grow flex flex-col"},D=b((()=>(0,s._)("div",{class:"text-xl text-blue-500 mb-3"},[(0,s._)("img",{src:m,class:"inline-block w-6 h-6 mr-2"}),(0,s._)("span",null,"石墨加热区")],-1))),S={class:"heating-plate h-0 grow bg-green-400 flex flex-col justify-center items-center rounded-full"},C={class:"relative w-1/4 h-1/4"},I={class:"title absolute w-full text-center"},j={class:"mb-1"},H={key:0,class:"mb-0"},T=b((()=>(0,s._)("div",{class:"tube rounded-full h-full w-full"},null,-1))),O={class:"mt-3"},z={class:"h-full flex flex-col bg-white rounded-2xl p-5"},q={class:"h-0 grow"},Y={class:"flex flex-row items-center"},E={class:"ml-2 bg-amber-500 rounded-2xl py-2 px-4 text-white w-0 grow text-center"},F={class:"mb-0 text-2xl"},L={class:"mb-0"},M={class:"p-1"},N={class:"flex flex-row justify-evenly bg-white rounded-2xl p-5"},V={class:"w-full relative"},Z=b((()=>(0,s._)("div",{class:"h-full w-full text-center"},[(0,s._)("img",{class:"w-1/2",src:f})],-1))),K=b((()=>(0,s._)("img",{class:"w-1/2",src:w},null,-1))),P=[K],R={class:"mx-2 p-2 mt-3 rounded-2xl text-center",style:{background:"#D2DFEF",color:"#8799AB"}},G={class:"inline-block p-1 rounded-2xl mr-1",style:{background:"#DCE8F7"}},B={class:"inline-block py-1"},$={class:"text-center mt-1"},Q=b((()=>(0,s._)("p",null,"放入样本后点击确认完成添加",-1)));var J={__name:"Operation",setup(e){const l=(0,u.iH)({enable:!1}),t=(0,u.iH)({enable:!1,slotIndex:0}),a=(0,u.iH)({enable:!1,slotIndex:0,name:""}),n=(0,u.iH)({enable:!1,slotIndex:0,liquidIndex:0,liquidVolume:100,shakeTimes:3}),c=(0,u.iH)({enable:!1,slotIndex:0,temperature:0,duration:0}),o=(0,u.iH)([]),r=(0,u.iH)([]);function d(){v()}async function v(){let e=x.getClient(),l=await e.resourceDataGet("HeatingTubeRackSlot");o.value=structuredClone(l),l=await e.resourceDataGet("Acid"),r.value=structuredClone(l),setTimeout(v,1e3)}async function p(){l.value.enable=!0;let e=x.getClient();await e.taskAppend("SampleAdd")}async function m(){l.value.enable=!1;let e=x.getClient();await e.taskAppend("SampleAdd")}async function f(){l.value.enable=!1}async function w(){t.value.enable=!0}async function g(){t.value.enable=!1;let e=x.getClient();await e.taskAppend("SampleTakeOut",{slotIndex:t.value.slotIndex})}async function _(){t.value.enable=!1}async function b(){a.value.enable=!0}async function K(){a.value.enable=!1;let e=x.getClient();await e.taskAppend("Digestion",{slotIndex:a.value.slotIndex,name:a.value.name})}async function J(){a.value.enable=!1}function X(e){if(null===e.heatingStartedAt)return 0;let l=Date.now()/1e3-e.heatingStartedAt,t=l/e.heatingDuration*100;return t}function ee(){n.value.enable=!0}async function le(){n.value.enable=!1;let e=x.getClient();await e.taskAppend("LiquidAdd",{slotIndex:a.value.slotIndex,liquidIndex:a.value.liquidIndex,liquidVolume:a.value.liquidVolume,shakeTimes:a.value.shakeTimes})}function te(){n.value.enable=!1}function ae(){c.value.enable=!0}async function ne(){c.value.enable=!1;let e=x.getClient();await e.taskAppend("Heating",{slotIndex:c.value.slotIndex,temperature:c.value.temperature,duration:c.value.duration})}function ue(){c.value.enable=!1}return(0,s.bv)(d),(e,u)=>{const d=(0,s.up)("a-button"),v=(0,s.up)("a-col"),x=(0,s.up)("a-row"),se=(0,s.up)("a-progress"),ie=(0,s.up)("a-modal"),ce=(0,s.up)("a-radio-button"),oe=(0,s.up)("a-radio-group"),re=(0,s.up)("a-form-item"),de=(0,s.up)("a-form"),ve=(0,s.up)("a-select-option"),pe=(0,s.up)("a-select"),me=(0,s.up)("a-input-number");return(0,s.wg)(),(0,s.iD)("div",k,[(0,s.Wm)(x,{class:"h-0 grow"},{default:(0,s.w5)((()=>[(0,s.Wm)(v,{span:9,class:"p-1"},{default:(0,s.w5)((()=>[(0,s._)("div",y,[h,(0,s._)("div",W,[(0,s.Wm)(d,null,{default:(0,s.w5)((()=>[(0,s.Uk)("拍照")])),_:1})])])])),_:1}),(0,s.Wm)(v,{span:10,class:"p-1"},{default:(0,s.w5)((()=>[(0,s._)("div",A,[(0,s._)("div",U,[D,(0,s._)("div",S,[(0,s._)("div",C,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(o.value,(e=>((0,s.wg)(),(0,s.iD)("div",{key:e.index,class:(0,i.C_)(["tube-rack-slot absolute h-full w-full",{active:e.isLocked}]),style:(0,i.j5)({transform:`rotateZ(${72*(e.index-1)}deg) translateY(140%)`})},[(0,s._)("div",I,[(0,s._)("p",j,"A - "+(0,i.zw)(e.index+1),1),null!==e.digestion?((0,s.wg)(),(0,s.iD)("p",H,(0,i.zw)(e.digestion.name),1)):(0,s.kq)("",!0)]),(0,s.Wm)(x,{class:"tube-rack p-1 rounded-lg h-full"},{default:(0,s.w5)((()=>[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(16,(e=>(0,s.Wm)(v,{class:"p-1",key:e,span:6},{default:(0,s.w5)((()=>[T])),_:2},1024))),64))])),_:1})],6)))),128))])])]),(0,s._)("div",O,[(0,s.Wm)(x,null,{default:(0,s.w5)((()=>[(0,s.Wm)(v,{span:13,class:"text-left"},{default:(0,s.w5)((()=>[(0,s.Wm)(d,{onClick:b},{default:(0,s.w5)((()=>[(0,s.Uk)("预设")])),_:1}),(0,s.Wm)(d,{class:"ml-1",onClick:ee},{default:(0,s.w5)((()=>[(0,s.Uk)("加酸")])),_:1}),(0,s.Wm)(d,{class:"ml-1",onClick:ae},{default:(0,s.w5)((()=>[(0,s.Uk)("加热")])),_:1})])),_:1}),(0,s.Wm)(v,{span:11,class:"text-right"},{default:(0,s.w5)((()=>[(0,s.Wm)(d,{class:"ml-1",onClick:p},{default:(0,s.w5)((()=>[(0,s.Uk)("添加样本")])),_:1}),(0,s.Wm)(d,{class:"ml-1",onClick:w},{default:(0,s.w5)((()=>[(0,s.Uk)("取出样本")])),_:1})])),_:1})])),_:1})])])])),_:1}),(0,s.Wm)(v,{span:5,class:"p-1"},{default:(0,s.w5)((()=>[(0,s._)("div",z,[(0,s.Wm)(x,{class:"mb-3 text-blue-500"},{default:(0,s.w5)((()=>[(0,s.Wm)(v,{span:20,class:"text-xl"},{default:(0,s.w5)((()=>[(0,s.Uk)("加热温度")])),_:1}),(0,s.Wm)(v,{span:4,class:"text-right text-xl"},{default:(0,s.w5)((()=>[(0,s.Uk)("℃")])),_:1})])),_:1}),(0,s._)("div",q,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(o.value,(e=>((0,s.wg)(),(0,s.iD)("div",{key:e.index,class:"bg-gray-100 mb-2 flex flex-row p-2 rounded-2xl"},[(0,s._)("div",Y,[(0,s.Wm)(se,{type:"circle",percent:X(e),size:50,strokeWidth:18},null,8,["percent"])]),(0,s._)("div",E,[(0,s._)("p",F,(0,i.zw)(e.temperature||"---"),1),(0,s._)("p",L,"A - "+(0,i.zw)(e.index+1),1)])])))),128))])])])),_:1})])),_:1}),(0,s._)("div",M,[(0,s._)("div",N,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.value,(e=>((0,s.wg)(),(0,s.iD)("div",{key:e.index},[(0,s._)("div",V,[Z,(0,s._)("div",{class:"h-full w-full text-center absolute top-0 overflow-hidden",style:(0,i.j5)({height:100-e.volume/e.maxVolume*100+"%"})},P,4)]),(0,s._)("div",R,[(0,s._)("span",G,(0,i.zw)(e.volume),1),(0,s._)("span",B,(0,i.zw)(e.maxVolume),1)]),(0,s._)("div",$,(0,i.zw)(e.acidName),1)])))),128))])]),(0,s.Wm)(ie,{visible:l.value.enable,"onUpdate:visible":u[0]||(u[0]=e=>l.value.enable=e),title:"添加样本",onOk:m,onCancel:f},{default:(0,s.w5)((()=>[Q])),_:1},8,["visible"]),(0,s.Wm)(ie,{visible:t.value.enable,"onUpdate:visible":u[2]||(u[2]=e=>t.value.enable=e),title:"取出样本",onOk:g,onCancel:_},{default:(0,s.w5)((()=>[(0,s.Wm)(de,{"label-col":{span:4},"wrapper-col":{span:20},"label-align":"left",class:"py-5"},{default:(0,s.w5)((()=>[(0,s.Wm)(re,{label:"位置"},{default:(0,s.w5)((()=>[(0,s.Wm)(oe,{value:t.value.slotIndex,"onUpdate:value":u[1]||(u[1]=e=>t.value.slotIndex=e),"button-style":"solid"},{default:(0,s.w5)((()=>[(0,s.Wm)(ce,{value:"0"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-1")])),_:1}),(0,s.Wm)(ce,{value:"1"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-2")])),_:1}),(0,s.Wm)(ce,{value:"2"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-3")])),_:1}),(0,s.Wm)(ce,{value:"3"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-4")])),_:1}),(0,s.Wm)(ce,{value:"4"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-5")])),_:1})])),_:1},8,["value"])])),_:1})])),_:1})])),_:1},8,["visible"]),(0,s.Wm)(ie,{visible:a.value.enable,"onUpdate:visible":u[5]||(u[5]=e=>a.value.enable=e),title:"执行预设",onOk:K,onCancel:J},{default:(0,s.w5)((()=>[(0,s.Wm)(de,{"label-col":{span:4},"wrapper-col":{span:20},"label-align":"left",class:"py-5"},{default:(0,s.w5)((()=>[(0,s.Wm)(re,{label:"位置"},{default:(0,s.w5)((()=>[(0,s.Wm)(oe,{value:a.value.slotIndex,"onUpdate:value":u[3]||(u[3]=e=>a.value.slotIndex=e),"button-style":"solid"},{default:(0,s.w5)((()=>[(0,s.Wm)(ce,{value:"0"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-1")])),_:1}),(0,s.Wm)(ce,{value:"1"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-2")])),_:1}),(0,s.Wm)(ce,{value:"2"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-3")])),_:1}),(0,s.Wm)(ce,{value:"3"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-4")])),_:1}),(0,s.Wm)(ce,{value:"4"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-5")])),_:1})])),_:1},8,["value"])])),_:1}),(0,s.Wm)(re,{label:"预设"},{default:(0,s.w5)((()=>[(0,s.Wm)(pe,{value:a.value.name,"onUpdate:value":u[4]||(u[4]=e=>a.value.name=e)},{default:(0,s.w5)((()=>[(0,s.Wm)(ve,{value:"默认预设001"},{default:(0,s.w5)((()=>[(0,s.Uk)("默认预设001")])),_:1})])),_:1},8,["value"])])),_:1})])),_:1})])),_:1},8,["visible"]),(0,s.Wm)(ie,{visible:n.value.enable,"onUpdate:visible":u[10]||(u[10]=e=>n.value.enable=e),title:"加酸",onOk:le,onCancel:te},{default:(0,s.w5)((()=>[(0,s.Wm)(de,{"label-col":{span:4},"wrapper-col":{span:20},"label-align":"left",class:"py-5"},{default:(0,s.w5)((()=>[(0,s.Wm)(re,{label:"位置"},{default:(0,s.w5)((()=>[(0,s.Wm)(oe,{value:n.value.slotIndex,"onUpdate:value":u[6]||(u[6]=e=>n.value.slotIndex=e),"button-style":"solid"},{default:(0,s.w5)((()=>[(0,s.Wm)(ce,{value:"0"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-1")])),_:1}),(0,s.Wm)(ce,{value:"1"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-2")])),_:1}),(0,s.Wm)(ce,{value:"2"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-3")])),_:1}),(0,s.Wm)(ce,{value:"3"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-4")])),_:1}),(0,s.Wm)(ce,{value:"4"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-5")])),_:1})])),_:1},8,["value"])])),_:1}),(0,s.Wm)(re,{label:"酸液"},{default:(0,s.w5)((()=>[(0,s.Wm)(pe,{value:n.value.liquidIndex,"onUpdate:value":u[7]||(u[7]=e=>n.value.liquidIndex=e)},{default:(0,s.w5)((()=>[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.value,(e=>((0,s.wg)(),(0,s.j4)(ve,{key:e.index,value:e.index},{default:(0,s.w5)((()=>[(0,s.Uk)((0,i.zw)(e.acidName)+" @ "+(0,i.zw)(e.index+1),1)])),_:2},1032,["value"])))),128))])),_:1},8,["value"])])),_:1}),(0,s.Wm)(re,{label:"加量"},{default:(0,s.w5)((()=>[(0,s.Wm)(me,{value:n.value.liquidVolume,"onUpdate:value":u[8]||(u[8]=e=>n.value.liquidVolume=e),min:0},null,8,["value"])])),_:1}),(0,s.Wm)(re,{label:"摇匀次数"},{default:(0,s.w5)((()=>[(0,s.Wm)(me,{value:n.value.shakeTimes,"onUpdate:value":u[9]||(u[9]=e=>n.value.shakeTimes=e),min:0},null,8,["value"])])),_:1})])),_:1})])),_:1},8,["visible"]),(0,s.Wm)(ie,{visible:c.value.enable,"onUpdate:visible":u[14]||(u[14]=e=>c.value.enable=e),title:"加热",onOk:ne,onCancel:ue},{default:(0,s.w5)((()=>[(0,s.Wm)(de,{"label-col":{span:4},"wrapper-col":{span:20},"label-align":"left",class:"py-5"},{default:(0,s.w5)((()=>[(0,s.Wm)(re,{label:"位置"},{default:(0,s.w5)((()=>[(0,s.Wm)(oe,{value:c.value.slotIndex,"onUpdate:value":u[11]||(u[11]=e=>c.value.slotIndex=e),"button-style":"solid"},{default:(0,s.w5)((()=>[(0,s.Wm)(ce,{value:"0"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-1")])),_:1}),(0,s.Wm)(ce,{value:"1"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-2")])),_:1}),(0,s.Wm)(ce,{value:"2"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-3")])),_:1}),(0,s.Wm)(ce,{value:"3"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-4")])),_:1}),(0,s.Wm)(ce,{value:"4"},{default:(0,s.w5)((()=>[(0,s.Uk)("A-5")])),_:1})])),_:1},8,["value"])])),_:1}),(0,s.Wm)(re,{label:"温度"},{default:(0,s.w5)((()=>[(0,s.Wm)(me,{value:c.value.temperature,"onUpdate:value":u[12]||(u[12]=e=>c.value.temperature=e),min:0},null,8,["value"])])),_:1}),(0,s.Wm)(re,{label:"持续时间"},{default:(0,s.w5)((()=>[(0,s.Wm)(me,{value:c.value.duration,"onUpdate:value":u[13]||(u[13]=e=>c.value.duration=e),min:0},null,8,["value"])])),_:1})])),_:1})])),_:1},8,["visible"])])}}},X=t(89);const ee=(0,X.Z)(J,[["__scopeId","data-v-bff6f88c"]]);var le=ee;const te={class:"p-1"};var ae={__name:"UserManagement",setup(e){const l=[{key:"account",dataIndex:"account",title:"用户名",align:"center"},{key:"roleName",title:"权限",align:"center"},{key:"createdAt",dataIndex:"createdAt",title:"创建时间",align:"center"},{key:"action",title:"操作",align:"center"}],t=(0,u.iH)([]);let a=null;async function n(){a=x.getClient(),await c()}async function c(){let e=await a.userList();t.value=structuredClone(e.list)}function o(e){if(0===e)return"";let l=new Date(e),t=[];return t.push(l.getFullYear()+"-"),t.push((l.getMonth()+1).toString().padStart(2,"0")+"-"),t.push(l.getDate().toString().padStart(2,"0")+" "),t.push(l.getHours().toString().padStart(2,"0")+":"),t.push(l.getMinutes().toString().padStart(2,"0")+":"),t.push(l.getSeconds().toString().padStart(2,"0")),t.join("")}async function r(e){await a.userDelete(e.id),await c()}return(0,s.bv)(n),(e,a)=>{const n=(0,s.up)("a-button"),u=(0,s.up)("a-popconfirm"),c=(0,s.up)("a-table");return(0,s.wg)(),(0,s.iD)("div",te,[(0,s.Wm)(c,{dataSource:t.value,columns:l},{bodyCell:(0,s.w5)((({column:e,record:l})=>["roleName"===e.key?((0,s.wg)(),(0,s.iD)(s.HY,{key:0},[(0,s.Uk)((0,i.zw)(l.role.name),1)],64)):"createdAt"===e.key?((0,s.wg)(),(0,s.iD)(s.HY,{key:1},[(0,s.Uk)((0,i.zw)(o(l.createdAt)),1)],64)):"action"===e.key?((0,s.wg)(),(0,s.iD)(s.HY,{key:2},[(0,s.Wm)(u,{title:"是否删除该用户?",onConfirm:e=>r(l)},{default:(0,s.w5)((()=>[(0,s.Wm)(n,{class:"ml-1",disabled:""},{default:(0,s.w5)((()=>[(0,s.Uk)("删除")])),_:1})])),_:2},1032,["onConfirm"]),(0,s.Wm)(n,{class:"ml-1",disabled:""},{default:(0,s.w5)((()=>[(0,s.Uk)("修改权限")])),_:1}),(0,s.Wm)(n,{class:"ml-1",disabled:""},{default:(0,s.w5)((()=>[(0,s.Uk)("修改密码")])),_:1})],64)):(0,s.kq)("",!0)])),_:1},8,["dataSource"])])}}};const ne=ae;var ue=ne;const se={class:"p-1"};var ie={__name:"History",setup(e){const l=[{key:"account",dataIndex:"account",title:"用户",align:"center"},{key:"slot",dataIndex:"slot",title:"试管架",align:"center"},{key:"action",dataIndex:"action",title:"动作",align:"center"},{key:"createdAt",dataIndex:"createdAt",title:"时间",align:"center"}],t=(0,u.iH)([{account:"admin",slot:"A-1",action:"加入试管",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加酸:硫酸",createdAt:"2021-08-01 12:00:00"},{account:"admin",slot:"A-1",action:"加热: 270℃ 15分钟",createdAt:"2021-08-01 12:00:00"}]);return(e,a)=>{const n=(0,s.up)("a-table");return(0,s.wg)(),(0,s.iD)("div",se,[(0,s.Wm)(n,{dataSource:t.value,columns:l},null,8,["dataSource"])])}}};const ce=ie;var oe=ce;const re={class:"p-1"};var de={__name:"TaskStepManagement",setup(e){const l=[{key:"name",dataIndex:"name",title:"名称",align:"center"},{key:"steps",dataIndex:"steps",title:"步骤",align:"left"},{key:"action",dataIndex:"action",title:"操作",align:"center"}],t=(0,u.iH)([{name:"预设001",steps:"加酸:硫酸 -> 加热: 270℃ 15分钟 -> 加酸:硫酸 -> 加热: 270℃ 15分钟 -> 加酸:硫酸 -> 加热: 270℃ 15分钟",action:"删除 编辑"},{name:"预设002",steps:"加酸:盐酸 -> 加热: 270℃ 15分钟 -> 加酸:硫酸 -> 加热: 270℃ 15分钟 加热: 270℃ 15分钟",action:"删除 编辑"},{name:"预设003",steps:"加酸:氢氟酸 -> 加热: 270℃ 15分钟 -> 加酸:盐酸 -> 加热: 270℃ 15分钟 -> 加酸:盐酸 -> 加热: 270℃ 15分钟",action:"删除 编辑"},{name:"预设004",steps:"加酸:盐酸 -> 加热: 270℃ 15分钟 -> 加酸:氢氟酸 -> 加热: 270℃ 15分钟 -> 加酸:盐酸 -> 加热: 270℃ 15分钟",action:"删除 编辑"}]);return(e,a)=>{const n=(0,s.up)("a-table");return(0,s.wg)(),(0,s.iD)("div",re,[(0,s.Wm)(n,{dataSource:t.value,columns:l},null,8,["dataSource"])])}}};const ve=de;var pe=ve;const me={class:"flex flex-col justify-center items-center h-full bg-gray-50 rounded-3xl"},fe=(0,s._)("div",{class:"text-center mb-10 text-3xl bg-blue-200 p-5 rounded-3xl w-32 text-gray-100"},"硫酸",-1),we={class:"w-full relative"},ge=(0,s._)("div",{class:"h-full w-full text-center"},[(0,s._)("img",{class:"w-1/2",src:f})],-1),_e=(0,s._)("img",{class:"w-1/2",src:w},null,-1),xe=[_e],be=(0,s._)("div",{class:"mx-2 p-2 mt-3 rounded-2xl text-3xl",style:{background:"#D2DFEF",color:"#8799AB"}},[(0,s._)("span",{class:"inline-block p-1 rounded-2xl mr-5",style:{background:"#DCE8F7"}},"3000g"),(0,s._)("span",{class:"inline-block py-1"},"5000g")],-1),ke=(0,s._)("div",{class:"flex flex-col justify-center items-center h-full bg-gray-50 rounded-3xl"},[(0,s._)("div",{class:"text-center mb-10 text-3xl bg-blue-200 p-5 rounded-3xl w-32 text-gray-100"},"硫酸"),(0,s._)("div",{class:"w-full relative"},[(0,s._)("div",{class:"h-full w-full text-center"},[(0,s._)("img",{class:"w-1/2",src:f})])]),(0,s._)("div",{class:"mx-2 p-2 mt-3 rounded-2xl text-3xl",style:{background:"#D2DFEF",color:"#8799AB"}},[(0,s._)("span",{class:"inline-block p-1 rounded-2xl mr-5",style:{background:"#DCE8F7"}},"3000g"),(0,s._)("span",{class:"inline-block py-1"},"5000g")]),(0,s._)("div",{class:"p-5 text-3xl bg-blue-500 text-white mt-10 rounded-3xl"},"加载")],-1),ye={class:"flex flex-col justify-center items-center h-full bg-gray-50 rounded-3xl"};function he(e,l){const t=(0,s.up)("a-col"),a=(0,s.up)("a-row");return(0,s.wg)(),(0,s.j4)(a,{class:"h-full p-1"},{default:(0,s.w5)((()=>[(0,s.Wm)(t,{span:10,class:"p-5"},{default:(0,s.w5)((()=>[(0,s._)("div",me,[fe,(0,s._)("div",we,[ge,(0,s._)("div",{class:"h-full w-full text-center absolute top-0 overflow-hidden",style:(0,i.j5)({height:100*Math.random()+"%"})},xe,4)]),be])])),_:1}),(0,s.Wm)(t,{span:10,class:"p-5"},{default:(0,s.w5)((()=>[ke])),_:1}),(0,s.Wm)(t,{span:4,class:"p-5"},{default:(0,s.w5)((()=>[(0,s._)("div",ye,[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(8,(e=>(0,s._)("div",{key:e,class:(0,i.C_)(["bg-white bg-gray-200 p-5 mb-5 w-3/4 text-center rounded-3xl text-xl text-gray-500",{"!bg-blue-500 !text-white":2==e}])}," 硫酸 ",2))),64))])])),_:1})])),_:1})}const We={},Ae=(0,X.Z)(We,[["render",he]]);var Ue=Ae;const De={class:"p-1"};var Se={__name:"Test",setup(e){const l=[{key:"name",dataIndex:"name",title:"名称",align:"left"},{key:"action",dataIndex:"action",title:"操作",align:"right"}],t=(0,u.iH)([{name:"加液机械臂",action:"复位 最小值 最大值"},{name:"蠕动泵01",action:"复位 加液 回抽"},{name:"蠕动泵02",action:"复位 加液 回抽"},{name:"蠕动泵03",action:"复位 加液 回抽"},{name:"蠕动泵04",action:"复位 加液 回抽"},{name:"蠕动泵05",action:"复位 加液 回抽"},{name:"蠕动泵06",action:"复位 加液 回抽"},{name:"蠕动泵07",action:"复位 加液 回抽"},{name:"蠕动泵08",action:"复位 加液 回抽"},{name:"蠕动泵09",action:"复位 加液 回抽"},{name:"蠕动泵10",action:"复位 加液 回抽"},{name:"蠕动泵11",action:"复位 加液 回抽"},{name:"蠕动泵12",action:"复位 加液 回抽"},{name:"蠕动泵13",action:"复位 加液 回抽"},{name:"蠕动泵14",action:"复位 加液 回抽"},{name:"蠕动泵15",action:"复位 加液 回抽"},{name:"蠕动泵16",action:"复位 加液 回抽"}]);return(e,a)=>{const n=(0,s.up)("a-table");return(0,s.wg)(),(0,s.iD)("div",De,[(0,s.Wm)(n,{dataSource:t.value,columns:l},null,8,["dataSource"])])}}};const Ce=Se;var Ie=Ce;const je={key:0,style:{position:"fixed",background:"#676767",width:"100%",height:"100%",top:"0",left:"0",opacity:"0.9",display:"flex","flex-direction":"column","justify-content":"center","align-items":"center"}},He={style:{color:"#bbbbbb","font-size":"3rem","margin-top":"45px"}};var Te={__name:"Loading",setup(e,{expose:l}){const t=(0,u.iH)(!1),a=(0,u.iH)("");function n(e){t.value=!0,a.value=e}function c(){t.value=!1}return l({show:n,hide:c}),(e,l)=>{const n=(0,s.up)("a-spin");return t.value?((0,s.wg)(),(0,s.iD)("div",je,[(0,s.Wm)(n,{size:"large"}),(0,s._)("div",He,(0,i.zw)(a.value),1)])):(0,s.kq)("",!0)}}};const Oe=Te;var ze=Oe;const qe=e=>((0,s.dD)("data-v-4d7f5cfe"),e=e(),(0,s.Cn)(),e),Ye={class:"bg-white h-full rounded-full px-5 text-xl flex flex-row items-center justify-around"},Ee=qe((()=>(0,s._)("img",{class:"h-5",src:c},null,-1))),Fe=qe((()=>(0,s._)("img",{class:"h-5",src:o},null,-1))),Le=qe((()=>(0,s._)("div",{class:"bg-white h-full rounded-full px-5 text-xl flex flex-col justify-center"},[(0,s._)("div",null,[(0,s._)("img",{class:"h-5",src:r}),(0,s._)("span",{class:"ml-3"},"设备已就绪")])],-1))),Me=qe((()=>(0,s._)("div",{class:"h-full px-5 text-xl flex flex-row items-center justify-around"},[(0,s._)("span",{class:"bg-black text-white block py-2 px-4 rounded-full"},"A"),(0,s._)("span",{class:"text-2xl font-bold"},"ADMIN")],-1))),Ne={class:"h-full flex flex-col justify-between"},Ve={class:"page-menu"},Ze=["onClick"],Ke=qe((()=>(0,s._)("img",{src:d,class:"h-4 mr-1 align-baseline"},null,-1)));var Pe={__name:"Page",setup(e){const l=v(),t=(0,u.iH)("operation"),a=[{key:"operation",title:"实验操作",icon:"dashboard"},{key:"hisotry",title:"操作记录",icon:"file-text"},{key:"preset",title:"预设管理",icon:"partition"},{key:"acid",title:"酸液管理",icon:"experiment"},{key:"user",title:"用户管理",icon:"user"},{key:"test",title:"功能测试",icon:"issues-close"}],n=(0,u.iH)(null),c=(0,u.iH)(""),o=(0,u.iH)("");async function r(){m()}async function d(){let e=x.getClient();await e.userLogout(),l.setAccessToken(null)}function p(e){t.value=e}function m(){let e=new Date;c.value=[],c.value.push(e.getFullYear()),c.value.push((e.getMonth()+1).toString().padStart(2,"0")),c.value.push(e.getDate().toString().padStart(2,"0")),c.value=c.value.join("-"),o.value=[],o.value.push(e.getHours().toString().padStart(2,"0")),o.value.push(e.getMinutes().toString().padStart(2,"0")),o.value.push(e.getSeconds().toString().padStart(2,"0")),o.value=o.value.join(":"),setTimeout(m,1e3)}return(0,s.bv)(r),(e,l)=>{const u=(0,s.up)("a-col"),r=(0,s.up)("a-row"),v=(0,s.up)("a-layout-header"),m=(0,s.up)("a-layout-content"),f=(0,s.up)("a-badge"),w=(0,s.up)("a-layout-sider"),g=(0,s.up)("a-layout");return(0,s.wg)(),(0,s.iD)(s.HY,null,[(0,s.Wm)(g,{class:"h-full app-bg-default !p-0"},{default:(0,s.w5)((()=>[(0,s.Wm)(v,{class:"!bg-transparent !p-0 !leading-none"},{default:(0,s.w5)((()=>[(0,s.Wm)(r,{class:"h-full"},{default:(0,s.w5)((()=>[(0,s.Wm)(u,{span:6,class:"p-1"},{default:(0,s.w5)((()=>[(0,s._)("div",Ye,[(0,s._)("span",null,[Ee,(0,s.Uk)(" "+(0,i.zw)(c.value),1)]),(0,s._)("span",null,[Fe,(0,s.Uk)(" "+(0,i.zw)(o.value),1)])])])),_:1}),(0,s.Wm)(u,{span:14,class:"p-1"},{default:(0,s.w5)((()=>[Le])),_:1}),(0,s.Wm)(u,{span:4,class:"p-1"},{default:(0,s.w5)((()=>[Me])),_:1})])),_:1})])),_:1}),(0,s.Wm)(g,{class:"!bg-transparent"},{default:(0,s.w5)((()=>[(0,s.Wm)(m,{class:"overflow-hidden"},{default:(0,s.w5)((()=>["operation"===t.value?((0,s.wg)(),(0,s.j4)(le,{key:0})):"user"===t.value?((0,s.wg)(),(0,s.j4)(ue,{key:1})):"hisotry"===t.value?((0,s.wg)(),(0,s.j4)(oe,{key:2})):"preset"===t.value?((0,s.wg)(),(0,s.j4)(pe,{key:3})):"acid"===t.value?((0,s.wg)(),(0,s.j4)(Ue,{key:4})):"test"===t.value?((0,s.wg)(),(0,s.j4)(Ie,{key:5})):(0,s.kq)("",!0)])),_:1}),(0,s.Wm)(w,{class:"!bg-transparent p-1",width:"200"},{default:(0,s.w5)((()=>[(0,s._)("div",Ne,[(0,s._)("div",Ve,[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(a,(e=>(0,s._)("div",{key:e.key,class:(0,i.C_)(["item py-3 text-xl rounded-full mb-3",{active:e.key===t.value}]),onClick:l=>p(e.key)},[((0,s.wg)(),(0,s.j4)((0,s.LL)(`${e.icon}-outlined`),{class:"mr-5"})),(0,s._)("span",null,(0,i.zw)(e.title),1),e.key===t.value?((0,s.wg)(),(0,s.j4)(f,{key:0,class:"ml-1",color:"#1EF3A8"})):(0,s.kq)("",!0)],10,Ze))),64))]),(0,s._)("div",null,[(0,s._)("div",{class:"text-gray-400 px-5 py-3 text-xl rounded-full mb-1 text-center cursor-pointer",onClick:d},[Ke,(0,s.Uk)(" 退出登录 ")])])])])),_:1})])),_:1})])),_:1}),(0,s.Wm)(ze,{ref_key:"loadingModal",ref:n},null,512)],64)}}};const Re=(0,X.Z)(Pe,[["__scopeId","data-v-4d7f5cfe"]]);var Ge=Re,Be=t.p+"img/login-pic.8b43ef5b.png",$e=t.p+"img/logo.16d19b85.svg",Qe=t(4180);const Je=(0,s._)("div",{class:"p-10"},[(0,s._)("img",{class:"w-full",src:Be})],-1),Xe={class:"bg-gray-100 p-20 rounded-2xl w-full"},el=(0,s._)("div",{class:"text-center"},[(0,s._)("img",{src:$e,class:"w-20"})],-1),ll=(0,s._)("div",{class:"text-center my-8"},[(0,s._)("span",{style:{"font-size":"30px","font-weight":"500",color:"#8799AB"}},"长春黄金研究院有限公司")],-1),tl={class:"p-10"},al=(0,s._)("div",{class:"mb-2 ml-1"},"用户名",-1),nl=(0,s._)("div",{class:"mb-2 mt-8 ml-1"},"密码",-1),ul=(0,s._)("div",{class:"text-center text-xs mt-10 text-gray-400"},"CHANGCHUN GOLD RESEARCH INSTITUTE CO.,LTD.",-1);var sl={__name:"Page",setup(e){const l=v(),t=(0,u.iH)(""),a=(0,u.iH)("");async function n(){try{const e=x.getClient();let n=await e.userLogin({account:t.value,password:a.value});l.setAccessToken(n.accessToken)}catch(e){return void Qe.Z.error({title:"登录失败",content:e.message})}}return(e,l)=>{const u=(0,s.up)("a-col"),i=(0,s.up)("a-input"),c=(0,s.up)("a-input-password"),o=(0,s.up)("a-button"),r=(0,s.up)("a-row");return(0,s.wg)(),(0,s.j4)(r,{class:"h-full"},{default:(0,s.w5)((()=>[(0,s.Wm)(u,{span:14,class:"flex flex-row items-center"},{default:(0,s.w5)((()=>[Je])),_:1}),(0,s.Wm)(u,{span:10,class:"flex flex-row items-center p-10"},{default:(0,s.w5)((()=>[(0,s._)("div",Xe,[el,ll,(0,s._)("div",tl,[al,(0,s._)("div",null,[(0,s.Wm)(i,{class:"rounded-full py-2 px-5",value:t.value,"onUpdate:value":l[0]||(l[0]=e=>t.value=e)},null,8,["value"])]),nl,(0,s._)("div",null,[(0,s.Wm)(c,{class:"rounded-full py-2 px-5",value:a.value,"onUpdate:value":l[1]||(l[1]=e=>a.value=e)},null,8,["value"])]),(0,s._)("div",null,[(0,s.Wm)(o,{block:"",type:"primary",size:"large",class:"!rounded-full mt-8",onClick:n},{default:(0,s.w5)((()=>[(0,s.Uk)("登录")])),_:1})])]),ul])])),_:1})])),_:1})}}};const il=sl;var cl=il,ol={__name:"App",setup(e){const l=v();return(e,t)=>null===(0,u.SU)(l).accessToken?((0,s.wg)(),(0,s.j4)(cl,{key:0})):((0,s.wg)(),(0,s.j4)(Ge,{key:1}))}};const rl=ol;var dl=rl,vl=t(7382),pl=t(8364);t(1849);const ml=(0,a.ri)(dl);ml.use((0,n.WB)()),ml.use(vl.ZP),(()=>{let e=pl;for(let l in e)ml.component(l,e[l])})(),ml.mount("#app")}},l={};function t(a){var n=l[a];if(void 0!==n)return n.exports;var u=l[a]={exports:{}};return e[a].call(u.exports,u,u.exports,t),u.exports}t.m=e,function(){var e=[];t.O=function(l,a,n,u){if(!a){var s=1/0;for(r=0;r=u)&&Object.keys(t.O).every((function(e){return t.O[e](a[c])}))?a.splice(c--,1):(i=!1,u0&&e[r-1][2]>u;r--)e[r]=e[r-1];e[r]=[a,n,u]}}(),function(){t.n=function(e){var l=e&&e.__esModule?function(){return e["default"]}:function(){return e};return t.d(l,{a:l}),l}}(),function(){t.d=function(e,l){for(var a in l)t.o(l,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:l[a]})}}(),function(){t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){t.o=function(e,l){return Object.prototype.hasOwnProperty.call(e,l)}}(),function(){t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){t.p="/"}(),function(){var e={143:0};t.O.j=function(l){return 0===e[l]};var l=function(l,a){var n,u,s=a[0],i=a[1],c=a[2],o=0;if(s.some((function(l){return 0!==e[l]}))){for(n in i)t.o(i,n)&&(t.m[n]=i[n]);if(c)var r=c(t)}for(l&&l(a);o {\r\n return {\r\n // access token\r\n accessToken : null,\r\n // is device ready\r\n isDeviceReady : false,\r\n };\r\n },\r\n\r\n // set access token\r\n actions: {\r\n // set access token\r\n setAccessToken( token ) {\r\n this.accessToken = token;\r\n },\r\n // set is device ready\r\n setIsDeviceReady( isReady ) {\r\n this.isDeviceReady = isReady;\r\n }\r\n },\r\n})","import axios from 'axios';\r\nimport { useAppStore } from '@/stores/AppStore';\r\nexport default class ApiClient {\r\n // client instance\r\n static client = null;\r\n\r\n /**\r\n * get client instance\r\n * @returns {ApiClient}\r\n */\r\n static getClient() {\r\n if (ApiClient.client === null) {\r\n ApiClient.client = new ApiClient();\r\n }\r\n return ApiClient.client;\r\n }\r\n\r\n // constructor\r\n constructor() {\r\n \r\n }\r\n\r\n // call api\r\n async call( name, params ) {\r\n const appStore = useAppStore();\r\n\r\n let headers = {};\r\n headers['App-Access-Token'] = appStore.accessToken;\r\n \r\n const response = await axios.post(`http://localhost:8080/api/${name}`, params, {\r\n headers : headers,\r\n });\r\n\r\n if ( !response.data.success ) {\r\n throw new Error(response.data.message);\r\n }\r\n\r\n return response.data.data;\r\n }\r\n\r\n // user login\r\n async userLogin( params ) {\r\n return await this.call('user/login', params);\r\n }\r\n\r\n // user logout\r\n async userLogout() {\r\n return await this.call('user/logout');\r\n }\r\n\r\n // user list\r\n async userList() {\r\n return await this.call('user/list');\r\n }\r\n\r\n // user delete\r\n async userDelete( id ) {\r\n return await this.call('user/delete', {id});\r\n }\r\n\r\n // get device runtime variable value\r\n async deviceRuntimeVariableGet( name ) {\r\n let response = await this.call('device/runtime-variable/get', {name});\r\n return response.value;\r\n }\r\n\r\n // start device\r\n async deviceStart() {\r\n return await this.call('device/start');\r\n }\r\n\r\n // append task\r\n async taskAppend( name, params={} ) {\r\n return await this.call('task/append', {\r\n name: name,\r\n params: params,\r\n });\r\n }\r\n\r\n // task action execute\r\n async taskActionExecute() {\r\n return await this.call('task/task-action-execute');\r\n }\r\n\r\n // resource data get\r\n async resourceDataGet( name ) {\r\n return await this.call('resource/data-get', {name});\r\n }\r\n}","\r\n\r\n","import script from \"./Operation.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Operation.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./Operation.vue?vue&type=style&index=0&id=bff6f88c&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bff6f88c\"]])\n\nexport default __exports__","\r\n","import script from \"./UserManagement.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./History.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./History.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./TaskStepManagement.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TaskStepManagement.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","","import { render } from \"./AcidManagement.vue?vue&type=template&id=5ef955aa\"\nconst script = {}\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\n","import script from \"./Test.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Test.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./Loading.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Loading.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n\r\n","import script from \"./Page.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Page.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./Page.vue?vue&type=style&index=0&id=4d7f5cfe&scoped=true&lang=css\"\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4d7f5cfe\"]])\n\nexport default __exports__","\r\n","import script from \"./Page.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Page.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n","import script from \"./App.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport Antd from 'ant-design-vue';\nimport * as AntdIcons from '@ant-design/icons-vue'\nimport \"./diframe/style/tailwind.css\"\nimport \"./style/app.css\"\nimport 'ant-design-vue/dist/reset.css';\n\nconst app = createApp(App);\napp.use(createPinia());\napp.use(Antd);\n(() => {\n let icons = AntdIcons;\n for ( let icon in icons ) {\n app.component(icon, icons[icon]);\n }\n})();\napp.mount('#app');\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkvue3_demo\"] = self[\"webpackChunkvue3_demo\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(4967); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["useAppStore","defineStore","state","accessToken","isDeviceReady","actions","setAccessToken","token","this","setIsDeviceReady","isReady","ApiClient","getClient","client","constructor","call","name","params","appStore","headers","response","axios","post","data","success","Error","message","userLogin","userLogout","userList","userDelete","id","deviceRuntimeVariableGet","value","deviceStart","taskAppend","taskActionExecute","resourceDataGet","_defineProperty","sampleAdd","ref","enable","sampleTakeout","slotIndex","presetSetup","acidAdd","liquidIndex","liquidVolume","shakeTimes","heating","temperature","duration","tubeRackSlots","acidBuckets","mounted","refreshResource","async","structuredClone","setTimeout","actionSampleAdd","actionSampleAddOk","actionSampleAddCancel","actionSampleTakeOut","actionSampleTakeOutOk","actionSampleTakeOutCancel","actionPresetSetup","actionPresetSetupOk","actionPresetSetupCancel","getTubeRackSlotHeatingProgress","tubeRackSlot","heatingStartedAt","Date","now","progress","heatingDuration","actionAcidAdd","acidAddOk","acidAddCancel","actionHeating","actionHeatingOk","actionHeatingCancel","onMounted","__exports__","columns","key","dataIndex","title","align","dataSource","refresh","list","formatCreatedAt","createdAt","time","timeString","push","getFullYear","getMonth","toString","padStart","getDate","getHours","getMinutes","getSeconds","join","actionDelete","record","account","slot","action","steps","class","_createElementVNode","src","_imports_0","_imports_1","_hoisted_5","style","_createBlock","_component_a_row","default","_withCtx","_createVNode","_component_a_col","span","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_normalizeStyle","height","Math","random","_hoisted_6","_hoisted_7","_","_hoisted_8","_hoisted_9","_createElementBlock","_Fragment","_renderList","i","_normalizeClass","script","render","show","titleContent","hide","__expose","activeContent","contents","icon","loadingModal","nowDate","nowTime","actionUserLogout","actionSwitchContent","content","password","actionLogin","e","Modal","error","app","createApp","App","use","createPinia","Antd","icons","AntdIcons","component","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","length","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","p","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/src/web/src/utils/ApiClient.js b/src/web/src/utils/ApiClient.js index d4f5e42..6ce9f92 100644 --- a/src/web/src/utils/ApiClient.js +++ b/src/web/src/utils/ApiClient.js @@ -27,7 +27,12 @@ export default class ApiClient { let headers = {}; headers['App-Access-Token'] = appStore.accessToken; - const response = await axios.post(`http://localhost:8080/api/${name}`, params, { + let baseURL = 'http://localhost:8080/api'; + if ( '192.168.8.10' === window.location.host ) { + baseURL = 'http://192.168.8.10/api'; + } + + const response = await axios.post(`${baseURL}/${name}`, params, { headers : headers, });