From 21d19ecedae465400f3d80c77c75c3f757e3fbf3 Mon Sep 17 00:00:00 2001 From: chenxing Date: Wed, 16 Sep 2026 16:34:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A1=A8=E5=8D=95=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E5=8F=AF=E8=A7=81=E9=97=AD=E7=8E=AF=E2=80=94?= =?UTF-8?q?=E2=80=94=E7=BB=91=E5=AE=9A=E6=98=8E=E7=BB=86/=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E5=BC=95=E5=AF=BC/schema=20=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ServiceFormManage:被绑定列显示"已绑定 N 个事项",弹窗列明细(站点/编码/名称/状态)可直达事项编辑(跨站点先切站点);发布未绑定时 confirm 引导前往办事事项;保存文案带下一步;编辑弹窗"预览效果"复用 DynamicForm 渲染 schemaJson - ServiceItemEdit:选中草稿/停用表单时红字提示"发布后才能在发起页实际填写",下拉选项标注状态 - types/svc.ts:SvcFormVo +refItems、新增 SvcFormItemBrief --- src/types/svc.ts | 10 ++++ src/views/svc/ServiceFormManage.vue | 93 ++++++++++++++++++++++++++--- src/views/svc/ServiceItemEdit.vue | 15 ++++- 3 files changed, 109 insertions(+), 9 deletions(-) diff --git a/src/types/svc.ts b/src/types/svc.ts index 52cbe80..379f2b1 100644 --- a/src/types/svc.ts +++ b/src/types/svc.ts @@ -152,6 +152,16 @@ export interface SvcFormVo { schemaJson: string; publishTime?: string; referenced?: boolean; + /** 绑定本表单的事项明细(表单页反查使用位置;sch 级共享,可能跨站点) */ + refItems?: SvcFormItemBrief[]; +} + +export interface SvcFormItemBrief { + id: number; + itemCode: string; + title: string; + siteCode: string; + status: number; } export interface SvcFormSaveRequest { diff --git a/src/views/svc/ServiceFormManage.vue b/src/views/svc/ServiceFormManage.vue index fc72c77..6b5386c 100644 --- a/src/views/svc/ServiceFormManage.vue +++ b/src/views/svc/ServiceFormManage.vue @@ -1,11 +1,14 @@ @@ -109,12 +153,13 @@ const cols = [ {{ statusName(row.status) }} @@ -135,6 +180,7 @@ const cols = [ 契约:{"groups":[{title, fields:[{key,label,type,required,pattern,min,max,maxLength,options,accept,maxSize,maxFiles,…}]}]} ;一期控件:text/textarea/number/date/select/radio/upload + + + + + + + + + + +
+
+ 用户在绑定此表单的事项发起页填写该表单;草稿表单发布后才会实际下发给发起页。 +
+ +
+ { + if (!form.value.formCode) return false; + const f = forms.value.find((x) => x.code === form.value.formCode); + return !!f && f.status !== 1; +}); + /** 部门树扁平化(缩进展示,承袭 CMS flattenDepts) */ const deptOptions = computed(() => { const out: { id: number; label: string }[] = []; @@ -233,8 +240,14 @@ onMounted(loadAll); +
+ 该表单尚未发布,发布后才能在发起页实际填写;请到「表单管理」发布。 +
+
发起页按表单编码取最新已发布版本渲染