import {getPrintTemplate} from '@/api/DesignForm/requestapi' import {fieldTree,PageConfig} from './printHtmlRender.vue' import printHtmlRender from './printHtmlRender.vue' import {printWithSmartPagination} from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/printHtmlDom.js" import {gainRunTaskFlow} from "@/api/DesignForm/requestapi"; const printRenderTree: Ref = ref([]); export const printHtmlPage = async (pformid:string,pappkey:string,pversionid:string,pformkey:string,row: any) => { let data:any[]=[] let _pageConfig:PageConfig let title:string="表单"; let flowlist:any[]=[] if (row.flowIsOpens==1){ let sendInfo = { id:row.runFlowId } await gainRunTaskFlow(sendInfo) .then((resp:any) =>{ console.log("获取流程--werwerwerwer--->",resp.data) flowlist=resp.data.flowList }) } await getPrintTemplate({"versionid":pversionid,"formkey":pappkey}).then(resp=>{ title=resp.data.title if(resp.data.formtemplatejson!=""){ data=JSON.parse(resp.data.formtemplatejson) }else{ alert("请先创建打印模板!") return } if(resp.data.pageconfigjson!=""){ _pageConfig=JSON.parse(resp.data.pageconfigjson) if(_pageConfig.founder!=""){ _pageConfig.founder=row[_pageConfig.founder] } if(_pageConfig.founderTime!=""){ _pageConfig.founderTime=row[_pageConfig.founderTime] } if(_pageConfig.deptOrg!=""){ _pageConfig.deptOrg=row[_pageConfig.deptOrg] } _pageConfig.masters_key=row.masters_key } }) let qrstr=`https://wab.hxgk.group/#/form_table/taskListPage?id=${pformid}&key=${pappkey}& formid=${pversionid}&formKey=${pformkey}&qrDetailId=${row.id}` data.forEach(node=>{ deepLoopForm(node,row) }) printRenderTree.value=data ElMessageBox({ message: () => h('div',{style:{ width:'1200px',display:'flex','flex-direction':'column'}},[ h(ElButton, { type:"primary", style: "margin:10px 10px 5px auto;", onClick: () => { printWithSmartPagination("printPageAll",{ paperSize: _pageConfig.pagesize, landscape: _pageConfig.horizontal=="htal"? true : false , //默认竖向 margin: 5, }); } },'打印表单'), h('div',{style:{ border: '1px solid black', width: 'fit-content', margin: '5px','align-self': 'center'}},[ h(printHtmlRender,{ name:title, fieldTree:printRenderTree.value, pageConfig:_pageConfig, flowList:flowlist, qrcode:qrstr, }) ]) ]), showConfirmButton:false, customStyle: { '--el-messagebox-width':'1300px',padding:'10px'}, }).then(() => { }) }; const deepLoopForm=(node:fieldTree, row: Record)=>{ if(Array.isArray(node)){ node.forEach(item=>{deepLoopForm(item,row)}) return } if(node.field!=""){ let rnode:Object; if (row.hasOwnProperty(node.field!)){// 有这个字段 if (node.type=="table" || node.type=="tabs"){ node.data=row[node.field!] }else{ node.field=row[node.field!] } } } }