CgreportModal-8a84aae5-D8hdwPuR.js 12 KB

1
  1. import{d as de,f as V,r as M,u as g,e as se,ag as w,aB as L,ar as F,aE as ue,aD as h,k as y,at as C,G as _}from"./vue-vendor-Be68asQ6.js";import{B as pe}from"./index-CETWS1o0.js";import"./index-D68l__AG.js";import{useJvxeMethod as ce}from"./useJvxeMethods-Bm6rYcfH.js";import{co as me,j as b,u as A,bB as fe,bv as n,ac as ge}from"./index-BFfnEkVs.js";import{a as he}from"./user.api-BMRcwGEd.js";import{u as ye}from"./useForm-kcRIHoe0.js";import{B as be}from"./BasicForm-Cv-dsB-e.js";import"./BasicModal-D4gc2R81.js";import"./antd-vue-vendor-DcqS7Wvq.js";import"./useTimeout-Ca5eqGu-.js";import"./vxe-table-vendor-DHF2TRpV.js";import"./useWindowSizeFn-BTSGGcie.js";import"./index-BZ_MXCtW.js";import"./index-BIPzXG41.js";import"./index-CXEQnmRq.js";import"./useIntersectionObserver-Bl62RIZ4.js";import"./componentMap-BUTAcOmo.js";import"./useFormItem-CtGMPcLp.js";import"./download-CjoX0_mR.js";import"./base64Conver-24EVOS6V.js";import"./index-D1703ozz.js";import"./index-Bi7PIj53.js";import"./useCountdown-B7iR27pS.js";import"./useFormItemSingle-nLM0QlcI.js";import"./JSelectUser-DCwPqRxp.js";import"./props-BPxWJPuD.js";import"./JSelectBiz-Be8KsC5j.js";import"./JAddInput-BBXQvvpq.js";import"./areaDataUtil-Cik-Rc_P.js";import"./index-BOEzG86y.js";import"./index-BNFwynfr.js";import"./bem-BvvqSl-N.js";import"./props-Cw7AfxGV.js";import"./useContextMenu-BDwmjIwb.js";import"./depart.api-CDwTvdwQ.js";import"./JSelectDept-DT6g7V5M.js";import"./JPopup-DKJW27Yk.js";import"./JEllipsis-C04xKxcI.js";import"./JUpload-cB_Qj2H2.js";import"./index-iuayQczx.js";import"./index-DJQB4_Pr.js";import"./JAreaLinkage-BNOKwn5l.js";import"./JCodeEditor-CSivhUhT.js";import"./htmlmixed-DNSd26j0.js";import"./vue-DbzutmLn.js";/* empty css */import"./EasyCronInput-wCv2YMHn.js";import"./vxeUtils-CRiZfirF.js";var xe=Object.defineProperty,ve=Object.defineProperties,Se=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,ke=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable,J=(t,l,a)=>l in t?xe(t,l,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[l]=a,z=(t,l)=>{for(var a in l||(l={}))ke.call(l,a)&&J(t,a,l[a]);if(D)for(var a of D(l))we.call(l,a)&&J(t,a,l[a]);return t},Ce=(t,l)=>ve(t,Se(l)),R=(t,l,a)=>new Promise((x,c)=>{var f=u=>{try{s(a.next(u))}catch(S){c(S)}},v=u=>{try{s(a.throw(u))}catch(S){c(S)}},s=u=>u.done?x(u.value):Promise.resolve(u.value).then(f,v);s((a=a.apply(t,l)).next())});const{createConfirm:Ie}=A(),Pe="/online/cgreport/param/listByHeadId",Ve="/online/cgreport/item/listByHeadId",Lt=t=>b.get({url:"/online/cgreport/head/list",params:t}),Ft=(t,l)=>b.delete({url:"/online/cgreport/head/delete",params:t},{joinParamsToUrl:!0}).then(()=>{l()}),Rt=(t,l)=>{Ie({title:"确认删除",content:"是否删除选中数据",okText:"确认",cancelText:"取消",iconType:"warning",onOk:()=>b.delete({url:"/online/cgreport/head/deleteBatch",data:t},{joinParamsToUrl:!0}).then(()=>{l()})})},_e=(t,l)=>l?b.put({url:"/online/cgreport/head/editAll",params:t}):b.post({url:"/online/cgreport/head/add",params:t}),Wt=t=>b.get({url:"/online/cgreport/api/getParamsInfo/"+t}),Ne=()=>b.get({url:"/sys/dataSource/options"}),$e=t=>b.get({url:"/online/cgreport/head/parseSql?"+t}),qe=fe(),jt=[{title:"报表名字",align:"center",dataIndex:"name",width:120},{title:"报表编码",align:"center",dataIndex:"code",width:120},{title:"报表SQL",align:"center",dataIndex:"cgrSql",width:360},{title:"数据源",align:"center",dataIndex:"dbSource",customRender:({text:t,record:l})=>l.dbSource_dictText?l.dbSource_dictText:t,width:120},{title:"创建时间",align:"center",dataIndex:"createTime",width:120}],Mt=[{label:"报表名称",field:"name",component:"JInput"},{label:"报表编码",field:"code",component:"JInput"}],Be=/^[a-z|A-Z][a-z|A-Z|\d|_|-]{0,}$/,Te=[{label:"",field:"id",component:"Input",show:!1},{label:"报表编码",field:"code",component:"Input",colProps:{sm:24,xs:24,md:12,lg:8,xl:8,xxl:8},dynamicRules:({values:t,model:l})=>[{required:!0,validator:(a,x)=>new Promise((c,f)=>{if(!x)return f("请输入报表编码!");if(!Be.test(x))return f("编码必须以字母开头,可包含数字、下划线、横杠!");let v={tableName:"onl_cgreport_head",fieldName:"code",fieldVal:x,dataId:l.id};he(v).then(s=>{s.success?c():f("报表编码已存在!")}).catch(s=>{f(s.message||"校验失败")})})}]},{label:"报表名字",field:"name",component:"Input",colProps:{sm:24,xs:24,md:12,lg:8,xl:8,xxl:8},dynamicRules:()=>[{required:!0,message:"请输入报表名字!"}]},{label:"动态数据源",field:"dbSource",colProps:{sm:24,xs:24,md:12,lg:8,xl:8,xxl:8},component:"ApiSelect",rules:[{required:qe.sysSafeMode,message:"请选择数据源!"}],componentProps:{api:Ne}},{label:"报表SQL",field:"cgrSql",component:"JCodeEditor",rules:[{required:!0,message:"请填写报表SQL"}],componentProps:{height:"200px",fullScreen:!0},colProps:{sm:24,xs:24,md:18,lg:16,xl:16,xxl:16}},{label:" ",field:"analyseButton",component:"Input",slot:"analyseButton",colProps:{xs:24,sm:24,md:6,lg:8,xl:8,xxl:8},itemProps:{labelCol:{xs:1,sm:1},wrapperCol:{xs:23,sm:23},colon:!1}}],Oe=[{title:"参数字段",key:"paramName",type:n.input,width:"200px",placeholder:"请输入${title}",defaultValue:"",validateRules:[{required:!0,message:"${title}不能为空"}]},{title:"参数文本",key:"paramTxt",type:n.input,width:"200px",placeholder:"请输入${title}",defaultValue:"",validateRules:[{required:!0,message:"${title}不能为空"}]},{title:"参数默认值",key:"paramValue",type:n.input,width:"200px",placeholder:"请输入${title}",defaultValue:""}],Le=[{title:"字段名字",key:"fieldName",type:n.input,minWidth:"150px",placeholder:"请输入${title}",defaultValue:"",validateRules:[{required:!0,message:"${title}不能为空"}]},{title:"字段文本",key:"fieldTxt",type:n.input,minWidth:"150px",placeholder:"请输入${title}",defaultValue:"",validateRules:[{required:!0,message:"${title}不能为空"}]},{title:"字段宽度",key:"fieldWidth",type:n.input,minWidth:"100px",defaultValue:""},{title:"字段类型",key:"fieldType",minWidth:"150px",placeholder:"请输入${title}",defaultValue:"",validateRules:[{required:!0,message:"${title}不能为空"}],type:n.select,options:[{title:"数值类型",value:"Integer"},{title:"字符类型",value:"String"},{title:"日期类型",value:"Date"},{title:"时间类型",value:"Datetime"},{title:"长整型",value:"Long"},{title:"图片类型",value:"Image"}]},{title:"是否显示",key:"isShow",minWidth:"80px",align:"center",type:n.checkbox,customValue:[1,0],defaultChecked:!0},{title:"字段href",key:"fieldHref",type:n.input,minWidth:"150px",placeholder:"请输入${title}",defaultValue:""},{title:"查询模式",key:"searchMode",type:n.select,minWidth:"150px",placeholder:"请选择${title}",options:[{title:"单条件查询",value:"single"},{title:"范围查询",value:"group"}]},{title:"取值表达式",key:"replaceVal",type:n.input,minWidth:"150px",placeholder:"请输入${title}",defaultValue:""},{title:"字典code",key:"dictCode",type:n.input,minWidth:"150px",placeholder:"请输入${title}",defaultValue:""},{title:"分组标题",key:"groupTitle",type:n.input,minWidth:"150px",placeholder:"请输入${title}",defaultValue:""},{title:"是否查询",key:"isSearch",type:n.checkbox,customValue:["1","0"],minWidth:"80px",align:"center",defaultChecked:!1},{title:"是否合计",align:"center",key:"isTotal",type:n.checkbox,customValue:["1","0"],minWidth:"80px",defaultChecked:!1}],Fe={style:{flex:"1","text-align":"left"}},Re=de({__name:"CgreportModal",emits:["register","success"],setup(t,{emit:l}){const{createMessage:a}=A(),x=l,c=V(!0),f=V(!0),v=V(["onlCgreportItem","onlCgreportParam"]),s=V("onlCgreportItem"),u=V(),S=V(),H={onlCgreportItem:S,onlCgreportParam:u},I=M({loading:!1,dataSource:[],columns:Oe}),P=M({loading:!1,dataSource:[],columns:Le}),[Q,{setProps:U,resetFields:E,setFieldsValue:G,validate:je,validateFields:K}]=ye({schemas:Te,showActionButtonGroup:!1,labelWidth:100,wrapperCol:null}),[Z,{setModalProps:N,closeModal:X}]=ge(e=>R(this,null,function*(){var r,i;yield re(),N({confirmLoading:!1,showCancelBtn:e==null?void 0:e.showFooter,showOkBtn:e==null?void 0:e.showFooter}),c.value=!!(e!=null&&e.isUpdate),g(c)&&(yield G(z({},e.record)),W(Pe,{headId:(r=e==null?void 0:e.record)==null?void 0:r.id},I),W(Ve,{headId:(i=e==null?void 0:e.record)==null?void 0:i.id},P)),U({disabled:!(e!=null&&e.showFooter)})})),[Y,ee,W,te]=ce(oe,ae,H,s,v),le=se(()=>g(c)?"编辑":"新增");function re(){return R(this,null,function*(){yield E(),s.value="onlCgreportItem",I.dataSource=[],P.dataSource=[]})}function ae(e){let r=Object.assign({},e.formValue);return Ce(z({},r),{onlCgreportParamList:e.tablesValue[1].tableData,onlCgreportItemList:e.tablesValue[0].tableData})}function oe(e){return R(this,null,function*(){try{N({confirmLoading:!0});let r=[],i=[],d={};Object.keys(e).map(o=>{o=="onlCgreportItemList"?i=e[o]:o=="onlCgreportParamList"?r=e[o]:d[o]=e[o]}),yield _e({head:d,params:r,items:i},c.value),X(),x("success")}finally{N({confirmLoading:!1})}})}function ie(){N({confirmLoading:!0}),K(["cgrSql","dbSource"]).then(e=>{let{cgrSql:r,dbSource:i}=e,d="sql="+encodeURIComponent(r);i&&(d+="&dbKey="+i),$e(d).then(o=>{if(o){a.success("解析成功");let{fields:k,params:p}=o,m=k.filter(q=>q.fieldName!="__row_number__"),B=S.value.getTableData(),$=j(B,m||[],"fieldName");$=$.sort((q,O)=>q.orderNum-O.orderNum),P.dataSource=$;let ne=u.value.getTableData(),T=j(ne,p||[],"paramName");T=T.sort((q,O)=>q.orderNum-O.orderNum),I.dataSource=T}})}).catch(()=>{}).finally(()=>{N({confirmLoading:!1})})}function j(e,r,i){if(e.length>0){let d=[],o=[],k=1;for(let p of r)for(let m of e)if(m[i]==p[i]){d.push(m),o.push(p[i]),m.orderNum>k&&(k=m.orderNum);break}for(let p of r)o.indexOf(p[i])<0&&(p.orderNum=++k,d.push(p));return d}else{let d=0;for(let o of r)o.orderNum||(o.orderNum=++d);return r}}return(e,r)=>{const i=w("a-icon"),d=w("a-popover"),o=w("a-button"),k=w("a-divider"),p=w("JVxeTable"),m=w("a-tab-pane"),B=w("a-tabs");return F(),L(g(pe),ue(e.$attrs,{onRegister:g(Z),title:le.value,width:1200,maskClosable:!1,defaultFullscreen:!0,confirmLoading:f.value,onOk:g(ee)}),{default:h(()=>[y(g(be),{onRegister:g(Q),ref_key:"formRef",ref:te},{analyseButton:h(()=>[C("div",Fe,[y(d,{title:"使用指南",trigger:"hover",style:{margin:"0 10px 0 6px"}},{content:h(()=>r[1]||(r[1]=[_(" 您可以键入“”作为一个参数,这里abc是参数的名称。例如:"),C("br",null,null,-1),_(" select * from table where id = ${abc}。"),C("br",null,null,-1),_(" select * from table where id like concat('%',${abc},'%')。(mysql模糊查询)"),C("br",null,null,-1),_(" select * from table where id like '%'||${abc}||'%'。(oracle模糊查询)"),C("br",null,null,-1),_(" select * from table where id like '%'+${abc}+'%'。(sqlserver模糊查询)"),C("br",null,null,-1),C("span",{style:{color:"red"}},"注:参数只支持动态报表,popup暂不支持",-1)])),default:h(()=>[y(i,{type:"question-circle"})]),_:1}),y(o,{style:{"margin-left":"10px"},type:"primary",onClick:ie},{default:h(()=>r[2]||(r[2]=[_("SQL解析")])),_:1})])]),_:1},8,["onRegister"]),y(k,{style:{margin:"1px 0"},class:"cust-divider"}),y(B,{activeKey:s.value,"onUpdate:activeKey":r[0]||(r[0]=$=>s.value=$),animated:"",onChange:g(Y)},{default:h(()=>[(F(),L(m,{tab:"动态报表配置明细",key:v.value[0],forceRender:!0},{default:h(()=>[y(p,{"keep-source":"",dragSort:"",resizable:"",ref_key:"onlCgreportItem",ref:S,loading:P.loading,columns:P.columns,dataSource:P.dataSource,height:390,rowNumber:!0,rowSelection:!0,dragSortFixed:"none",rowNumberFixed:"none",rowSelectionFixed:"none",toolbar:!0},null,8,["loading","columns","dataSource"])]),_:1})),(F(),L(m,{tab:"报表参数",key:v.value[1],forceRender:!0},{default:h(()=>[y(p,{"keep-source":"",resizable:"",dragSort:"",ref_key:"onlCgreportParam",ref:u,loading:I.loading,columns:I.columns,dataSource:I.dataSource,height:390,rowNumber:!0,rowSelection:!0,dragSortFixed:"none",rowNumberFixed:"none",rowSelectionFixed:"none",toolbar:!0},null,8,["loading","columns","dataSource"])]),_:1}))]),_:1},8,["activeKey","onChange"])]),_:1},16,["onRegister","title","confirmLoading","onOk"])}}}),We=me(Re,[["__scopeId","data-v-e89d83a0"]]),Dt=Object.freeze(Object.defineProperty({__proto__:null,default:We},Symbol.toStringTag,{value:"Module"}));export{We as C,Dt as a,Rt as b,jt as c,Ft as d,Wt as g,Lt as l,Mt as s};