@jecloud/func
Version:
JECloud 功能库
1 lines • 2.77 kB
JavaScript
import{createTextVNode as e,mergeProps as t,createVNode as n}from"vue";import{reactive as o}from"vue";import{Form as a,Input as r,Modal as u,Radio as l}from"@jecloud/ui";import{dateFormat as i,encode as c}from"@jecloud/utils";import{loadExportExcelKey as f,exportGridExcel as d}from"../../../../data/api/function";export function showExportForm(m){var p=m.$func,s=[{required:!0,message:"该输入项为必填项"},{max:40,message:"不能大于40个字符"},{pattern:'^[^\\\\/*?:"\'<>|"]+$',message:"不能输入非法字符"}],v=p.getFuncData().info,g=v.tableCode,N=v.funcId,h=v.funcCode,y=v.funcName,x=v.pkCode,b=v.productCode,T=p.getFuncGrid(),E=o({title:y,fileName:y+"_"+i(new Date,"YYYY-MM-DD")+".xls",exportType:"NOWPAGE"}),L=o({title:s,fileName:s}),A=a.useForm(E,L),I=A.validate,C=A.validateInfos,G=n(a,{model:E,layout:"vertical"},{default:function(){return[n(a.Item,t({colon:!1,label:"标题",name:"title"},C.title),{default:function(){return[n(r,{value:E.title,"onUpdate:value":function(e){return E.title=e}},null)]}}),n(a.Item,t({colon:!1,label:"文件名",name:"fileName"},C.fileName),{default:function(){return[n(r,{value:E.fileName,"onUpdate:value":function(e){return E.fileName=e}},null)]}}),n(a.Item,{colon:!1,label:"数据设定",name:"exportType"},{default:function(){return[n(l.Group,{value:E.exportType,"onUpdate:value":function(e){return E.exportType=e},name:"exportType"},{default:function(){return[n(l,{value:"NOWPAGE"},{default:function(){return[e("单前页")]}}),n(l,{value:"SELECTION"},{default:function(){return[e("选择数据")]}}),n(l,{value:"ALL"},{default:function(){return[e("全部")]}})]}})]}})]}});u.dialog({title:"导出设定",width:460,content:function(){return G},buttonAlign:"center",okButton:{closable:!1,handler:function(e){var t=e.$modal,n=e.button;n.loading=!0,I().then((function(){O({$modal:t,button:n})})).catch((function(e){n.loading=!1}))}}});var O=function(e){var t=e.$modal,n=e.button,o={title:E.title,fileName:E.fileName,tableCode:g,funcCode:h,funcId:N,styleType:"GRID",j_query:[]},a=[];if("NOWPAGE"==E.exportType)T.store.data.forEach((function(e){a.push(e[x])}));else if("SELECTION"==E.exportType){T.getSelectedRecords().forEach((function(e){a.push(e[x])}))}if(!(a.length>0||"ALL"==E.exportType))return u.alert("没有可导出的数据!","warning"),void(n.loading=!1);"ALL"!=E.exportType&&o.j_query.push({code:x,type:"in",value:a,cn:"and"}),f({params:{data:c(o)}}).then((function(e){d({params:{key:e},pd:b}).then((function(e){var o=URL.createObjectURL(e),a=document.createElement("a");a.setAttribute("href",o),a.setAttribute("download",E.fileName),a.click(),n.loading=!1,t.close()})).catch((function(e){n.loading=!1,u.alert(e.message,"error")}))})).catch((function(e){n.loading=!1,u.alert(e.message,"error")}))}}