diff --git a/src/main/java/a8k/hardware/controler/Controler.java b/src/main/java/a8k/hardware/controler/Controler.java index 39f2593..f88d069 100644 --- a/src/main/java/a8k/hardware/controler/Controler.java +++ b/src/main/java/a8k/hardware/controler/Controler.java @@ -40,28 +40,13 @@ public class Controler { public AppRet serviceParams( @RequestBody Map params ) throws InvocationTargetException, IllegalAccessException { String serviceKey = (String)params.get("serviceKey"); - Class paramClass = null; - var classes = UfClassHelper.getAllClassesInPackage("a8k"); - for (var clazz : classes) { - var hardwareServiceParamsAnnotation = clazz.getAnnotation(HardwareServiceParams.class); - if (null == hardwareServiceParamsAnnotation) { - continue ; - } - var serviceClass = hardwareServiceParamsAnnotation.service(); - if (!serviceClass.getSimpleName().equals(serviceKey)) { - continue ; - } - paramClass = clazz; - break; - } - + var paramService = this.getServiceParamHandlerByServiceKey(serviceKey); List> list = new ArrayList<>(); - if ( null == paramClass ) { + if ( null == paramService ) { return AppRet.success(list); } - var paramService = UfApplication.getContext().getBean(paramClass); - var methods = paramClass.getMethods(); + var methods = paramService.getClass().getMethods(); for ( var method : methods ) { var methodName = method.getName(); if ( !methodName.startsWith("get") ) { @@ -88,12 +73,39 @@ public class Controler { public AppRet serviceParamsUpdate( @RequestBody Map params ) throws Exception { String serviceKey = (String)params.get("serviceKey"); Map newParams = (Map)params.get("params"); + + var paramService = this.getServiceParamHandlerByServiceKey(serviceKey); + assert paramService != null; + var paramServiceClass = paramService.getClass(); for ( var param : newParams.entrySet() ) { var name = param.getKey(); var value = param.getValue(); - var options = HardwareServiceSetting.getOption(serviceKey, name); - options.setValue(value); - options.save(); + + var setterName = String.format("set%s", name); + var methods = paramServiceClass.getMethods(); + var isSetterHasBeenFound = false; + for ( var method : methods ) { + if ( !setterName.equals(method.getName()) || 1 < method.getParameterTypes().length ) { + continue ; + } + var setParam = method.getParameters()[0]; + if ( !setParam.getType().isAssignableFrom(value.getClass())) { + if ( !(value instanceof Map) ) { + continue ; + } + var objValue = MyClassHelper.initializeByMap(setParam.getType(), (Map)value); + method.invoke(paramService, objValue); + } else { + method.invoke(paramService, value); + } + isSetterHasBeenFound = true; + } + + if ( !isSetterHasBeenFound ) { + var options = HardwareServiceSetting.getOption(serviceKey, name); + options.setValue(value); + options.save(); + } } return AppRet.success(); } @@ -172,6 +184,10 @@ public class Controler { var actionParam = new HashMap(); actionParam.put("key", param.getName()); actionParam.put("type", param.getType().getName()); + actionParam.put("value", null); + if ( param.getType().equals(Boolean.class) ) { + actionParam.put("value", false); + } if ( param.getType().isEnum() ) { actionParam.put("type", "Enum"); actionParam.put("typeEnum", param.getType().getName()); @@ -257,6 +273,23 @@ public class Controler { return AppRet.success(struct); } + // get service param handler by given service key + private Object getServiceParamHandlerByServiceKey( String serviceKey ) { + var classes = UfClassHelper.getAllClassesInPackage("a8k"); + for (var clazz : classes) { + var hardwareServiceParamsAnnotation = clazz.getAnnotation(HardwareServiceParams.class); + if (null == hardwareServiceParamsAnnotation) { + continue ; + } + var serviceClass = hardwareServiceParamsAnnotation.service(); + if (!serviceClass.getSimpleName().equals(serviceKey)) { + continue ; + } + return UfApplication.getContext().getBean(clazz); + } + return null; + } + // fill up struct info private void classStructInfoFill( Class clazz, List> struct ) { var fields = clazz.getFields(); diff --git a/src/main/java/a8k/service/db/dao/HbotControlParamsDao.java b/src/main/java/a8k/service/db/dao/HbotControlParamsDao.java index eeb409b..0f816a7 100644 --- a/src/main/java/a8k/service/db/dao/HbotControlParamsDao.java +++ b/src/main/java/a8k/service/db/dao/HbotControlParamsDao.java @@ -14,6 +14,11 @@ public class HbotControlParamsDao { return this.getOption("ReactionPos", Pos3d.class); } + // set reaction pos + public void setReactionPos(Pos3d pos) throws Exception { + HardwareServiceSetting.setOption("HbotControlService", "ReactionPos", pos); + } + @HardwareServiceParam(name="TIP组位置信息", group="TIP组位置信息") public TipPickUpPosInfo getTipPickUpPosInfo() throws Exception { return this.getOption("TipPickUpPosInfo", TipPickUpPosInfo.class); diff --git a/src/main/java/a8k/service/db/entity/HardwareServiceSetting.java b/src/main/java/a8k/service/db/entity/HardwareServiceSetting.java index 54ad04b..65ca50a 100644 --- a/src/main/java/a8k/service/db/entity/HardwareServiceSetting.java +++ b/src/main/java/a8k/service/db/entity/HardwareServiceSetting.java @@ -25,7 +25,7 @@ public class HardwareServiceSetting extends UfActiveRecord { } else if ( value instanceof Map ) { this.val = UfJsonHelper.objectToJson(value); } else { - throw new Exception("不支持的配置数据类型"); + this.val = UfJsonHelper.objectToJson(value); } } @@ -33,6 +33,12 @@ public class HardwareServiceSetting extends UfActiveRecord { return "HardwareServiceSetting" + "Table"; } + public static void setOption( String service, String key, Object value ) throws Exception { + var options = getOption(service, key); + options.setValue(value); + options.save(); + } + public static HardwareServiceSetting getOption( String service, String key ) { var option = UfActiveRecord.findOne(HardwareServiceSetting.class, Map.of( "serviceName", service, diff --git a/src/main/java/a8k/utils/MyClassHelper.java b/src/main/java/a8k/utils/MyClassHelper.java new file mode 100644 index 0000000..fe4d699 --- /dev/null +++ b/src/main/java/a8k/utils/MyClassHelper.java @@ -0,0 +1,32 @@ +package a8k.utils; +import java.util.Map; +public class MyClassHelper { + // initialize by map + public static T initializeByMap( Class clazz, Map src ) throws Exception { + var constructor = clazz.getDeclaredConstructor(); + var instance = constructor.newInstance(); + + for (var entry : src.entrySet()) { + var key = entry.getKey(); + var value = entry.getValue(); + var field = clazz.getField(key); + + field.setAccessible(true); + if ( field.getType().isAssignableFrom(value.getClass()) ) { + field.set(instance, value); + continue; + } + + if ( value.getClass().isInstance(Map.class) ) { + var subValue = initializeByMap(clazz, (Map) value); + field.set(instance, subValue); + continue; + } + + String messageTemplate = "属性【%s.%s(%s)】无法接受 %s 类型值"; + String message = String.format(messageTemplate, clazz.getName(), field.getName(), field.getType().getName(), value.getClass().getName()); + throw new Exception(message); + } + return instance; + } +} diff --git a/src/main/resources/static/test/index.html b/src/main/resources/static/test/index.html index ebf42b9..3600d89 100644 --- a/src/main/resources/static/test/index.html +++ b/src/main/resources/static/test/index.html @@ -1 +1 @@ -a8k_webui
\ No newline at end of file +a8k_webui
\ No newline at end of file diff --git a/src/main/resources/static/test/js/app.629c5fd5.js b/src/main/resources/static/test/js/app.629c5fd5.js new file mode 100644 index 0000000..c14a55e --- /dev/null +++ b/src/main/resources/static/test/js/app.629c5fd5.js @@ -0,0 +1,2 @@ +(function(){"use strict";var e={5169:function(e,l,a){var u=a(5130),t=a(1387),o=(a(4114),a(6768)),n=a(144),s=a(1114),v=a(4373),r=a(9804);class i{static getClient(){return null===i.instance&&(i.instance=new i),i.instance}async call(e,l={}){let a=await(0,v.A)({method:"post",url:`http://127.0.0.1/api/${e}`,data:l});if(!a.data.success){let l=(0,o.h)("div",{},[(0,o.h)("pre",JSON.stringify(a.data.ecode,null,2)),(0,o.h)("pre",{class:"overflow-auto h-96 mt-5"},a.data.traceInfo)]);throw r.A.error({title:"请求错误",content:l,width:800}),new Error(`API【${e}】调用失败 : ${a.data}`)}return a.data.data}}(0,s.A)(i,"instance",null);var c=a(4232),d=(a(4979),a(1678),{__name:"ServiceConfigurationParamValueObjectEdit",props:{structClassName:String,value:Object},emits:["update:value","change","save-request"],setup(e,{emit:l}){const a=l,u=e,t=(0,n.KR)([{key:"title",title:"属性",dataIndex:"title"},{key:"value",title:"取值"}]),s=(0,n.KR)([]),v=(0,n.KR)([]),r=(0,n.KR)(!1);async function c(){s.value=await d(u.structClassName),console.log(s.value)}async function d(e,l=[]){let a=["java.lang.Integer"],u=i.getClient();try{let t=await u.call("service-config/class-struct-info-get",{class:e}),o=[];for(let e of t){let u=structuredClone(l);u.push(e.name),v.value.push(e.name);let t={};t.key=e.name,t.title=e.name,t.type=e.type,t.info=e,a.includes(e.type)||(t.children=await d(e.type,u)),t.value=p(u),o.push(t)}return o}catch(t){console.error(t)}}function p(e){let l=u.value;for(var a of e){if(null===l||void 0===l[a])return;l=l[a]}return l}function f(e){let l={};for(let a of e)void 0!==a.children?l[a.key]=f(a.children):l[a.key]=a.value;return l}function b(){r.value=!0}async function k(){let e=f(s.value);console.log(e),a("update:value",e),a("change"),await(0,o.dY)(),a("save-request"),r.value=!0}return(0,o.sV)(c),(e,l)=>{const a=(0,o.g2)("a-button"),u=(0,o.g2)("a-input-number"),n=(0,o.g2)("a-table"),i=(0,o.g2)("a-modal");return(0,o.uX)(),(0,o.CE)(o.FK,null,[(0,o.bF)(a,{size:"small",type:"text",onClick:b},{default:(0,o.k6)((()=>[(0,o.eW)("编辑")])),_:1}),(0,o.bF)(i,{open:r.value,"onUpdate:open":l[1]||(l[1]=e=>r.value=e),title:"参数编辑",onOk:k},{default:(0,o.k6)((()=>[(0,o.bF)(n,{bordered:"",size:"small",expandedRowKeys:v.value,"onUpdate:expandedRowKeys":l[0]||(l[0]=e=>v.value=e),columns:t.value,"data-source":s.value,pagination:!1},{bodyCell:(0,o.k6)((({column:e,record:l})=>["value"===e.key?((0,o.uX)(),(0,o.CE)(o.FK,{key:0},["java.lang.Integer"===l.type?((0,o.uX)(),(0,o.Wv)(u,{key:0,size:"small",class:"w-full !border-none",value:l.value,"onUpdate:value":e=>l.value=e},null,8,["value","onUpdate:value"])):(0,o.Q3)("",!0)],64)):(0,o.Q3)("",!0)])),_:1},8,["expandedRowKeys","columns","data-source"])])),_:1},8,["open"])],64)}}});const p=d;var f=p;const b={key:1,class:"border bg-white px-2 py-1 rounded-md"};var k={__name:"ServiceConfigurationParamValueEdit",props:{param:Object},emits:["update:value","change","save-request"],setup(e,{emit:l}){const a=l,u=e,t=(0,n.KR)(null);function s(){t.value=u.param.value}function v(){a("update:value",structuredClone(t.value)),a("change")}function r(){a("save-request")}return(0,o.sV)(s),(e,l)=>{const a=(0,o.g2)("a-input-number");return(0,o.uX)(),(0,o.CE)("div",null,["java.lang.Integer"===u.param.type?((0,o.uX)(),(0,o.Wv)(a,{key:0,class:"!w-full",value:t.value,"onUpdate:value":l[0]||(l[0]=e=>t.value=e),prefix:`${u.param.name} : `,onChange:v},null,8,["value","prefix"])):((0,o.uX)(),(0,o.CE)("div",b,[(0,o.eW)((0,c.v_)(u.param.name)+" : ",1),(0,o.bF)(f,{value:t.value,"onUpdate:value":l[1]||(l[1]=e=>t.value=e),"struct-class-name":u.param.type,onChange:v,onSaveRequest:r},null,8,["value","struct-class-name"])]))])}}};const _=k;var F=_;const m={key:0},g={class:"border rounded p-3 whitespace-pre bg-white mb-3"},h={class:"border rounded p-3 whitespace-pre bg-white mb-3"},W=(0,o.Lk)("div",null,"参数列表:",-1),y={class:"border rounded p-3 whitespace-pre bg-white mb-3"},C=(0,o.Lk)("div",null,"响应内容:",-1);var T={__name:"ServiceConfigurationActionLog",props:{log:Object},setup(e){const l=e;return(e,a)=>null!==l.log?((0,o.uX)(),(0,o.CE)("div",m,[(0,o.Lk)("div",g," 执行动作 : "+(0,c.v_)(l.log.action),1),(0,o.Lk)("div",h,[W,((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(l.log.params,((e,l)=>((0,o.uX)(),(0,o.CE)("div",{key:l,class:"mr-2"},(0,c.v_)(JSON.stringify(e,null,2)),1)))),128))]),(0,o.Lk)("div",y,[C,(0,o.Lk)("div",null,(0,c.v_)(JSON.stringify(l.log.response,null,2)),1)])])):(0,o.Q3)("",!0)}};const w=T;var x=w;const P={class:"h-full flex flex-col"},S={class:"bg-white border-b p-5"},M={key:0,class:"p-5 border-t border-b"},L={class:"border"},B={class:"p-1"},U={class:"p-5"},K={key:1,class:"border rounded-md my-1 px-3 bg-white"},E={key:4};var R={__name:"ServiceConfiguration",props:{serviceKey:String},setup(e){const l=e,a=(0,n.KR)([]),u=(0,n.KR)([]),t=(0,n.KR)([]),s=(0,n.KR)(null);let v=null;async function r(){s.value=null,null!==v&&(clearTimeout(v),v=null),null!==l.serviceKey&&(await p(),await b(),await d())}async function d(){try{let e=i.getClient();t.value=await e.call("service-config/service-status-list",{serviceKey:l.serviceKey}),!1!==v&&(v=setTimeout(d,500))}catch(e){}}async function p(){try{a.value=[];let u=i.getClient(),t=await u.call("service-config/service-params-list",{serviceKey:l.serviceKey});for(var e of t){let l=e.group,u=a.value.find((e=>e.name===l));void 0===u&&(u={name:l,items:[]},a.value.push(u)),u.items.push(e)}a.value.sort(((e,l)=>l.items.length-e.items.length||l.name.localeCompare(e.name)))}catch(u){}}async function f(){try{let e={};for(let l of a.value)for(let a of l.items)e[a.key]=a.value;let u=i.getClient();await u.call("service-config/service-params-update",{serviceKey:l.serviceKey,params:e}),await p()}catch(e){}}async function b(){try{u.value=[];let e=i.getClient(),a=await e.call("service-config/service-action-list",{serviceKey:l.serviceKey});for(let l of a){let e=u.value.find((e=>e.name===l.group));void 0===e&&(e={name:l.group,items:[]},u.value.push(e)),e.items.push(l),e.items.sort(((e,l)=>e.params.length-l.params.length))}u.value.sort(((e,l)=>e.name.localeCompare(l.name)))}catch(e){}}async function k(e){try{let a=i.getClient(),u={};u.serviceKey=l.serviceKey,u.action=e.key,u.params=[],u.paramTypes=[];for(let l of e.params){u.params.push(l.value);let e=l.type;"Enum"===e&&(e=l.typeEnum),u.paramTypes.push(e)}s.value={},s.value.action=u.action,s.value.params=u.params,s.value.response=null,e.isExecuting=!0,s.value.response=await a.call("service-config/service-action-exec",u),e.isExecuting=!1}catch(a){}finally{e.isExecuting=!1}}return(0,o.wB)((()=>l.serviceKey),r),(0,o.hi)((()=>{null!==v&&(clearTimeout(v),v=!1)})),(e,l)=>{const n=(0,o.g2)("a-col"),v=(0,o.g2)("a-row"),r=(0,o.g2)("a-button"),i=(0,o.g2)("a-switch"),d=(0,o.g2)("a-input"),b=(0,o.g2)("a-input-number"),_=(0,o.g2)("a-select-option"),m=(0,o.g2)("a-select");return(0,o.uX)(),(0,o.CE)("div",P,[(0,o.Lk)("div",S,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(t.value,((e,l)=>((0,o.uX)(),(0,o.CE)("div",{key:l,class:"inline-block py-1 px-2 rounded border ml-1"},(0,c.v_)(e.name)+" : "+(0,c.v_)(e.value),1)))),128))]),(0,o.bF)(v,{class:"h-0 grow"},{default:(0,o.k6)((()=>[(0,o.bF)(n,{class:"border-r h-full overflow-y-auto",span:16},{default:(0,o.k6)((()=>[0[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(a.value,(e=>((0,o.uX)(),(0,o.Wv)(n,{span:8,key:e.name,class:"p-1"},{default:(0,o.k6)((()=>[(0,o.Lk)("fieldset",L,[(0,o.Lk)("legend",null,(0,c.v_)(e.name),1),((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(e.items,(e=>((0,o.uX)(),(0,o.CE)("div",{class:"p-1",key:e.key},[(0,o.bF)(F,{param:e,value:e.value,"onUpdate:value":l=>e.value=l,onSaveRequest:f},null,8,["param","value","onUpdate:value"])])))),128))])])),_:2},1024)))),128))])),_:1}),(0,o.Lk)("div",B,[(0,o.bF)(r,{class:"mr-1",onClick:p},{default:(0,o.k6)((()=>[(0,o.eW)("刷新")])),_:1}),(0,o.bF)(r,{onClick:f},{default:(0,o.k6)((()=>[(0,o.eW)("保存")])),_:1})])])):(0,o.Q3)("",!0),(0,o.Lk)("div",U,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(u.value,((e,l)=>((0,o.uX)(),(0,o.CE)("fieldset",{key:l,class:"border my-1 p-1"},[(0,o.Lk)("legend",null,(0,c.v_)(e.name),1),((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(e.items,(e=>((0,o.uX)(),(0,o.CE)("div",{key:e.key,class:(0,c.C4)({"inline-block ml-1":0===e.params.length})},[0===e.params.length?((0,o.uX)(),(0,o.Wv)(r,{key:0,class:"my-1",loading:e.isExecuting,onClick:l=>k(e)},{default:(0,o.k6)((()=>[(0,o.eW)((0,c.v_)(e.name),1)])),_:2},1032,["loading","onClick"])):((0,o.uX)(),(0,o.CE)("div",K,[(0,o.Lk)("span",null,(0,c.v_)(e.name),1),((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(e.params,(e=>((0,o.uX)(),(0,o.CE)("div",{class:"inline-block mx-2",key:e.key},[(0,o.eW)((0,c.v_)(e.name)+" : ",1),"java.lang.Boolean"===e.type?((0,o.uX)(),(0,o.Wv)(i,{key:0,checked:e.value,"onUpdate:checked":l=>e.value=l},null,8,["checked","onUpdate:checked"])):"java.lang.String"===e.type?((0,o.uX)(),(0,o.Wv)(d,{key:1,class:"w-24",value:e.value,"onUpdate:value":l=>e.value=l},null,8,["value","onUpdate:value"])):"java.lang.Integer"===e.type?((0,o.uX)(),(0,o.Wv)(b,{key:2,class:"w-24",value:e.value,"onUpdate:value":l=>e.value=l},null,8,["value","onUpdate:value"])):"Enum"===e.type?((0,o.uX)(),(0,o.Wv)(m,{key:3,value:e.value,"onUpdate:value":l=>e.value=l,dropdownMatchSelectWidth:!1},{default:(0,o.k6)((()=>[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(e.options,((e,l)=>((0,o.uX)(),(0,o.Wv)(_,{key:l,value:e.value},{default:(0,o.k6)((()=>[(0,o.eW)((0,c.v_)(e.name),1)])),_:2},1032,["value"])))),128))])),_:2},1032,["value","onUpdate:value"])):((0,o.uX)(),(0,o.CE)("span",E,(0,c.v_)(e),1))])))),128)),(0,o.bF)(r,{class:"m-1",loading:e.isExecuting,onClick:l=>k(e)},{default:(0,o.k6)((()=>[(0,o.eW)("执行")])),_:2},1032,["loading","onClick"])]))],2)))),128))])))),128))])])),_:1}),(0,o.bF)(n,{span:8,class:"p-5 h-full"},{default:(0,o.k6)((()=>[(0,o.bF)(x,{log:s.value},null,8,["log"])])),_:1})])),_:1})])}}};const H=R;var O=H,X={__name:"App",setup(e){const l=(0,n.KR)([]),a=(0,n.KR)(null),u=(0,n.KR)(!1),t=(0,n.KR)("");async function s(){l.value=[];let e=i.getClient(),a=await e.call("service-config/service-list");for(let u of a)l.value.push({id:u.key,key:u.key,label:u.name})}function v(e){a.value=e.item.id}function r(){"zwsdzwsd"===t.value&&(u.value=!1)}return(0,o.sV)(s),(e,n)=>{const s=(0,o.g2)("a-menu"),i=(0,o.g2)("a-layout-sider"),c=(0,o.g2)("a-layout-content"),d=(0,o.g2)("a-layout"),p=(0,o.g2)("a-input-password"),f=(0,o.g2)("a-button"),b=(0,o.g2)("a-modal");return(0,o.uX)(),(0,o.CE)(o.FK,null,[(0,o.bF)(d,{class:"h-full"},{default:(0,o.k6)((()=>[(0,o.bF)(i,null,{default:(0,o.k6)((()=>[(0,o.bF)(s,{class:"h-full",items:l.value,onClick:v},null,8,["items"])])),_:1}),(0,o.bF)(d,null,{default:(0,o.k6)((()=>[(0,o.bF)(c,null,{default:(0,o.k6)((()=>[(0,o.bF)(O,{"service-key":a.value},null,8,["service-key"])])),_:1})])),_:1})])),_:1}),(0,o.bF)(b,{open:u.value,closable:!1,title:"操作认证"},{footer:(0,o.k6)((()=>[(0,o.bF)(f,{type:"primary",onClick:r},{default:(0,o.k6)((()=>[(0,o.eW)("验证")])),_:1})])),default:(0,o.k6)((()=>[(0,o.bF)(p,{value:t.value,"onUpdate:value":n[0]||(n[0]=e=>t.value=e)},null,8,["value"])])),_:1},8,["open"])],64)}}};const Z=X;var A=Z,J=a(5902),j=a(6678);const I={class:"h-full flex flex-col"},z={class:"border-b p-5 bg-white flex flex-row"},N=(0,o.Lk)("div",null,"进出料",-1),V={key:0,class:"ml-1"},q={class:"p-5 border-t border-b"},G={class:"p-5"},Q={class:"mt-1"},D={class:"mt-1"},$={class:"mt-1"},Y={class:"mt-1"},ee={class:"mt-1"},le={class:"border rounded p-5 whitespace-pre h-full overflow-y-auto bg-white"};var ae={__name:"TestFeeder",setup(e){const l=(0,n.KR)(""),a=(0,n.KR)(["ShortBlood",0]),u=(0,n.KR)(["ShortBlood",0]),t=(0,n.KR)(["ShortBlood",0]),s=(0,n.KR)(["ShortBlood",0]),v=(0,n.KR)(["ShortBlood",0]),r=(0,n.KR)({}),d=(0,n.KR)(!1);async function p(){r.value={},l.value="";let e=i.getClient();try{let a=await e.call("motor-tube-rack-move-ctrl/list-options");l.value=JSON.stringify(a,null,2);for(let e of a)r.value[e.key]=e.val}catch(a){l.value=a.message}}async function f(){l.value="";let e=i.getClient();try{let a=[];for(let e in r.value)a.push({name:e,value:r.value[e]});let u=await e.call("motor-tube-rack-move-ctrl/update-options",{options:a});l.value=JSON.stringify(u,null,2)}catch(a){l.value=a.message}}async function b(e,a=[]){d.value=!0,l.value="";let u=i.getClient();try{let t=await u.call("motor-tube-rack-move-ctrl/execute-service-method",{method:e,params:a});l.value=null===t?"OK":JSON.stringify(t,null,2)}catch(t){l.value=t.message}finally{d.value=!1}}function k(e,...l){b(e,l)}function _(){b("moveTubeToScanPos",[a.value[0],1*a.value[1]])}function F(){b("moveTubeToScanPosAndScan",[u.value[0],1*u.value[1]])}function m(){b("moveTubeToHeighJudgmentPos",[t.value[0],1*t.value[1]])}function g(){b("moveTubeToPreProcessPos",[s.value[0],1*s.value[1]])}function h(){b("moveTubeToExistJudgmentPos",[v.value[0],1*v.value[1]])}return(0,o.sV)(p),(e,i)=>{const b=(0,o.g2)("a-input"),W=(0,o.g2)("a-col"),y=(0,o.g2)("a-button"),C=(0,o.g2)("a-row"),T=(0,o.g2)("a-select-option"),w=(0,o.g2)("a-select"),x=(0,o.g2)("a-input-group");return(0,o.uX)(),(0,o.CE)("div",I,[(0,o.Lk)("div",z,[N,d.value?((0,o.uX)(),(0,o.CE)("div",V,[(0,o.bF)((0,n.R1)(j.A))])):(0,o.Q3)("",!0)]),(0,o.bF)(C,{class:"h-0 grow"},{default:(0,o.k6)((()=>[(0,o.bF)(W,{class:"border-r",span:16},{default:(0,o.k6)((()=>[(0,o.Lk)("div",q,[(0,o.bF)(C,null,{default:(0,o.k6)((()=>[(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"回零超时时间 : ",value:r.value.MoveToZeroOvertime,"onUpdate:value":i[0]||(i[0]=e=>r.value.MoveToZeroOvertime=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"执行动作的超时时间 : ",value:r.value.ActionOvertime,"onUpdate:value":i[1]||(i[1]=e=>r.value.ActionOvertime=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"试管扫码位置 : ",value:r.value.TubeScanPos,"onUpdate:value":i[2]||(i[2]=e=>r.value.TubeScanPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"高低试管判断位置 : ",value:r.value.TubeHeighJudgmentPos,"onUpdate:value":i[3]||(i[3]=e=>r.value.TubeHeighJudgmentPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"试管预处理位置 : ",value:r.value.TubePreProcessPos,"onUpdate:value":i[4]||(i[4]=e=>r.value.TubePreProcessPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"有无判断位置 : ",value:r.value.TubeExistJudgmentPos,"onUpdate:value":i[5]||(i[5]=e=>r.value.TubeExistJudgmentPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"入料位置 : ",value:r.value.TubeRackEnterPos,"onUpdate:value":i[6]||(i[6]=e=>r.value.TubeRackEnterPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"出料位置 : ",value:r.value.TubeRackExitPos,"onUpdate:value":i[7]||(i[7]=e=>r.value.TubeRackExitPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"试管架扫码位置 : ",value:r.value.TubeRackScanCodePos,"onUpdate:value":i[8]||(i[8]=e=>r.value.TubeRackScanCodePos=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"水平移动电机位置偏移 : ",value:r.value.HorizontalMotorOffset,"onUpdate:value":i[9]||(i[9]=e=>r.value.HorizontalMotorOffset=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"水平电机丢步判断 : ",value:r.value.HorizontalMotorLostStepThresholdVal,"onUpdate:value":i[10]||(i[10]=e=>r.value.HorizontalMotorLostStepThresholdVal=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"试管扫码夹紧位置 : ",value:r.value.ScanCodeClampPos,"onUpdate:value":i[11]||(i[11]=e=>r.value.ScanCodeClampPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"试管扫码释放位置 : ",value:r.value.ScanCodeReleasePos,"onUpdate:value":i[12]||(i[12]=e=>r.value.ScanCodeReleasePos=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(b,{prefix:"试管间距 : ",value:r.value.TubeSpacing,"onUpdate:value":i[13]||(i[13]=e=>r.value.TubeSpacing=e)},null,8,["value"])])),_:1}),(0,o.bF)(W,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(y,{class:"mr-1",onClick:p},{default:(0,o.k6)((()=>[(0,o.eW)("刷新")])),_:1}),(0,o.bF)(y,{onClick:f},{default:(0,o.k6)((()=>[(0,o.eW)("保存")])),_:1})])),_:1})])),_:1})]),(0,o.Lk)("div",G,[(0,o.bF)(y,{class:"m-1",onClick:i[14]||(i[14]=e=>k("setEnable",!0))},{default:(0,o.k6)((()=>[(0,o.eW)("使能")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[15]||(i[15]=e=>k("setEnable",!1))},{default:(0,o.k6)((()=>[(0,o.eW)("失能")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[16]||(i[16]=e=>k("stop"))},{default:(0,o.k6)((()=>[(0,o.eW)("停止")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[17]||(i[17]=e=>k("moveToZero"))},{default:(0,o.k6)((()=>[(0,o.eW)("归零")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[18]||(i[18]=e=>k("moveToZeroWhenDeviceSetup"))},{default:(0,o.k6)((()=>[(0,o.eW)("设备启动归零")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[19]||(i[19]=e=>k("moveTubeRackToEnterPos"))},{default:(0,o.k6)((()=>[(0,o.eW)("移动试管架到入口位置")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[20]||(i[20]=e=>k("moveTubeRackToExitPos"))},{default:(0,o.k6)((()=>[(0,o.eW)("移动试管架到出口位置")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[21]||(i[21]=e=>k("moveTubeRackToScanPos"))},{default:(0,o.k6)((()=>[(0,o.eW)("移动试管架到试管架扫码位置")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[22]||(i[22]=e=>k("moveTubeRackToScanPosAndScan"))},{default:(0,o.k6)((()=>[(0,o.eW)("移动试管架到试管架扫码并扫码")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[23]||(i[23]=e=>k("isTubeRackInEnterPos"))},{default:(0,o.k6)((()=>[(0,o.eW)("试管架是否在入料位置")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[24]||(i[24]=e=>k("isTubeRackInExitPos"))},{default:(0,o.k6)((()=>[(0,o.eW)("试管架是否在出料位置")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[25]||(i[25]=e=>k("getMoveChannelPhotoelectricState",0))},{default:(0,o.k6)((()=>[(0,o.eW)("获取移动通道的光电状态(内)")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[26]||(i[26]=e=>k("getMoveChannelPhotoelectricState",1))},{default:(0,o.k6)((()=>[(0,o.eW)("获取移动通道的光电状态(外)")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[27]||(i[27]=e=>k("scanClampModuleCompress"))},{default:(0,o.k6)((()=>[(0,o.eW)("扫描夹紧机构夹紧")])),_:1}),(0,o.bF)(y,{class:"m-1",onClick:i[28]||(i[28]=e=>k("scanClampModuleReset"))},{default:(0,o.k6)((()=>[(0,o.eW)("扫描夹紧机构复位")])),_:1}),(0,o.Lk)("div",Q,[(0,o.bF)(x,{compact:"",class:"flex flex-row"},{default:(0,o.k6)((()=>[(0,o.bF)(y,{onClick:_},{default:(0,o.k6)((()=>[(0,o.eW)("移动试管到扫码位置")])),_:1}),(0,o.bF)(w,{class:"w-64",value:a.value[0],"onUpdate:value":i[29]||(i[29]=e=>a.value[0]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:"HighBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血5ML")])),_:1}),(0,o.bF)(T,{value:"ShortBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血3ML")])),_:1}),(0,o.bF)(T,{value:"Mini"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 迷你试管")])),_:1}),(0,o.bF)(T,{value:"MiniBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 阳普管")])),_:1}),(0,o.bF)(T,{value:"BulletTube1P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管1.5mL")])),_:1}),(0,o.bF)(T,{value:"BulletTube0P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管0.5mL")])),_:1})])),_:1},8,["value"]),(0,o.bF)(w,{class:"w-32",value:a.value[1],"onUpdate:value":i[30]||(i[30]=e=>a.value[1]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:0},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 1")])),_:1}),(0,o.bF)(T,{value:1},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 2")])),_:1}),(0,o.bF)(T,{value:2},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 3")])),_:1}),(0,o.bF)(T,{value:3},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 4")])),_:1}),(0,o.bF)(T,{value:4},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 5")])),_:1}),(0,o.bF)(T,{value:5},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 6")])),_:1}),(0,o.bF)(T,{value:6},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 7")])),_:1}),(0,o.bF)(T,{value:7},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 8")])),_:1}),(0,o.bF)(T,{value:8},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 9")])),_:1}),(0,o.bF)(T,{value:9},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 10")])),_:1})])),_:1},8,["value"])])),_:1})]),(0,o.Lk)("div",D,[(0,o.bF)(x,{compact:"",class:"flex flex-row"},{default:(0,o.k6)((()=>[(0,o.bF)(y,{onClick:F},{default:(0,o.k6)((()=>[(0,o.eW)("移动试管到扫码位置,并扫码")])),_:1}),(0,o.bF)(w,{class:"w-64",value:u.value[0],"onUpdate:value":i[31]||(i[31]=e=>u.value[0]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:"HighBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血5ML")])),_:1}),(0,o.bF)(T,{value:"ShortBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血3ML")])),_:1}),(0,o.bF)(T,{value:"Mini"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 迷你试管")])),_:1}),(0,o.bF)(T,{value:"MiniBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 阳普管")])),_:1}),(0,o.bF)(T,{value:"BulletTube1P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管1.5mL")])),_:1}),(0,o.bF)(T,{value:"BulletTube0P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管0.5mL")])),_:1})])),_:1},8,["value"]),(0,o.bF)(w,{class:"w-32",value:u.value[1],"onUpdate:value":i[32]||(i[32]=e=>u.value[1]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:0},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 1")])),_:1}),(0,o.bF)(T,{value:1},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 2")])),_:1}),(0,o.bF)(T,{value:2},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 3")])),_:1}),(0,o.bF)(T,{value:3},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 4")])),_:1}),(0,o.bF)(T,{value:4},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 5")])),_:1}),(0,o.bF)(T,{value:5},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 6")])),_:1}),(0,o.bF)(T,{value:6},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 7")])),_:1}),(0,o.bF)(T,{value:7},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 8")])),_:1}),(0,o.bF)(T,{value:8},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 9")])),_:1}),(0,o.bF)(T,{value:9},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 10")])),_:1})])),_:1},8,["value"])])),_:1})]),(0,o.Lk)("div",$,[(0,o.bF)(x,{compact:"",class:"flex flex-row"},{default:(0,o.k6)((()=>[(0,o.bF)(y,{onClick:m},{default:(0,o.k6)((()=>[(0,o.eW)("移动试管到试管高低判断位置")])),_:1}),(0,o.bF)(w,{class:"w-64",value:t.value[0],"onUpdate:value":i[33]||(i[33]=e=>t.value[0]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:"HighBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血5ML")])),_:1}),(0,o.bF)(T,{value:"ShortBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血3ML")])),_:1}),(0,o.bF)(T,{value:"Mini"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 迷你试管")])),_:1}),(0,o.bF)(T,{value:"MiniBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 阳普管")])),_:1}),(0,o.bF)(T,{value:"BulletTube1P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管1.5mL")])),_:1}),(0,o.bF)(T,{value:"BulletTube0P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管0.5mL")])),_:1})])),_:1},8,["value"]),(0,o.bF)(w,{class:"w-32",value:t.value[1],"onUpdate:value":i[34]||(i[34]=e=>t.value[1]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:0},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 1")])),_:1}),(0,o.bF)(T,{value:1},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 2")])),_:1}),(0,o.bF)(T,{value:2},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 3")])),_:1}),(0,o.bF)(T,{value:3},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 4")])),_:1}),(0,o.bF)(T,{value:4},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 5")])),_:1}),(0,o.bF)(T,{value:5},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 6")])),_:1}),(0,o.bF)(T,{value:6},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 7")])),_:1}),(0,o.bF)(T,{value:7},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 8")])),_:1}),(0,o.bF)(T,{value:8},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 9")])),_:1}),(0,o.bF)(T,{value:9},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 10")])),_:1})])),_:1},8,["value"])])),_:1})]),(0,o.Lk)("div",Y,[(0,o.bF)(x,{compact:"",class:"flex flex-row"},{default:(0,o.k6)((()=>[(0,o.bF)(y,{onClick:g},{default:(0,o.k6)((()=>[(0,o.eW)("移动试管到试管预处理的位置")])),_:1}),(0,o.bF)(w,{class:"w-64",value:s.value[0],"onUpdate:value":i[35]||(i[35]=e=>s.value[0]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:"HighBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血5ML")])),_:1}),(0,o.bF)(T,{value:"ShortBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血3ML")])),_:1}),(0,o.bF)(T,{value:"Mini"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 迷你试管")])),_:1}),(0,o.bF)(T,{value:"MiniBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 阳普管")])),_:1}),(0,o.bF)(T,{value:"BulletTube1P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管1.5mL")])),_:1}),(0,o.bF)(T,{value:"BulletTube0P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管0.5mL")])),_:1})])),_:1},8,["value"]),(0,o.bF)(w,{class:"w-32",value:s.value[1],"onUpdate:value":i[36]||(i[36]=e=>s.value[1]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:0},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 1")])),_:1}),(0,o.bF)(T,{value:1},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 2")])),_:1}),(0,o.bF)(T,{value:2},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 3")])),_:1}),(0,o.bF)(T,{value:3},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 4")])),_:1}),(0,o.bF)(T,{value:4},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 5")])),_:1}),(0,o.bF)(T,{value:5},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 6")])),_:1}),(0,o.bF)(T,{value:6},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 7")])),_:1}),(0,o.bF)(T,{value:7},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 8")])),_:1}),(0,o.bF)(T,{value:8},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 9")])),_:1}),(0,o.bF)(T,{value:9},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 10")])),_:1})])),_:1},8,["value"])])),_:1})]),(0,o.Lk)("div",ee,[(0,o.bF)(x,{compact:"",class:"flex flex-row"},{default:(0,o.k6)((()=>[(0,o.bF)(y,{onClick:h},{default:(0,o.k6)((()=>[(0,o.eW)("移动试管到试管有无判断位置")])),_:1}),(0,o.bF)(w,{class:"w-64",value:v.value[0],"onUpdate:value":i[37]||(i[37]=e=>v.value[0]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:"HighBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血5ML")])),_:1}),(0,o.bF)(T,{value:"ShortBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血3ML")])),_:1}),(0,o.bF)(T,{value:"Mini"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 迷你试管")])),_:1}),(0,o.bF)(T,{value:"MiniBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 阳普管")])),_:1}),(0,o.bF)(T,{value:"BulletTube1P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管1.5mL")])),_:1}),(0,o.bF)(T,{value:"BulletTube0P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管0.5mL")])),_:1})])),_:1},8,["value"]),(0,o.bF)(w,{class:"w-32",value:v.value[1],"onUpdate:value":i[38]||(i[38]=e=>v.value[1]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(T,{value:0},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 1")])),_:1}),(0,o.bF)(T,{value:1},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 2")])),_:1}),(0,o.bF)(T,{value:2},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 3")])),_:1}),(0,o.bF)(T,{value:3},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 4")])),_:1}),(0,o.bF)(T,{value:4},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 5")])),_:1}),(0,o.bF)(T,{value:5},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 6")])),_:1}),(0,o.bF)(T,{value:6},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 7")])),_:1}),(0,o.bF)(T,{value:7},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 8")])),_:1}),(0,o.bF)(T,{value:8},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 9")])),_:1}),(0,o.bF)(T,{value:9},{default:(0,o.k6)((()=>[(0,o.eW)("试管 : 10")])),_:1})])),_:1},8,["value"])])),_:1})])])])),_:1}),(0,o.bF)(W,{span:8,class:"p-5 h-full"},{default:(0,o.k6)((()=>[(0,o.Lk)("div",le,(0,c.v_)(l.value),1)])),_:1})])),_:1})])}}};const ue=ae;var te=ue;const oe={class:"h-full flex flex-col"},ne={class:"border-b p-5 bg-white flex flex-row"},se=(0,o.Lk)("div",null,"样本预处理",-1),ve={key:0,class:"ml-1"},re={class:"p-5 border-t border-b"},ie={class:"p-5"},ce={class:"mt-1"},de={class:"mt-1"},pe={class:"mt-1"},fe={class:"mt-1"},be={class:"border rounded p-5 whitespace-pre h-full overflow-y-auto bg-white"};var ke={__name:"TestTubePreProcess",setup(e){const l=(0,n.KR)(""),a=(0,n.KR)({}),u=(0,n.KR)(["ShortBlood",3,90]),t=(0,n.KR)(["ShortBlood",!1]),s=(0,n.KR)(["ShortBlood"]),v=(0,n.KR)(["ShortBlood"]),r=(0,n.KR)(!1);async function d(){a.value={},l.value="";let e=i.getClient();try{let u=await e.call("sample-pre-process-module-ctrl/list-options");l.value=JSON.stringify(u,null,2);for(let e of u)a.value[e.key]=e.val}catch(u){l.value=u.message}}async function p(){l.value="";let e=i.getClient();try{let u=[];for(let e in a.value)u.push({name:e,value:a.value[e]});let t=await e.call("sample-pre-process-module-ctrl/update-options",{options:u});l.value=JSON.stringify(t,null,2)}catch(u){l.value=u.message}}async function f(e,a=[]){r.value=!0,l.value="";let u=i.getClient();try{let t=await u.call("sample-pre-process-module-ctrl/execute-service-method",{method:e,params:a});l.value=null===t?"OK":JSON.stringify(t,null,2)}catch(t){l.value=t.message}finally{r.value=!1}}function b(e,...l){f(e,l)}function k(){f("ShakeTube",[u.value[0],1*u.value[1],1*u.value[2]])}function _(){f("takeTube",[t.value[0],t.value[1]])}function F(){f("takeTubeCap",[s.value[0]])}function m(){f("pushBackTubeCapAndTakeBakTube",[v.value[0]])}return(0,o.sV)(d),(e,i)=>{const f=(0,o.g2)("a-input"),g=(0,o.g2)("a-col"),h=(0,o.g2)("a-button"),W=(0,o.g2)("a-row"),y=(0,o.g2)("a-select-option"),C=(0,o.g2)("a-select"),T=(0,o.g2)("a-input-group");return(0,o.uX)(),(0,o.CE)("div",oe,[(0,o.Lk)("div",ne,[se,r.value?((0,o.uX)(),(0,o.CE)("div",ve,[(0,o.bF)((0,n.R1)(j.A))])):(0,o.Q3)("",!0)]),(0,o.bF)(W,{class:"h-0 grow"},{default:(0,o.k6)((()=>[(0,o.bF)(g,{class:"border-r",span:16},{default:(0,o.k6)((()=>[(0,o.Lk)("div",re,[(0,o.bF)(W,null,{default:(0,o.k6)((()=>[(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"回零超时时间 : ",value:a.value.MoveToZeroOvertime,"onUpdate:value":i[0]||(i[0]=e=>a.value.MoveToZeroOvertime=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"执行动作的超时时间 : ",value:a.value.ActionOvertime,"onUpdate:value":i[1]||(i[1]=e=>a.value.ActionOvertime=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"高全血试管取试管位置 : ",value:a.value.ZMotor_HighBloodTakeTubeHeight,"onUpdate:value":i[2]||(i[2]=e=>a.value.ZMotor_HighBloodTakeTubeHeight=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"矮全血试管取试管位置 : ",value:a.value.ZMotor_ShortBloodTakeTubeHeight,"onUpdate:value":i[3]||(i[3]=e=>a.value.ZMotor_ShortBloodTakeTubeHeight=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"高全血试管取帽位置 : ",value:a.value.ZMotor_HighBloodTakeCapHeight,"onUpdate:value":i[4]||(i[4]=e=>a.value.ZMotor_HighBloodTakeCapHeight=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"矮全血试管取帽位置 : ",value:a.value.ZMotor_ShortBloodTakeCapHeight,"onUpdate:value":i[5]||(i[5]=e=>a.value.ZMotor_ShortBloodTakeCapHeight=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"高试管帽子判断位置 : ",value:a.value.ZMotor_HighBloodCapJudgeHeight,"onUpdate:value":i[6]||(i[6]=e=>a.value.ZMotor_HighBloodCapJudgeHeight=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"矮全血试管帽子判断位置 : ",value:a.value.ZMotor_ShortBloodCapJudgeHeight,"onUpdate:value":i[7]||(i[7]=e=>a.value.ZMotor_ShortBloodCapJudgeHeight=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"摇匀位放置高度 : ",value:a.value.ZMotor_placeShakeHeight,"onUpdate:value":i[8]||(i[8]=e=>a.value.ZMotor_placeShakeHeight=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"水平移动电机待机位置 : ",value:a.value.HorizontalMotor_standbyPos,"onUpdate:value":i[9]||(i[9]=e=>a.value.HorizontalMotor_standbyPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"水平移动电机取帽位置 : ",value:a.value.HorizontalMotor_takeCapPos,"onUpdate:value":i[10]||(i[10]=e=>a.value.HorizontalMotor_takeCapPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"水平移动电机放帽位置 : ",value:a.value.HorizontalMotor_takePushCapPos,"onUpdate:value":i[11]||(i[11]=e=>a.value.HorizontalMotor_takePushCapPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"抓手舵机待机位置 : ",value:a.value.GripperServo_standbyPos,"onUpdate:value":i[12]||(i[12]=e=>a.value.GripperServo_standbyPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"抓手舵机取帽扭矩 : ",value:a.value.GripperServo_takeCapTorque,"onUpdate:value":i[13]||(i[13]=e=>a.value.GripperServo_takeCapTorque=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"抓手舵机取试管位置 : ",value:a.value.GripperServo_takeTubePos,"onUpdate:value":i[14]||(i[14]=e=>a.value.GripperServo_takeTubePos=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"判断是否有帽子的位置阈值 : ",value:a.value.GripperServo_hatDeterminesPosThres,"onUpdate:value":i[15]||(i[15]=e=>a.value.GripperServo_hatDeterminesPosThres=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"摇匀电机待机位置 : ",value:a.value.ShakeMotor_standbyPos,"onUpdate:value":i[16]||(i[16]=e=>a.value.ShakeMotor_standbyPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"摇匀电机摇匀角度 : ",value:a.value.ShakeMotor_shakeDegree,"onUpdate:value":i[17]||(i[17]=e=>a.value.ShakeMotor_shakeDegree=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"试管夹紧电机待机位置 : ",value:a.value.TubeClampMotor_standbyPos,"onUpdate:value":i[18]||(i[18]=e=>a.value.TubeClampMotor_standbyPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"试管夹紧电机夹紧位置 : ",value:a.value.TubeClampMotor_ClampPos,"onUpdate:value":i[19]||(i[19]=e=>a.value.TubeClampMotor_ClampPos=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(f,{prefix:"气溶胶风扇控制参数 : ",value:a.value.AerosolFanLevel,"onUpdate:value":i[20]||(i[20]=e=>a.value.AerosolFanLevel=e)},null,8,["value"])])),_:1}),(0,o.bF)(g,{class:"p-1",span:8},{default:(0,o.k6)((()=>[(0,o.bF)(h,{class:"mr-1",onClick:d},{default:(0,o.k6)((()=>[(0,o.eW)("刷新")])),_:1}),(0,o.bF)(h,{onClick:p},{default:(0,o.k6)((()=>[(0,o.eW)("保存")])),_:1})])),_:1})])),_:1})]),(0,o.Lk)("div",ie,[(0,o.bF)(h,{class:"m-1",onClick:i[21]||(i[21]=e=>b("enableModule",!0))},{default:(0,o.k6)((()=>[(0,o.eW)("使能")])),_:1}),(0,o.bF)(h,{class:"m-1",onClick:i[22]||(i[22]=e=>b("enableModule",!1))},{default:(0,o.k6)((()=>[(0,o.eW)("失能")])),_:1}),(0,o.bF)(h,{class:"m-1",onClick:i[23]||(i[23]=e=>b("moveToZero"))},{default:(0,o.k6)((()=>[(0,o.eW)("归零")])),_:1}),(0,o.bF)(h,{class:"m-1",onClick:i[24]||(i[24]=e=>b("stop"))},{default:(0,o.k6)((()=>[(0,o.eW)("停止")])),_:1}),(0,o.bF)(h,{class:"m-1",onClick:i[25]||(i[25]=e=>b("openTubeClip"))},{default:(0,o.k6)((()=>[(0,o.eW)("打开试管夹爪")])),_:1}),(0,o.bF)(h,{class:"m-1",onClick:i[26]||(i[26]=e=>b("openAerosolFan"))},{default:(0,o.k6)((()=>[(0,o.eW)("打开气溶胶风扇")])),_:1}),(0,o.bF)(h,{class:"m-1",onClick:i[27]||(i[27]=e=>b("closeAerosolFan"))},{default:(0,o.k6)((()=>[(0,o.eW)("关闭气溶胶风扇")])),_:1}),(0,o.bF)(h,{class:"m-1",onClick:i[28]||(i[28]=e=>b("moduleResetWhenPowerOn"))},{default:(0,o.k6)((()=>[(0,o.eW)("设备初始化时复位")])),_:1}),(0,o.bF)(h,{class:"m-1",onClick:i[29]||(i[29]=e=>b("moduleRuntimeReset"))},{default:(0,o.k6)((()=>[(0,o.eW)("设备运行时复位")])),_:1}),(0,o.Lk)("div",ce,[(0,o.bF)(T,{compact:"",class:"flex flex-row"},{default:(0,o.k6)((()=>[(0,o.bF)(h,{onClick:_},{default:(0,o.k6)((()=>[(0,o.eW)("取试管")])),_:1}),(0,o.bF)(C,{class:"w-64",value:t.value[0],"onUpdate:value":i[30]||(i[30]=e=>t.value[0]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(y,{value:"HighBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血5ML")])),_:1}),(0,o.bF)(y,{value:"ShortBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血3ML")])),_:1}),(0,o.bF)(y,{value:"Mini"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 迷你试管")])),_:1}),(0,o.bF)(y,{value:"MiniBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 阳普管")])),_:1}),(0,o.bF)(y,{value:"BulletTube1P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管1.5mL")])),_:1}),(0,o.bF)(y,{value:"BulletTube0P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管0.5mL")])),_:1})])),_:1},8,["value"]),(0,o.bF)(h,{onClick:i[31]||(i[31]=e=>t.value[1]=!t.value[1]),type:t.value[1]?"primary":"default"},{default:(0,o.k6)((()=>[(0,o.eW)("检查试管帽")])),_:1},8,["type"])])),_:1})]),(0,o.Lk)("div",de,[(0,o.bF)(T,{compact:"",class:"flex flex-row"},{default:(0,o.k6)((()=>[(0,o.bF)(h,{onClick:k},{default:(0,o.k6)((()=>[(0,o.eW)("摇匀试管")])),_:1}),(0,o.bF)(C,{class:"w-64",value:u.value[0],"onUpdate:value":i[32]||(i[32]=e=>u.value[0]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(y,{value:"HighBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血5ML")])),_:1}),(0,o.bF)(y,{value:"ShortBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血3ML")])),_:1}),(0,o.bF)(y,{value:"Mini"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 迷你试管")])),_:1}),(0,o.bF)(y,{value:"MiniBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 阳普管")])),_:1}),(0,o.bF)(y,{value:"BulletTube1P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管1.5mL")])),_:1}),(0,o.bF)(y,{value:"BulletTube0P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管0.5mL")])),_:1})])),_:1},8,["value"]),(0,o.bF)(f,{class:"!w-24",prefix:"次数 : ",value:u.value[1],"onUpdate:value":i[33]||(i[33]=e=>u.value[1]=e)},null,8,["value"]),(0,o.bF)(f,{class:"!w-24",prefix:"角度 : ",value:u.value[2],"onUpdate:value":i[34]||(i[34]=e=>u.value[2]=e)},null,8,["value"])])),_:1})]),(0,o.Lk)("div",pe,[(0,o.bF)(T,{compact:"",class:"flex flex-row"},{default:(0,o.k6)((()=>[(0,o.bF)(h,{onClick:F},{default:(0,o.k6)((()=>[(0,o.eW)("取试管帽")])),_:1}),(0,o.bF)(C,{class:"w-64",value:s.value[0],"onUpdate:value":i[35]||(i[35]=e=>s.value[0]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(y,{value:"HighBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血5ML")])),_:1}),(0,o.bF)(y,{value:"ShortBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血3ML")])),_:1}),(0,o.bF)(y,{value:"Mini"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 迷你试管")])),_:1}),(0,o.bF)(y,{value:"MiniBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 阳普管")])),_:1}),(0,o.bF)(y,{value:"BulletTube1P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管1.5mL")])),_:1}),(0,o.bF)(y,{value:"BulletTube0P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管0.5mL")])),_:1})])),_:1},8,["value"])])),_:1})]),(0,o.Lk)("div",fe,[(0,o.bF)(T,{compact:"",class:"flex flex-row"},{default:(0,o.k6)((()=>[(0,o.bF)(h,{onClick:m},{default:(0,o.k6)((()=>[(0,o.eW)("盖试管帽,并将试管移动回试管架中")])),_:1}),(0,o.bF)(C,{class:"w-64",value:v.value[0],"onUpdate:value":i[36]||(i[36]=e=>v.value[0]=e)},{default:(0,o.k6)((()=>[(0,o.bF)(y,{value:"HighBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血5ML")])),_:1}),(0,o.bF)(y,{value:"ShortBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 全血3ML")])),_:1}),(0,o.bF)(y,{value:"Mini"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 迷你试管")])),_:1}),(0,o.bF)(y,{value:"MiniBlood"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 阳普管")])),_:1}),(0,o.bF)(y,{value:"BulletTube1P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管1.5mL")])),_:1}),(0,o.bF)(y,{value:"BulletTube0P5"},{default:(0,o.k6)((()=>[(0,o.eW)("试管类型 : 子弹头试管0.5mL")])),_:1})])),_:1},8,["value"])])),_:1})])])])),_:1}),(0,o.bF)(g,{span:8,class:"p-5 h-full"},{default:(0,o.k6)((()=>[(0,o.Lk)("div",be,(0,c.v_)(l.value),1)])),_:1})])),_:1})])}}};const _e=ke;var Fe=_e;const me=(0,t.aE)({history:(0,t.Bt)(),routes:[{name:"feeder",path:"/feeder",component:te},{name:"tube-pre-process",path:"/tube-pre-process",component:Fe}]});let ge=(0,u.Ef)(A);ge.use(me),ge.use(J.Ay),ge.mount("#app")}},l={};function a(u){var t=l[u];if(void 0!==t)return t.exports;var o=l[u]={exports:{}};return e[u].call(o.exports,o,o.exports,a),o.exports}a.m=e,function(){var e=[];a.O=function(l,u,t,o){if(!u){var n=1/0;for(i=0;i=o)&&Object.keys(a.O).every((function(e){return a.O[e](u[v])}))?u.splice(v--,1):(s=!1,o0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[u,t,o]}}(),function(){a.n=function(e){var l=e&&e.__esModule?function(){return e["default"]}:function(){return e};return a.d(l,{a:l}),l}}(),function(){a.d=function(e,l){for(var u in l)a.o(l,u)&&!a.o(e,u)&&Object.defineProperty(e,u,{enumerable:!0,get:l[u]})}}(),function(){a.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){a.o=function(e,l){return Object.prototype.hasOwnProperty.call(e,l)}}(),function(){a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){var e={524:0};a.O.j=function(l){return 0===e[l]};var l=function(l,u){var t,o,n=u[0],s=u[1],v=u[2],r=0;if(n.some((function(l){return 0!==e[l]}))){for(t in s)a.o(s,t)&&(a.m[t]=s[t]);if(v)var i=v(a)}for(l&&l(u);r\r\n 编辑\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import script from \"./ServiceConfigurationParamValueObjectEdit.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ServiceConfigurationParamValueObjectEdit.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./ServiceConfigurationParamValueEdit.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ServiceConfigurationParamValueEdit.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./ServiceConfigurationActionLog.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ServiceConfigurationActionLog.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./ServiceConfiguration.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ServiceConfiguration.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\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__","\n","import script from \"./TestFeeder.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TestFeeder.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\r\n","import script from \"./TestTubePreProcess.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TestTubePreProcess.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { createApp } from 'vue'\nimport { createWebHashHistory, createRouter } from 'vue-router'\nimport App from './App.vue'\nimport Antd from 'ant-design-vue';\nimport TestFeeder from './components/TestFeeder.vue';\nimport TestTubePreProcess from './components/TestTubePreProcess.vue';\nimport './style/app.css'\n\nconst router = createRouter({\n history: createWebHashHistory(),\n routes : [\n {name:'feeder', path:'/feeder', component:TestFeeder},\n {name:'tube-pre-process', path:'/tube-pre-process', component:TestTubePreProcess},\n ],\n})\n\nlet app = createApp(App)\napp.use(router);\napp.use(Antd);\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};","// 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\t524: 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[\"webpackChunka8k_webui\"] = self[\"webpackChunka8k_webui\"] || [];\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, [504], function() { return __webpack_require__(5169); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["ApiClient","getClient","instance","call","name","params","response","axios","method","url","data","success","content","h","JSON","stringify","ecode","class","traceInfo","Modal","error","title","width","Error","_defineProperty","emits","__emit","props","__props","tableColumns","ref","key","dataIndex","tableData","tableExpandedKeys","isModalOpen","async","mounted","value","setupTableData","structClassName","console","log","path","baseTypes","client","structInfo","nodes","item","itemPath","structuredClone","push","node","type","info","includes","children","getValueFromJson","e","undefined","generateJsonData","obj","actionEditEable","actionOk","newValue","nextTick","onMounted","__exports__","param","actionValueUpdate","actionSaveRequest","actions","statuses","actionLog","statusRefreshTimer","handleServiceKeyChange","clearTimeout","serviceKey","actionServiceParamReload","serviceActionReload","refreshServiceStatusList","setTimeout","list","groupName","group","find","i","items","sort","a","b","length","localeCompare","actionServiceParamSave","values","actionServiceExecute","action","paramTypes","typeEnum","isExecuting","watch","onUnmounted","menuItems","activeServiceKey","isGuest","password","services","id","label","actionMenuItemClick","event","actionVerifyPassword","message","moveTubeToScanPosParams","moveTubeToScanPosAndScanParams","moveTubeToHeighJudgmentPosParams","moveTubeToPreProcessPosParams","moveTubeToExistJudgmentPosParams","serviceParams","isActionExecuting","actionServiceParamsReload","res","val","actionServiceParamsSave","options","executeServiceMethod","actionQuickExec","actionMoveTubeToScanPos","actionMoveTubeToScanPosAndScan","actionMoveTubeToHeighJudgmentPos","actionMoveTubeToPreProcessPos","actionMoveTubeToExistJudgmentPos","shakeTubeParams","takeTubeParams","takeTubeCapParams","pushBackTubeCapAndTakeBakTubeParams","actionShakeTube","actionTakeTube","actionTakeTubeCap","actionPushBackTubeCapAndTakeBakTube","router","createRouter","history","createWebHashHistory","routes","component","TestFeeder","TestTubePreProcess","app","createApp","App","use","Antd","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","definition","o","defineProperty","enumerable","get","g","globalThis","this","Function","window","prop","prototype","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file