|
|
|
@ -43,7 +43,10 @@ import { |
|
|
|
} from "@/api/taskapi/management"; |
|
|
|
|
|
|
|
import { formatNumber } from "@/api/DesignForm/utils"; |
|
|
|
|
|
|
|
import printHtmlRender from '../printHtmlRender.vue' |
|
|
|
import {fieldTree,PageConfig} from '../printHtmlRender.vue' |
|
|
|
import {printElement} from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/printHtmlDom.js" |
|
|
|
import {getPrintTemplate} from '@/api/DesignForm/requestapi' |
|
|
|
//引入组件 |
|
|
|
import FormPageCont from "@/components/DesignForm/tableListPage/formPageCont.vue"; |
|
|
|
import TableFlow from "@/views/sysworkflow/lowcodepage/pageFlow/appTableFlow.vue"; |
|
|
|
@ -70,6 +73,7 @@ const props = withDefaults( |
|
|
|
searchData?: attrButton[]; |
|
|
|
config?: FormPageConfig|any; |
|
|
|
formId?: string; |
|
|
|
appKey?: string; |
|
|
|
beforeRequest?: (params: any, rout: any) => any; |
|
|
|
afterResponse?: (result: any) => any | string; |
|
|
|
beforeDelete?: (params: any, route: any) => any; |
|
|
|
@ -83,6 +87,7 @@ const props = withDefaults( |
|
|
|
delKey?: string; // 删除标识 |
|
|
|
lookPageIsShow?: boolean; |
|
|
|
versionid?: string; |
|
|
|
formKey?:string; |
|
|
|
signCode?: string; |
|
|
|
pickAppMenu?: any; |
|
|
|
versiontitle?: string; |
|
|
|
@ -1550,6 +1555,91 @@ const lookPageInfo = (val: any) => { |
|
|
|
drawerWith.value = container.value?.clientWidth; |
|
|
|
lookPageInfoIsShow.value = true; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/****************表单打印功能************************/ |
|
|
|
const printRenderMode = ref(false); |
|
|
|
const printRenderTree: Ref<any[]> = ref([]); |
|
|
|
const printPage = async (row: any) => { |
|
|
|
let data:any[]=[] |
|
|
|
let _pageConfig:PageConfig |
|
|
|
let title:string="表单"; |
|
|
|
await getPrintTemplate({"versionid":props.versionid,"formkey":props.appKey}).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] |
|
|
|
} |
|
|
|
if(_pageConfig.serialNumber!=""){ |
|
|
|
_pageConfig.serialNumber=row[_pageConfig.serialNumber] |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
let qrstr=`https://wab.hxgk.group/#/form_table/taskInfo?id=${props.formId}&key=${props.appKey}& |
|
|
|
formid=${props.versionid}&formKey=${props.formKey}&state=2` |
|
|
|
data.forEach(node=>{ |
|
|
|
deepLoopForm(node,row) |
|
|
|
}) |
|
|
|
printRenderTree.value=data |
|
|
|
printRenderMode.value = true; |
|
|
|
ElMessageBox({ |
|
|
|
message: () => h('div',{style:{ width:'1200px',display:'flex','flex-direction':'column'}},[ |
|
|
|
h(ElButton, { |
|
|
|
type:"primary", |
|
|
|
style: "margin:10px 10px 5px auto;", |
|
|
|
onClick: () => { |
|
|
|
printElement("printContainer") |
|
|
|
} |
|
|
|
},'打印表单'), |
|
|
|
h('div',{style:{ border: '1px solid black', width: 'fit-content', margin: '5px','align-self': 'center'}},[ |
|
|
|
h(printHtmlRender,{ |
|
|
|
name:title, |
|
|
|
fieldTree:printRenderTree.value, |
|
|
|
pageConfig:_pageConfig, |
|
|
|
qrcode:qrstr, |
|
|
|
}) |
|
|
|
]) |
|
|
|
]), |
|
|
|
showConfirmButton:false, |
|
|
|
customStyle: { '--el-messagebox-width':'1300px',padding:'10px'}, |
|
|
|
}).then(() => { |
|
|
|
}) |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
const deepLoopForm=(node:fieldTree, row: Record<string, any>)=>{ |
|
|
|
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!] |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@ 作者: 秦东 |
|
|
|
@ 时间: 2024-04-05 11:29:50 |
|
|
|
@ -2202,6 +2292,21 @@ const isObject = (obj) => { |
|
|
|
class="fa fa-edit" |
|
|
|
/> |
|
|
|
</el-tooltip> |
|
|
|
|
|
|
|
<el-tooltip |
|
|
|
class="box-item" |
|
|
|
effect="dark" |
|
|
|
content="打印表单" |
|
|
|
placement="top-end" |
|
|
|
> |
|
|
|
<el-button |
|
|
|
@click="printPage(scope.row)" |
|
|
|
type="primary" |
|
|
|
size="small" |
|
|
|
class="fa fa-print" |
|
|
|
/> |
|
|
|
</el-tooltip> |
|
|
|
|
|
|
|
<el-popconfirm |
|
|
|
v-if="scope.row.taskStatus == 2 || scope.row.taskStatus == 1" |
|
|
|
confirm-button-text="确定" |
|
|
|
|