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);