物管理前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

6 lines
15 KiB

import{R as rt,P as at,F as lt,D as st}from"./DataFilter-DCz4UfJ7.js";import{_ as pt,a as ut,b as mt}from"./DataContent.vue_vue_type_script_setup_true_lang-B2W8cabq.js";import{u as L}from"./editor-ouq_SSv2.js";import{d as dt}from"./dataSource-L64D8pwk.js";import{u as ct}from"./helpers-CjmtV6uB.js";import{A as E}from"./Add-DB8IR810.js";import{T as ft}from"./noImage-CAsvTj-5.js";import{d as T,o as g,b as A,e as u,i as _t,c as h,s as P,t as vt,v as gt,f as I,w as e,q as t,J as m,u as r,F as W,r as yt,g as j,N as R,G as k,p as xt,K as bt,H as wt}from"./index-bVOhw2NF.js";import{B as O}from"./Button-B7xQqa1N.js";import{u as St,S as ht}from"./Scrollbar-Db3aKfvv.js";import{_ as H}from"./Select-BpXzRZdb.js";import{N as S}from"./Icon-C8ZbiYW7.js";import{_ as V}from"./Input-CFQSA5NN.js";import{_ as Ct}from"./FormItem-Cp_SJVoE.js";import{_ as kt}from"./Icon-B67kcA2X.js";import{_ as At}from"./Checkbox-DAl6jmZx.js";import{_ as q}from"./text-ClDrYWYc.js";import{_ as X}from"./Tooltip-C_3SXSAr.js";import{_ as $t}from"./Form-BZRGTIxb.js";import{_ as zt}from"./Modal-BHLPhdX-.js";import{a6 as Dt}from"./index-DPltKIjj.js";import{N as Pt}from"./DialogProvider-C9lbqAaT.js";import{_ as Ut}from"./Card-BhgyLFi8.js";import"./common-CalHcBJp.js";import{h as Vt}from"./index-C8mAaM2V.js";import{_ as jt}from"./Badge-DsyC0t2f.js";import"./index.vue_vue_type_script_setup_true_lang-Q6sPmgzz.js";import"./toggleHighContrast-BiNrcRtm.js";import"./editorWorker-UB-8rWUJ.js";import"./light-Cua7cqmF.js";import"./context-KbjOeZY_.js";import"./_initCloneObject-K-Y0ueWp.js";import"./_baseFor-mOzdmxoL.js";import"./light-1rdBHr5f.js";import"./dark-C1gkUD1h.js";import"./light-CVXL3bIM.js";import"./light-CE5Kvs_2.js";import"./light-B00G814I.js";import"./Scrollbar-DVK2lT9w.js";import"./fade-in.cssr-CltBGdAW.js";import"./use-rtl-CRyak7TN.js";import"./index-C-nsH7mf.js";import"./delegate-CI_DDEu_.js";import"./VResizeObserver-Tzd5ds8d.js";import"./get-precise-event-target-DhO46Lpt.js";import"./light-MOj96jwO.js";import"./light-BqIgj82_.js";import"./light-DhWiRhmf.js";import"./light-DU0-KyAX.js";import"./light-BIogERFh.js";import"./light-BJxzOxOf.js";import"./light-DGVaJDoA.js";import"./light-CbIbiWrk.js";import"./light-uWHRDFKR.js";import"./light-C52Zdmem.js";import"./light-DjE_cXZL.js";import"./light-rvBL92Ju.js";import"./light-DiXDfyIH.js";import"./_common-h0mJDxlK.js";import"./light-CUlEsFk3.js";import"./light-DD97CHyt.js";import"./light-DH15IGTV.js";import"./_common-D9N4yDJ1.js";import"./light-BKuBIbLH.js";import"./light-DiBdiU84.js";import"./_common-CtIASumb.js";import"./light-B52QuVq1.js";import"./light-D6zEcTvP.js";import"./light-Blmb_y9V.js";import"./light-DWk6YUKo.js";import"./format-length-B-p6aW7q.js";import"./resolve-slot-Dzko3qih.js";import"./use-houdini-BLG-ZGPq.js";import"./is-browser-DqcmxZSF.js";import"./cloneDeep-C6NKQlMO.js";import"./_getTag-BJ2nhJXz.js";import"./http-D9Asdp-z.js";import"./use-compitable-DMmt6sIs.js";import"./Loading-CByrJVhO.js";import"./icon-switch.cssr-BCTOxvoq.js";import"./use-is-mounted-wlrzLfZo.js";import"./use-style-qLHIyj3D.js";import"./browser-DLIXj5nt.js";import"./use-memo-BgHp9YyU.js";import"./use-form-item-CNgNT5jP.js";import"./color-to-class-B0iQgAn2.js";import"./call-f2ri57Kd.js";import"./use-locale-CFjRjALw.js";import"./index-Dn5RNViO.js";import"./use-merged-state-CzrzZJbg.js";import"./Icon-Ck7Ij_E6.js";import"./upperFirst-Bq7Kgunw.js";import"./toString-eibgRg41.js";import"./Forward-B4Y9XmRi.js";import"./Popover-DLIip8wF.js";import"./fade-in-scale-up.cssr-CTZmXn_X.js";import"./use-false-until-truthy-BNJRTcsy.js";import"./_baseEach-BwxcRWC6.js";import"./get-BuNGRF3A.js";import"./clickoutside-CCtiUDaG.js";import"./Follower-DJGS5Fnl.js";import"./cssr-CS9sbUmO.js";import"./utils-BKyMmInE.js";import"./index-C9vhMoZJ.js";import"./flatten-7z_8MaI9.js";import"./index-L98eAIry.js";import"./keep-B1eBS8j0.js";import"./keysOf-HiGXOwLp.js";import"./happens-in-CM8LO42l.js";import"./omit-DbnPTcif.js";import"./context-CNWzaUOd.js";import"./render-BxFg9-7m.js";import"./Suffix-BqBRFVnL.js";import"./light-BOD3MGQo.js";import"./Close-D6FODkWY.js";import"./FocusDetector-DcygY9Tk.js";import"./index-DsSU6HIH.js";import"./RadioGroup-5BphoArv.js";import"./get-slot-Bk_rJcZu.js";import"./ChevronRight-DjG_plXV.js";import"./use-keyboard-D_rBVq9u.js";import"./download-C2161hUv.js";import"./context-ELq7iLHP.js";import"./Warning-WCOp46KX.js";import"./index-xXhpGjLP.js";import"./vue-repl-jaFwbjhK.js";import"./codemirror-editor-CFwWTn8s.js";import"./GridRect-B5GXph4N.js";import"./style-D4sssT3k.js";import"./upload-DeP_4dQB.js";import"./Tree-CzaEbcLe.js";import"./fade-in-height-expand.cssr-Bx380MfO.js";import"./Image-CAe7wDsQ.js";import"./light-jvBBpnb8.js";import"./_createCompounder-D746aL6M.js";import"./Add-CgLKrdZy.js";import"./Progress-BpvQ1C2a.js";import"./Switch-DWvSWYoO.js";import"./light-CdWU_bnm.js";import"./Slider-C2GzLvgH.js";import"./light-CnxA-8p4.js";import"./CollapseItem-CnymMNIl.js";import"./dayjs.min-tKPc2Ebd.js";import"./ButtonGroup-BHJkQOUq.js";import"./InputNumber-BUVD-lKD.js";import"./light-BULoejUF.js";import"./dashboard-YyjCL4ge.js";import"./ColorPicker-PXaqdINa.js";import"./InputGroup-CLUcMivF.js";import"./Divider-aR5nu9et.js";import"./Search-Bp-OOsbn.js";import"./Grid-C11Tqhv0.js";import"./componentList-BKZexaIE.js";import"./ConfigProvider-DuxYoVXL.js";import"./light-D7R7aswA.js";import"./route-block-B_A1xBdJ.js";import"./light-BklEEixl.js";const Ft={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},Nt=u("path",{d:"M256 56C145.72 56 56 145.72 56 256s89.72 200 200 200s200-89.72 200-200S366.28 56 256 56zm0 82a26 26 0 1 1-26 26a26 26 0 0 1 26-26zm48 226h-88a16 16 0 0 1 0-32h28v-88h-16a16 16 0 0 1 0-32h32a16 16 0 0 1 16 16v104h28a16 16 0 0 1 0 32z",fill:"currentColor"},null,-1),Bt=[Nt],It=T({name:"InformationCircle",render:function(f,y){return g(),A("svg",Ft,Bt)}}),Rt={class:"flex flex-col"},Tt={class:"mb-2 w-[750px] flex items-center justify-between"},Mt={class:"mr-2 flex flex-1 items-center justify-start"},Et={class:"flex flex-1 items-center justify-end"},Ht={class:"w-[35px] flex items-center justify-end"},Lt={class:"relative flex items-center"},Ot={class:"flex justify-end"},qt=T({__name:"SuperApiConfigDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(F,{emit:f}){const y=F,U=f,x=_t("thingApiDTOList"),v=h({get(){return y.modelValue},set(n){U("update:modelValue",n)}}),b=L(),s=h({get:()=>b.current,set:n=>{b.current=n}}),o=h({get(){return s.value.dataSource.SuperApiConfig},set(n){s.value.dataSource.SuperApiConfig=n}}),$=h(()=>{const n=x.value.find(a=>a.id===o.value.dataSource);return n.attrCondition?JSON.parse(n.attrCondition).attrs.keys||[]:[]}),d=h({get(){return o.value.deviceAttrs},set(n){o.value.deviceAttrs=n}}),w=P([]);function z(){d.value.push({num:"",device:"",dataPoint:""})}function D(n,i){d.value.splice(i,1)}function _(){o.value.calcRules.push({formular:"",resultAttr:""})}function Y(){const n=[],i=[];d.value.forEach(a=>{a.device&&a.dataPoint&&(n.push(a.device),i.push(a.dataPoint))}),o.value.devices=n,o.value.dataPoint=i,o.value.type==="history"&&(s.value.dataSource.id=`api-${ct()}`,s.value.dataSource.envConfig.service=window.location.origin,s.value.dataSource.api.url="/thing/v2/api/telemetryById",s.value.dataSource.api.params.push({k:"id",value:o.value.dataSource,result:"passed"}),s.value.dataSource.api.method="GET"),v.value=!1}const Z=St();async function K(){const n=await dt.getSuperApiInfo({id:o.value.dataSource});if(n.code!==0){Z.warning(n.msg);return}return n.data&&n.data.result&&n.data.result.info}const M=P(!1),N=P([]);async function J(n){if(!n){N.value=[],d.value=[];return}M.value=!0;const i=w.value.find(p=>p.id===n);if(i){const{type:p}=JSON.parse(i.timeCondition);o.value.type=p==="last"?"socket":"history",s.value.dataSource.filterFunction=p==="last"?"":"return result"}const a=await K();a&&(N.value=Object.keys(a).map(p=>{const l=a[p].attrs;return{...{...a[p],attrs:Object.keys(l).map(C=>$.value.includes(l[C].id)?{...l[C],label:`${l[C].name} - ${l[C].code}`}:null).filter(Boolean)},label:`${a[p].entityName} - ${a[p].entityCode}`}}),M.value=!1)}const tt=[{title:"序号",key:"num",width:150,render(n,i){return k(V,{value:n.num,onUpdateValue(a){d.value[i].num=a}})}},{title:"设备",key:"device",render(n,i){return k(H,{value:n.device,options:N.value,valueField:"entityId",style:"width: 220px",onUpdateValue(a){d.value[i].device=a}})}},{title:"数据点",key:"dataPoint",render(n,i){var p;const a=(p=N.value.find(l=>l.entityId===n.device))==null?void 0:p.attrs;return k(H,{value:n.dataPoint,options:a,valueField:"code",style:"width: 220px",onUpdateValue(l){d.value[i].dataPoint=l}})}},{title:"操作",key:"actions",width:150,render(n,i){return[k(S,{size:"18",color:"#1890ff",class:"mr-2 cursor-pointer",onClick:()=>z()},{default:()=>k(E)}),k(S,{size:"18",color:"#1890ff",class:"cursor-pointer",onClick:()=>D(n,i)},{default:()=>k(rt)})]}}];return vt(x,n=>{n&&n.length>0&&(w.value=n)},{immediate:!0}),gt(()=>{J(o.value.dataSource)}),(n,i)=>{const a=Ct,p=kt,l=O,G=At,C=q,et=X,ot=$t,it=ht,nt=zt;return g(),I(nt,{show:r(v),"onUpdate:show":i[4]||(i[4]=c=>R(v)?v.value=c:null),"show-icon":!1,title:"绑定数据点",draggable:"",preset:"dialog","title-style":"text=align: center",closable:!1,style:{width:"950px",height:"800px"},class:"api-modal bg-[#E5E6EB] dark:bg-[rgb(24,24,28)]"},{action:e(()=>[u("div",Ot,[t(l,{type:"default",class:"mr-2",onClick:i[3]||(i[3]=c=>v.value=!1)},{default:e(()=>i[11]||(i[11]=[m(" 取消 ")])),_:1}),t(l,{type:"primary","text-color":"#ffffff",onClick:Y},{default:e(()=>i[12]||(i[12]=[m(" 确认 ")])),_:1})])]),default:e(()=>[t(it,{style:{height:"670px"}},{default:e(()=>[r(o)?(g(),I(ot,{key:0,"label-width":100,"label-placement":"left"},{default:e(()=>[t(a,{label:"数据源"},{default:e(()=>[t(r(H),{value:r(o).dataSource,"onUpdate:value":[i[0]||(i[0]=c=>r(o).dataSource=c),J],placeholder:"请选择数据源",options:r(w),clearable:"",filterable:"","label-field":"name","value-field":"id",style:{width:"200px"}},null,8,["value","options"])]),_:1}),t(a,{label:"设备属性"},{default:e(()=>[t(p,{size:"small",loading:r(M),columns:tt,data:r(d)},null,8,["loading","data"])]),_:1}),t(a,{label:" "},{default:e(()=>[t(l,{type:"primary",class:"mt-2","text-color":"#ffffff",onClick:z},{icon:e(()=>[t(r(S),{size:"14"},{default:e(()=>[t(r(E))]),_:1})]),default:e(()=>[i[5]||(i[5]=m(" 新增 "))]),_:1})]),_:1}),t(a,{label:"数据处理"},{default:e(()=>[t(G,{checked:r(o).enableDataHandle,"onUpdate:checked":i[1]||(i[1]=c=>r(o).enableDataHandle=c)},null,8,["checked"])]),_:1}),r(o).enableDataHandle?(g(),I(a,{key:0,label:"计算规则"},{default:e(()=>[u("div",Rt,[(g(!0),A(W,null,yt(r(o).calcRules,(c,Q)=>(g(),A("div",{key:Q,class:"w-full"},[u("div",Tt,[u("div",Mt,[t(C,{class:"w-[100px]"},{default:e(()=>i[6]||(i[6]=[m(" 计算公式: ")])),_:1}),t(r(V),{value:c.formular,"onUpdate:value":B=>c.formular=B},null,8,["value","onUpdate:value"])]),u("div",Et,[t(C,{class:"w-[150px]"},{default:e(()=>i[7]||(i[7]=[m(" 计算结果属性: ")])),_:1}),t(r(V),{value:c.resultAttr,"onUpdate:value":B=>c.resultAttr=B},null,8,["value","onUpdate:value"])]),u("div",Ht,[t(l,{text:"",size:"small",onClick:B=>r(o).calcRules.splice(Q,1)},{icon:e(()=>[t(r(S),{size:"14",color:"#1890ff"},{default:e(()=>[t(r(ft))]),_:1})]),_:2},1032,["onClick"])])])]))),128))])]),_:1})):j("",!0),r(o).enableDataHandle?(g(),I(a,{key:1,label:" "},{default:e(()=>[t(l,{type:"primary",onClick:_},{icon:e(()=>[t(r(S),{size:"14"},{default:e(()=>[t(r(E))]),_:1})]),default:e(()=>[i[8]||(i[8]=m(" 新增 "))]),_:1})]),_:1})):j("",!0),t(a,{label:"唯一数据点"},{label:e(()=>[u("div",Lt,[t(et,{width:350},{trigger:e(()=>[u("div",null,[i[9]||(i[9]=m(" 唯一数据点 ")),t(r(S),{size:"16",class:"absolute right-0 top-0"},{default:e(()=>[t(r(It))]),_:1})])]),default:e(()=>[i[10]||(i[10]=m(" 场景:当有数据处理,并且只需绑定一个数据点作为 【实时/立即/最新数据】时,请填写所需数据点的序号或计算结果属性。 "))]),_:1})])]),default:e(()=>[t(r(V),{value:r(o).uniquePoint,"onUpdate:value":i[2]||(i[2]=c=>r(o).uniquePoint=c)},null,8,["value"])]),_:1})]),_:1})):j("",!0)]),_:1})]),_:1},8,["show"])}}}),Jt={class:"mb-2 w-full flex justify-between"},Gt={class:"flex-auto"},Qt={class:"w-full flex justify-between"},Wt={class:"flex-auto"},Xt={key:0,class:"config-mask animate__animated animate__fadeIn absolute bottom-0 right-0 h-full w-full flex items-center justify-center bg-[rgba(225,225,225,0.68)] dark:bg-[#232324e0]"},Yt=T({__name:"SuperApiConfig",setup(F){const f=L(),y=h(()=>f.current.dataSource.id),U={history:"历史数据",socket:"实时数据","":"未知类型"},x=h(()=>f.current.dataSource.SuperApiConfig?U[f.current.dataSource.SuperApiConfig.type||""]:""),v=P(!1),b=P(!1);return(s,o)=>{const $=q,d=S,w=V,z=O,D=Ut;return g(),A(W,null,[t(D,{class:"mb-2 bg-transparent",onMouseenter:o[3]||(o[3]=_=>v.value=!0),onMouseleave:o[4]||(o[4]=_=>v.value=!1)},{default:e(()=>[u("div",Jt,[t($,{style:{flex:"0 0 70px"}},{default:e(()=>o[6]||(o[6]=[m(" 请求名称 ")])),_:1}),u("div",Gt,[t(w,{value:r(y),"onUpdate:value":o[0]||(o[0]=_=>R(y)?y.value=_:null),readonly:"",size:"small",placeholder:"暂无"},{prefix:e(()=>[t(d,{size:"14"},{default:e(()=>[t(r(Dt))]),_:1})]),_:1},8,["value"])])]),u("div",Qt,[t($,{style:{flex:"0 0 70px"}},{default:e(()=>o[7]||(o[7]=[m(" 请求类型 ")])),_:1}),u("div",Wt,[t(w,{value:r(x),"onUpdate:value":o[1]||(o[1]=_=>R(x)?x.value=_:null),readonly:"",size:"small",placeholder:"暂无"},{prefix:e(()=>[t(d,{size:"14"},{default:e(()=>[t(r(at))]),_:1})]),_:1},8,["value"])])]),r(v)?(g(),A("div",Xt,[t(z,{secondary:"",type:"info",size:"small",onClick:o[2]||(o[2]=_=>b.value=!0)},{default:e(()=>o[8]||(o[8]=[m(" 编辑配置 ")])),_:1})])):j("",!0)]),_:1}),t(r(Pt),null,{default:e(()=>[t(qt,{modelValue:r(b),"onUpdate:modelValue":o[5]||(o[5]=_=>R(b)?b.value=_:null)},null,8,["modelValue"])]),_:1})],64)}}}),Zt=xt(Yt,[["__scopeId","data-v-b3f467cb"]]),Kt={class:"px-3 py-2"},te={key:0,class:"my-2 flex items-center justify-start"},ee={class:"flex-auto"},Zi=T({__name:"SuperApi",setup(F){const f=L(),y=h(()=>f.current.dataSource.SuperApiConfig?f.current.dataSource.SuperApiConfig.type:""),U=P(`默认读取 data 字段
建议返回数据格式:{
"code": 0,
"data": {},
...
}`),{intervalFn:x}=Vt();function v(){x({...wt(f.current.dataSource),filterFunction:f.current.dataSource.filterFunction},f.current,!0)}return(b,s)=>{const o=q,$=jt,d=X,w=S,z=O,D=ut,_=mt;return g(),A("div",Kt,[t(Zt),r(y)==="history"?(g(),A("div",te,[u("div",ee,[t(o,null,{default:e(()=>s[0]||(s[0]=[m(" 测试 ")])),_:1}),t(d,{width:150},{trigger:e(()=>[t($,{value:"?",max:15,color:"grey"})]),default:e(()=>[m(" "+bt(r(U)),1)]),_:1})]),t(z,{bordered:"",type:"primary",ghost:"",style:{flex:"0 0 80%"},onClick:v},{icon:e(()=>[t(w,{size:"14"},{default:e(()=>[t(r(lt))]),_:1})]),default:e(()=>[s[1]||(s[1]=m(" 发送请求 "))]),_:1})])):j("",!0),t(_,{size:"medium"},{default:e(()=>[t(D,{type:"warning",title:"数据过滤"},{default:e(()=>[t(st)]),_:1}),t(D,{type:"success",title:"数据内容"},{default:e(()=>[t(pt)]),_:1})]),_:1})])}}});export{Zi as default};