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.
1 lines
8.2 KiB
1 lines
8.2 KiB
import{U as Z}from"./upload-8b1433c4.js";import{M as V,I as x,C as ee,_ as ae}from"./http-02c81b8c.js";import{c as q}from"./componentGroup-1abd3da5.js";import{c as j}from"./componentList-d97405f6.js";import{_ as ue,u as oe}from"./index.vue_vue_type_style_index_0_lang-bef01711.js";import{d as te,l as ne,r as p,A as se,V as le,w as re,n as ie,g as a,N as T,D as A,E as H,F as M,G as s,K as N,H as U,L as pe}from"./index-3c234266.js";import{_ as me,B as de}from"./_plugin-vue_export-helper-a1ffee7e.js";import{_ as fe,c as ce,R as ge,b as Fe,F as ve}from"./PlusOutlined-920ae6ab.js";import{a as Ee,_ as Ce}from"./index-86127553.js";import{_ as ye}from"./index-dd686854.js";import"./collapseMotion-ccbb3149.js";const be=te({components:{Upload:Z,VueJSONEditor:ue},props:{showModal:{type:Boolean,default:!1},title:{type:String,default:"新增"}},emits:["showHideModal"],setup(e,{emit:u}){const F=ne({get(){return e.showModal},set(o){u("showHideModal",o)}}),g=p(null),G=()=>{F.value=!1},R=p([{value:"时间"},{value:"时序"},{value:"文字"},{value:"基础图形"}]),t=p({id:"",name:"",aliasName:"",image:"",imageType:"",sectionType:"",groupId:"",groupName:"",groupType:"",config:"",files:{jsPlugin:"",json:"",javascript:"",css:"",fakeData:""},isDefault:!1,isOperate:"0",isRemote:!1,remarks:""}),l=p([]),S=async()=>{const o=await q.getTypeList({queryType:1,type:"section"});if(o.code!==0)return T.warning(o.msg);l.value=o.data.map(r=>({label:r,value:r}))},f=p([]),v=o=>{const r=f.value.find(i=>i.businessType===o);r&&(t.value.groupId=r.id)},E=async(o,r)=>{var B,d;const i=await q.getGroupTypesByGroupName({name:o,type:"section"});if(i.code!==0)return T.warning(i.msg);f.value=i.data||[],t.value.groupType=r||((B=i.data[0])==null?void 0:B.businessType),v((d=i.data[0])==null?void 0:d.businessType)},C=o=>{E(o,"")},y=p({}),m=p(null),c=oe(),D=o=>{t.value.config=JSON.stringify(o)},b="production",h=p(b),_=se(),k=le(),n=()=>{t.value.isOperate!=="1"&&g.value.validate().then(o=>{const r=t.value.files.javascript.replace("type: 'custom-button-node'",`type: '${t.value.name}'`);t.value.files.javascript=r,t.value.isRemote=b!=="development",c.set(t.value),_.push({path:"/componentDesigner/index",query:{fromPage:"addOrUpdate",title:k.query.title}})}).catch(()=>{})};re(()=>e.showModal,o=>{if(o){const{id:r,name:i,aliasName:B,image:d,imageType:w,groupId:I,groupName:O,groupType:L,sectionType:P,isDefault:K,config:z,files:Q,isRemote:W,isOperate:X}=c.designerState;t.value={...t.value,id:r,name:i,aliasName:B,image:d,imageType:w,groupId:I,groupName:O,groupType:L,sectionType:P,isDefault:K,isOperate:X,config:z,files:Q,isRemote:W},setTimeout(()=>{d?(w==="svg"?m.value.imageUrl=`data:image/svg+xml;base64,${window.btoa(unescape(encodeURIComponent(d)))}`:m.value.imageUrl=d,m.value.imageType=w):m.value.imageUrl="";const Y=JSON.parse(c.getConfig||"{}");y.value=Y},500),S(),O&&E(O,L),r&&ie(()=>{g.value.clearValidate()})}else c.$reset()},{immediate:!0});const J=o=>{t.value.image=o.imageUrl,t.value.imageType=o.imageType},$=async()=>{const o=await(t.value.id?j.edit:j.save)({...t.value,isLocal:!1,isRemote:!0});if(o.code!==0)return T.warning(o.msg);T.success("操作成功!"),_.push({path:"/scadaComponentList"})};return{visible:F,sectionTypeList:R,componentGroupList:l,componentGroupTypeList:f,groupChangeHandler:C,groupTypeChangeHandler:v,formState:t,submitForm:()=>{t.value.isOperate!=="1"&&g.value.validate().then(o=>{V.confirm({title:e.title==="新增"?"确定新增组件吗?":"确定要保存文件修改吗?",icon:"",okText:"确定",cancelText:"取消",content:a("div",{style:"color:red;"},e.title==="新增"?"":"修改后,原始文件会被覆盖,请确认"),onOk(){t.value,$(),F.value=!1},onCancel(){},class:"test"})}).catch(()=>{})},onConfigChange:D,fileChangedHandler:J,amisJsonData:y,designComponent:n,uploader:m,cancelModal:G,componentForm:g,modeRef:h}}}),_e={class:"flex justify-start items-center"},Be={class:"display-flex justify-start"},Te={class:"h-100"};function Se(e,u,F,g,G,R){const t=x,l=fe,S=ye,f=ce,v=ee,E=A("Upload"),C=ge,y=Fe,m=A("VueJSONEditor"),c=ae,D=de,b=Ee,h=Ce,_=ve,k=V;return H(),M(k,{open:e.visible,"onUpdate:open":u[8]||(u[8]=n=>e.visible=n),title:e.title,"cancel-text":"取消","ok-text":"确认",width:"1000px",onOk:e.submitForm,onCancel:e.cancelModal},{default:s(()=>[a(_,{ref:"componentForm",model:e.formState,name:"compGroup",autocomplete:"off","label-col":{span:3,offset:0}},{default:s(()=>[a(l,{label:"部件名",name:"name",rules:[{required:!0,message:"请输入部件名(英文),节点类型需与组件名一致!"}]},{default:s(()=>[a(t,{value:e.formState.name,"onUpdate:value":u[0]||(u[0]=n=>e.formState.name=n),placeholder:"请输入部件名(英文),节点类型需与组件名一致!",disabled:e.formState.isOperate==="1"},null,8,["value","disabled"])]),_:1}),a(l,{label:"部件别名",name:"aliasName",rules:[{required:!0,message:"请输入部件名(中文)!"}]},{default:s(()=>[a(t,{value:e.formState.aliasName,"onUpdate:value":u[1]||(u[1]=n=>e.formState.aliasName=n),placeholder:"请输入部件名(中文)!",disabled:e.formState.isOperate==="1"},null,8,["value","disabled"])]),_:1}),a(l,{label:"数据类型",name:"sectionType",rules:[{required:!0,message:"请输入部件名(中文)!"}]},{default:s(()=>[a(S,{value:e.formState.sectionType,"onUpdate:value":u[2]||(u[2]=n=>e.formState.sectionType=n),options:e.sectionTypeList,disabled:e.formState.isOperate==="1",placeholder:"请输入数据类型"},null,8,["value","options","disabled"])]),_:1}),a(l,{name:"groupName",label:"部件分组","has-feedback":"",rules:[{required:!0,message:"请选择部件分组!"}]},{default:s(()=>[a(f,{value:e.formState.groupName,"onUpdate:value":u[3]||(u[3]=n=>e.formState.groupName=n),style:{width:"100%"},placeholder:"选择部件分组",options:e.componentGroupList,"allow-clear":!0,disabled:e.formState.isOperate==="1","field-names":{label:"label",value:"value"},onChange:e.groupChangeHandler},null,8,["value","options","disabled","onChange"])]),_:1}),a(l,{name:"groupType",label:"组类型","has-feedback":"",rules:[{required:!0,message:"请选择组类型!"}]},{default:s(()=>[a(f,{value:e.formState.groupType,"onUpdate:value":u[4]||(u[4]=n=>e.formState.groupType=n),style:{width:"100%"},placeholder:"选择组类型",options:e.componentGroupTypeList,disabled:e.formState.isOperate==="1","allow-clear":!0,"field-names":{label:"businessType",value:"businessType"},onChange:e.groupTypeChangeHandler},null,8,["value","options","disabled","onChange"])]),_:1}),a(l,{name:"isDefault",label:"系统默认","has-feedback":"",rules:[{required:!1,message:"请选择是否默认!"}]},{default:s(()=>[N("div",_e,[a(v,{checked:e.formState.isDefault,"onUpdate:checked":u[5]||(u[5]=n=>e.formState.isDefault=n),disabled:e.formState.isOperate==="1"},null,8,["checked","disabled"])])]),_:1}),a(l,{name:"icon",label:"缩略图"},{default:s(()=>[a(E,{ref:"uploader",onFileChanged:e.fileChangedHandler},null,8,["onFileChanged"])]),_:1}),e.modeRef==="development"?(H(),M(l,{key:0,name:"isRemote",label:"是否远程组件"},{default:s(()=>[N("div",Be,[a(y,{value:e.formState.isRemote,"onUpdate:value":u[6]||(u[6]=n=>e.formState.isRemote=n),name:"radioGroup",disabled:e.formState.isOperate==="1"},{default:s(()=>[a(C,{value:!0},{default:s(()=>u[9]||(u[9]=[U(" 是 ")])),_:1}),a(C,{value:!1},{default:s(()=>u[10]||(u[10]=[U(" 否 ")])),_:1})]),_:1},8,["value","disabled"])])]),_:1})):pe("",!0),a(l,{label:"组件配置",name:"config",rules:[{required:!1,message:"请输入组件配置json!"}]},{default:s(()=>[N("div",Te,[a(m,{"json-data":e.amisJsonData,onEditorChanged:e.onConfigChange},null,8,["json-data","onEditorChanged"])])]),_:1}),a(l,{label:"备注",name:"remarks",rules:[{required:!1,message:"请输入组件备注!"}]},{default:s(()=>[a(c,{value:e.formState.remarks,"onUpdate:value":u[7]||(u[7]=n=>e.formState.remarks=n),placeholder:"请输入组件备注",rows:4},null,8,["value"])]),_:1}),a(l,{"wrapper-col":{span:20,offset:4}},{default:s(()=>[a(h,{gutter:24},{default:s(()=>[a(b,{span:12},{default:s(()=>[a(D,{type:"primary",class:"float-left",disabled:e.formState.isOperate==="1",onClick:e.designComponent},{default:s(()=>u[11]||(u[11]=[U(" 设计组件 ")])),_:1},8,["disabled","onClick"])]),_:1})]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},8,["open","title","onOk","onCancel"])}const Ae=me(be,[["render",Se]]);export{Ae as default};
|