diff --git a/src/components/DesignForm/printHtmlRender.ts b/src/components/DesignForm/printHtmlRender.ts index 246d7cd..9c0c126 100644 --- a/src/components/DesignForm/printHtmlRender.ts +++ b/src/components/DesignForm/printHtmlRender.ts @@ -24,12 +24,13 @@ export const printHtmlPage = async (pformid:string,pappkey:string,pversionid:str }) } - + let noTemplate:boolean=false await getPrintTemplate({"versionid":pversionid,"formkey":pappkey}).then(resp=>{ title=resp.data.title if(resp.data.formtemplatejson!=""){ data=JSON.parse(resp.data.formtemplatejson) }else{ + noTemplate=true alert("请先创建打印模板!") return } @@ -49,6 +50,8 @@ export const printHtmlPage = async (pformid:string,pappkey:string,pversionid:str } }) + if(noTemplate) return; + let qrstr=`https://wab.hxgk.group/#/form_table/taskListPage?id=${pformid}&key=${pappkey}& formid=${pversionid}&formKey=${pformkey}&qrDetailId=${row.id}` data.forEach(node=>{ @@ -85,20 +88,33 @@ export const printHtmlPage = async (pformid:string,pappkey:string,pversionid:str }) }; -const deepLoopForm=(node:fieldTree, row: Record)=>{ - if(Array.isArray(node)){ - node.forEach(item=>{deepLoopForm(item,row)}) - return - } +const deepLoopForm=(node:fieldTree, row: Record)=>{ + if(Array.isArray(node)){ + node.forEach(item=>{deepLoopForm(item,row)}) + return + } + + if(node.type=="tabs"&&node.child){ + node.child?.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!] + if(node.field!=""){ + if (row.hasOwnProperty(node.field!)){// 有这个字段 + if (node.type=="table"){ + node.data=row[node.field!] + }else if(node.type=="select"||node.type=="checkbox"){ + const val=row[node.field!] + node.field="" + for(let op of node.options!){ + if(op.value==val){ + node.field=op.label + break; + } } + }else{ + node.field=row[node.field!] } } - } \ No newline at end of file + } +} \ No newline at end of file diff --git a/src/components/DesignForm/printHtmlRender.vue b/src/components/DesignForm/printHtmlRender.vue index 156ec48..8d7520f 100644 --- a/src/components/DesignForm/printHtmlRender.vue +++ b/src/components/DesignForm/printHtmlRender.vue @@ -9,6 +9,7 @@ export interface fieldTree{ type:string; checked?:number; data?:[]; + options?:[];//select, checkbox... options child?:fieldTree[] } @@ -38,16 +39,19 @@ const props = withDefaults(defineProps<{ const qrdata=ref("") const userName=useUserStore().nickname; -function parseDataPicker(val:string){ +function parseDataPicker(val:string,vtype:string){ let str:string; if(typeof(val)=="number"){ - str=new Date(val).toISOString() - }else{ - if(val==""|| val.match(/[a-z]/) ) return val; - str=new Date(parseInt(val)).toISOString() + str=new Date(val).toLocaleString() + }else{//"";2025-12-17;sheng1chan3ri4qi1;三种值直接返回 + if(val==""|| val.match(/[a-z-:.]/) ) return val; + str=new Date(parseInt(val)).toLocaleString() } - - return str.slice(0,10)+" "+str.slice(11,16) + + if(vtype.startsWith("time")){ + return str.slice(11,16) + } + return str.slice(0,10) } const generateQrCode= ()=>{ @@ -99,7 +103,7 @@ const getStateText=(val:number)=>{ {{item.name}} {{item.field}} - {{parseDataPicker(item.field)}} + {{parseDataPicker(item.field,item.type)}} @@ -121,7 +125,14 @@ const getStateText=(val:number)=>{ @@ -131,15 +142,15 @@ const getStateText=(val:number)=>{
{{ group.name }}
- +
{{ tabs.name }}
@@ -160,26 +171,32 @@ const getStateText=(val:number)=>{
-
+
{{tabs.name}} {{tabs.field}} - {{parseDataPicker(tabs.field??'')}} + {{parseDataPicker(tabs.field??'',tabs.type)}}
-
{{ group }}
+
{{ group }}
-
@@ -265,7 +282,7 @@ div:empty { .auto_table{ display: grid; grid-template-columns: 1fr 1fr; - border: 1px solid rgb(226, 226, 226); + border: 1px solid rgb(200, 200, 200); } .operate_log{ display: block; @@ -357,7 +374,7 @@ h5{ } /* 原有样式(稍作优化) */ -.cell_box, .tabs_cell_box { +.cell_box, .tabs_cell_box, .tabs_wide_box{ border: 1px solid rgb(182, 181, 181); margin-right: -1px; /* 水平排列时用右负margin */ margin-bottom: -1px; /* 垂直排列时用下负margin */ @@ -383,8 +400,9 @@ h5{ border-left: 1px solid rgb(182, 181, 181); } } -.tabs_cell_box{ +.tabs_cell_box, .tabs_wide_box{ width: 100%; + flex-direction: row; } diff --git a/src/store/modules/orgMember.ts b/src/store/modules/orgMember.ts index 0d1bdce..69709ab 100644 --- a/src/store/modules/orgMember.ts +++ b/src/store/modules/orgMember.ts @@ -9,11 +9,12 @@ export const useOrgMemberStore = defineStore('orgMember', () => { name: string; child?:OrgMemberItem[]; } - + const listMap = ref>({}) const dataTree = ref({ id: '', name: '', child: [] }) async function init() { + await request({ url: "/systemapi/app/get_org_everyone_people",//"172.20.2.87:39168", method: "post", diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/printSetupPage2.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/printSetupPage2.vue index 728b92d..8d9e1ce 100644 --- a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/printSetupPage2.vue +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/printSetupPage2.vue @@ -13,6 +13,7 @@ interface fieldTreeEx extends fieldTree{ unitName?:string; list?:fieldTreeEx[]; columns?:fieldTreeEx[]; + options?:[] } const printMode=ref("") @@ -104,6 +105,13 @@ const updatePageConfig=(cmd:string)=>{ } } +const onClearTreeData=()=>{ + fieldTreeData.value=[] + props.state.formData.list.forEach((item:fieldTreeEx)=>{ + fieldTreeData.value.push(deepLoop(item)) + }) +} + //保存模板 const onSaveTreeData=()=>{ let str:string=safeStringify(htmlRenderData.value) @@ -146,6 +154,15 @@ const deepLoop=(item:fieldTreeEx)=>{ child:[], } break; + case "select": + case "checkbox": + data={ + field:item.name?? "", + type:item.type, + name:item.item ? item.item.label : "", + options: item.options + } + break; default: data={ field:item.name?? "", @@ -270,14 +287,17 @@ onMounted(async ()=>{ }) /*********************为解决pageconfig字段的问题**************************/ + console.log(fieldTreeData.value.length,"length????") let newForm:boolean; if(fieldTreeData.value.length==0){ newForm=true; } + props.state.formData.list.forEach((item:fieldTreeEx)=>{ if(systemType.includes(item.type)) { //需要记录这种type的真实字段 objPageConfig.value[item.type as keyof PageConfig]=item.name??"" + } //无论新表单还是已保存过的表单,都要处理objPageConfig字段的问题,但是fieldTreeData只有在新表单的时候需要初始化 if(newForm){ @@ -352,7 +372,8 @@ const updateNodeData=(val:fieldTree,val2:boolean,val3:boolean)=>{ - + + 重置 保存模板
审批流程