diff --git a/src/assets/logo_text.png b/src/assets/logo_text.png new file mode 100644 index 0000000..bdf9286 Binary files /dev/null and b/src/assets/logo_text.png differ diff --git a/src/components/DesignForm/app/index copy.vue b/src/components/DesignForm/app/index copy.vue deleted file mode 100644 index fa3d145..0000000 --- a/src/components/DesignForm/app/index copy.vue +++ /dev/null @@ -1,2614 +0,0 @@ - - - - diff --git a/src/components/DesignForm/app/index.vue b/src/components/DesignForm/app/index.vue index 3b80580..19bbb36 100644 --- a/src/components/DesignForm/app/index.vue +++ b/src/components/DesignForm/app/index.vue @@ -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 = 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)=>{ + 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" /> + + + + + import QRCode from 'qrcode'; -import logourl from "@/assets/logo.png"; +import logourl from "@/assets/logo_text.png"; +import { useUserStore } from '@/store/modules/user'; export interface fieldTree{ field?:string; @@ -30,10 +31,11 @@ const props = withDefaults(defineProps<{ name:string, pageConfig:PageConfig, fieldTree:fieldTree[], - formData?:string + qrcode?:string, }>(),{}) const qrdata=ref("") +const userName=useUserStore().nickname; function parseDataPicker(val:string){ if(val==""|| val.match(/[a-z]/) ) return val; @@ -53,7 +55,7 @@ const generateQrCode= ()=>{ } } - QRCode.toDataURL(props.formData, opts, function (err, url) { + QRCode.toDataURL(props.qrcode, opts, function (err, url) { if (err) throw err qrdata.value=url }) @@ -72,7 +74,6 @@ const generateQrCode= ()=>{ 创建人:{{ props.pageConfig.founder }} 创建时间:{{ props.pageConfig.founderTime }} 所属部门:{{ props.pageConfig.deptOrg }} -
@@ -144,9 +145,16 @@ const generateQrCode= ()=>{
{{ group }}
-
+
{{ generateQrCode() }} - +
+ +
使用手机企业微信
扫一扫
+
+
+

打印日期:{{ new Date().toLocaleString() }}

+

打印人: {{userName}}

+
@@ -312,4 +320,4 @@ h5{ border: 1px solid rgb(182, 181, 181); } - \ No newline at end of file + diff --git a/src/components/DesignForm/tableListPage/index copy.vue b/src/components/DesignForm/tableListPage/index copy.vue deleted file mode 100644 index 7a91c76..0000000 --- a/src/components/DesignForm/tableListPage/index copy.vue +++ /dev/null @@ -1,2505 +0,0 @@ - - - - diff --git a/src/components/DesignForm/tableListPage/index.vue b/src/components/DesignForm/tableListPage/index.vue index db05cba..fa01ebe 100644 --- a/src/components/DesignForm/tableListPage/index.vue +++ b/src/components/DesignForm/tableListPage/index.vue @@ -39,8 +39,8 @@ import { softDeletion, retractRunWorkFlow, recalSendMsg } from "@/api/taskapi/ma import { echatsViews } from "@/api/DesignForm/types"; import { formatNumber } from "@/api/DesignForm/utils"; import { Ref } from "vue"; -import printHtmlRender from './printHtmlRender.vue' -import {fieldTree,PageConfig} from './printHtmlRender.vue' +import printHtmlRender from '../printHtmlRender.vue' +import {fieldTree,PageConfig} from '../printHtmlRender.vue' import {printElement} from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/printHtmlDom.js" //引入组件 import FormPageCont from "@/components/DesignForm/tableListPage/formPageCont.vue"; @@ -1344,16 +1344,15 @@ const lookPageInfo = (val: any) => { lookPageInfoIsShow.value = true; }; - +/****************表单打印功能************************/ const printRenderMode = ref(false); -// Explicitly type as Ref - const printRenderTree: Ref = ref([]); const printPage = async (row: any) => { let data:any[]=[] let _pageConfig:PageConfig let title:string="表单"; - await getPrintTemplate({"versionid":props.versionid,"formkey":props.formKey}).then(resp=>{ + //这里appkey和formkey 有些乱,由于历史遗留问题,不好区分。。。 + await getPrintTemplate({"versionid":props.versionid,"formkey":props.appKey}).then(resp=>{ title=resp.data.title if(resp.data.formtemplatejson!=""){ data=JSON.parse(resp.data.formtemplatejson) @@ -1375,7 +1374,7 @@ const printPage = async (row: any) => { } }) - let qrstr=`https://wab.hxgk.group/#/form_table/taskInfo?id=${props.formId}}&key=${props.appKey}& + 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=>{ @@ -1397,7 +1396,7 @@ const printPage = async (row: any) => { name:title, fieldTree:printRenderTree.value, pageConfig:_pageConfig, - formData:qrstr + qrcode:qrstr }) ]) ]), @@ -1408,26 +1407,25 @@ const printPage = async (row: any) => { }; -function 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!] +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!] + } } } } -} - - /** @ 作者: 秦东 @ 时间: 2024-04-05 11:29:50 diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/openAppFormPage.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/openAppFormPage.vue index 1ed75e9..1360111 100644 --- a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/openAppFormPage.vue +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/openAppFormPage.vue @@ -541,7 +541,7 @@ defineExpose({ :form-id="stateForm.formId" :app-key="props.menusInfo.appkey" :versionid="versionId" - :form-key="props.formKey" + :form-key="props.menusInfo.id" :versiontitle="versionTitle" v-model:look-page-is-show="lookPageIsShow" :viewPage="stateList.view" diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageForm.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageForm.vue index fc16bcf..d1b9e41 100644 --- a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageForm.vue +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/pageForm.vue @@ -776,7 +776,6 @@ const dialogConfirmTree = (val: treeStruct[], types: string) => { };