Browse Source

Merge branch 'han_printing'

master
han2015 2 days ago
parent
commit
02b1b22f0a
  1. 20
      src/components/DesignForm/printHtmlRender.ts
  2. 54
      src/components/DesignForm/printHtmlRender.vue
  3. 11
      src/views/sysworkflow/lowcodepage/appPage/appPageForm/printSetupPage2.vue

20
src/components/DesignForm/printHtmlRender.ts

@ -2,12 +2,27 @@ 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<any[]> = 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!=""){
@ -32,8 +47,8 @@ export const printHtmlPage = async (pformid:string,pappkey:string,pversionid:str
}
})
let qrstr=`https://wab.hxgk.group/#/form_table/taskInfo?id=${pformid}&key=${pappkey}&
formid=${pversionid}&formKey=${pformkey}&state=2`
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)
})
@ -57,6 +72,7 @@ export const printHtmlPage = async (pformid:string,pappkey:string,pversionid:str
name:title,
fieldTree:printRenderTree.value,
pageConfig:_pageConfig,
flowList:flowlist,
qrcode:qrstr,
})
])

54
src/components/DesignForm/printHtmlRender.vue

@ -31,6 +31,7 @@ const props = withDefaults(defineProps<{
name:string,
pageConfig:PageConfig,
fieldTree:fieldTree[],
flowList:any[],
qrcode?:string,
}>(),{})
@ -169,6 +170,50 @@ const generateQrCode= ()=>{
</div>
<div v-else v-if="group.checked!=2">{{ group }}</div>
</div>
<div v-if="props.flowList.length>0" class="section_table">
<table class="bder_table">
<caption >审批流程</caption>
<thead>
<tr>
<th >审批节点</th>
<th >处理人</th>
<th >操作记录</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in props.flowList" :key="dd">
<template v-if="item.step>1">
<td >
<div style="line-height: 22px;">{{ item.nodeName}}
<span v-if="item.examinemode==1">(依次审批)</span>
<span v-if="item.examinemode==2">(会签)</span>
<span v-if="item.examinemode==3">(或签)</span>
<br><span v-if="item.status==2">已完成</span><span v-else="item.status==2">未处理</span>
</div>
</td>
<td >
<template v-for="oper in item.operator" >
<span v-if="oper.log" class="operate_log" >
{{ oper.name }}--{{ oper.departmentname }}--{{ oper.postname }}
</span>
</template>
</td>
<td >
<template v-for="oper in item.operator" >
<span v-if="oper.log" class="operate_log" >
{{ oper.log[0].cause }} {{ oper.log[0].time.slice(0,16) }}
</span>
</template>
</td>
</template>
</tr>
</tbody>
</table>
</div>
<div v-if="props.pageConfig.qrcode" style="display: flex; justify-content: space-between;margin-top: 20px; ">
{{ generateQrCode() }}
<div style="display: inherit; align-items: center;">
@ -208,9 +253,16 @@ div:empty {
grid-template-columns: 1fr 1fr;
border: 1px solid rgb(226, 226, 226);
}
.operate_log{
display: block;
border-bottom: 1px solid rgb(182, 181, 181);
}
td > .operate_log:last-child{
border-bottom: none;
}
h3{
width: 100%;
font-size: 25px;
font-size: 22px;
font-weight: bold;
}

11
src/views/sysworkflow/lowcodepage/appPage/appPageForm/printSetupPage2.vue

@ -342,7 +342,7 @@ const updateNodeData=(val:fieldTree,val2:boolean,val3:boolean)=>{
</template>
</el-tree>
</div>
<div style="border: 1px solid black;margin: 5px;">
<div style="border: 1px solid black;margin: 5px;background: #f1f1f1;">
<div style="display: flex;justify-content:center">
<el-radio-group v-model="pageSize" fill="#6cf" @change="(val)=>updatePageConfig(val)">
<el-radio-button label="A4" value="A4" />
@ -354,17 +354,18 @@ const updateNodeData=(val:fieldTree,val2:boolean,val3:boolean)=>{
<el-radio-button label="纵向" value="vtal" />
</el-radio-group>
</div>
<div style="margin: 5px; border: 1px dashed black;overflow-y: scroll; scrollbar-width: none;" :style="{width: objPageConfig.width,height:objPageConfig.height}">
<printHtmlRender :name="props.state.formOtherData.formName" :qrcode="'test'" :pageConfig="objPageConfig" :field-tree="htmlRenderData"/>
<div style="margin: 10px auto; background: white;box-shadow:0px 0px 6px rgba(0,0,0,0.12);overflow-y: scroll; scrollbar-width: none;"
:style="{width: objPageConfig.width,height:objPageConfig.height}">
<printHtmlRender :name="props.state.formOtherData.formName" :qrcode="'test'" :page-config="objPageConfig" :field-tree="htmlRenderData"/>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="定制表单" name="custom">
<!-- <el-tab-pane label="定制表单" name="custom">
<div style="width: 100%;">
ssss
</div>
</el-tab-pane>
</el-tab-pane> -->
</el-tabs>
</template>
<style lang="scss" scoped>

Loading…
Cancel
Save