From ce740bf805613a3ab1f0831f2e531469c7d83c7f Mon Sep 17 00:00:00 2001 From: han2015 <1019850453@qq.com> Date: Wed, 17 Dec 2025 10:02:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=89=93=E5=8D=B0=EF=BC=9A=E5=A4=84?= =?UTF-8?q?=E7=90=86select=E5=92=8Ccheckbox=E7=BB=84=E4=BB=B6=E6=B8=B2?= =?UTF-8?q?=E6=9F=93=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/DesignForm/printHtmlRender.ts | 44 +++++++++++++------ src/components/DesignForm/printHtmlRender.vue | 37 ++++++++-------- src/store/modules/orgMember.ts | 3 +- .../appPage/appPageForm/printSetupPage2.vue | 23 +++++++++- 4 files changed, 73 insertions(+), 34 deletions(-) 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..82512bf 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[] } @@ -41,12 +42,12 @@ const userName=useUserStore().nickname; function parseDataPicker(val:string){ let str:string; if(typeof(val)=="number"){ - str=new Date(val).toISOString() + str=new Date(val).toLocaleString() }else{ if(val==""|| val.match(/[a-z]/) ) return val; - str=new Date(parseInt(val)).toISOString() + str=new Date(parseInt(val)).toLocaleString() } - + return str.slice(0,10)+" "+str.slice(11,16) } @@ -131,15 +132,15 @@ const getStateText=(val:number)=>{
{{ group.name }}
- +
{{ tabs.name }}
@@ -166,7 +167,7 @@ const getStateText=(val:number)=>{
-
+
{{tabs.name}} @@ -176,10 +177,9 @@ const getStateText=(val:number)=>{
-
{{ group }}
+
{{ group }}
-
@@ -265,7 +265,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 +357,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 +383,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)=>{ - + + 重置 保存模板
Date: Wed, 17 Dec 2025 10:47:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=89=93=E5=8D=B0=EF=BC=9A=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/DesignForm/printHtmlRender.vue | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/components/DesignForm/printHtmlRender.vue b/src/components/DesignForm/printHtmlRender.vue index 82512bf..8d7520f 100644 --- a/src/components/DesignForm/printHtmlRender.vue +++ b/src/components/DesignForm/printHtmlRender.vue @@ -39,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).toLocaleString() - }else{ - if(val==""|| val.match(/[a-z]/) ) return val; + }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= ()=>{ @@ -100,7 +103,7 @@ const getStateText=(val:number)=>{ {{item.name}} {{item.field}} - {{parseDataPicker(item.field)}} + {{parseDataPicker(item.field,item.type)}}
@@ -122,7 +125,14 @@ const getStateText=(val:number)=>{
@@ -138,7 +148,7 @@ const getStateText=(val:number)=>{ {{item.name}} {{item.field}} - {{parseDataPicker(item.field)}} + {{parseDataPicker(item.field,item.type)}} @@ -161,7 +171,14 @@ const getStateText=(val:number)=>{ @@ -172,7 +189,7 @@ const getStateText=(val:number)=>{ {{tabs.name}} {{tabs.field}} - {{parseDataPicker(tabs.field??'')}} + {{parseDataPicker(tabs.field??'',tabs.type)}}
审批流程