From 99362bf3c29d96d082205a3beb7bdea0ec6319ee Mon Sep 17 00:00:00 2001 From: wangmingwei Date: Mon, 18 May 2026 16:17:41 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E8=AE=BE=E8=AE=A1=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=AD=90=E8=A1=A8=E6=8E=A7=E4=BB=B6=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E4=BF=AE=E6=94=B9=20=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=97=B6=E6=B7=BB=E5=8A=A0=E9=A9=BC=E5=B3=B0?= =?UTF-8?q?=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FormGenerator/src/RightPanel.vue | 12 +++++- .../webDesign/components/AliasModal.vue | 41 +++++++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/src/components/FormGenerator/src/RightPanel.vue b/src/components/FormGenerator/src/RightPanel.vue index a299cc9..67cd2b5 100644 --- a/src/components/FormGenerator/src/RightPanel.vue +++ b/src/components/FormGenerator/src/RightPanel.vue @@ -36,7 +36,8 @@ - + + + diff --git a/src/views/onlineDev/webDesign/components/AliasModal.vue b/src/views/onlineDev/webDesign/components/AliasModal.vue index 7146b2b..5111ee9 100644 --- a/src/views/onlineDev/webDesign/components/AliasModal.vue +++ b/src/views/onlineDev/webDesign/components/AliasModal.vue @@ -20,6 +20,7 @@ + 驼峰命名 {{ t('common.saveText') }} {{ t('common.closeText') }} @@ -124,6 +125,22 @@ scroll: { y: unref(getScrollY) }, }; }); + /** + * 下划线命名转驼峰命名 + * @param str 下划线命名字符串(如 mdm_work_type、work_type_id) + * @param isBigHump 是否大驼峰(首字母大写),默认 false 为小驼峰 + * @returns 驼峰命名字符串 + */ +function toHump(str: string, isBigHump = false): string { + return str.replace(/_(\w)/g, (_, letter) => letter.toUpperCase()) + .replace(/^\w/, (firstLetter) => { + return isBigHump ? firstLetter.toUpperCase() : firstLetter.toLowerCase(); + }); +} + +// 示例: +// toHump('mdm_work_type') → "mdmWorkType"(小驼峰) +// toHump('work_type_id', true) → "WorkTypeId"(大驼峰) const getChildTableBindValues = computed(() => { return { columns: childColumns, @@ -151,6 +168,30 @@ }); }); } + // 点击触发驼峰命名(有值用原值,无值自动驼峰) +function tuofeng() { + state.list = state.list.map(tableItem => { + // 处理表:有值用原值,无值转驼峰 + const tableAlias = tableItem.aliasName?.trim() || toHump(tableItem.table); + + // 处理字段 + const newFields = tableItem.fields.map(fieldItem => { + const fieldAlias = fieldItem.aliasName?.trim() || toHump(fieldItem.field); + return { + ...fieldItem, + aliasName: fieldAlias + }; + }); + + return { + ...tableItem, + aliasName: tableAlias, + fields: newFields + }; + }); + createMessage.success('已自动生成驼峰命名(空值才填充)'); +} + function handleSubmit() { state.btnLoading = true; changeLoading(true);