From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/components/FormCreate/src/utils/index.ts |   61 ++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 0 deletions(-)

diff --git a/src/components/FormCreate/src/utils/index.ts b/src/components/FormCreate/src/utils/index.ts
new file mode 100644
index 0000000..a2b3e67
--- /dev/null
+++ b/src/components/FormCreate/src/utils/index.ts
@@ -0,0 +1,61 @@
+export function makeRequiredRule() {
+  return {
+    type: 'Required',
+    field: 'formCreate$required',
+    title: '鏄惁蹇呭~'
+  }
+}
+
+export const localeProps = (t, prefix, rules) => {
+  return rules.map((rule) => {
+    if (rule.field === 'formCreate$required') {
+      rule.title = t('props.required') || rule.title
+    } else if (rule.field && rule.field !== '_optionType') {
+      rule.title = t('components.' + prefix + '.' + rule.field) || rule.title
+    }
+    return rule
+  })
+}
+
+/**
+ * 瑙f瀽琛ㄥ崟缁勪欢鐨�  field, title 绛夊瓧娈碉紙閫掑綊锛屽鏋滅粍浠跺寘鍚瓙缁勪欢锛�
+ * 
+ * @param rule  缁勪欢鐨勭敓鎴愯鍒� https://www.form-create.com/v3/guide/rule
+ * @param fields 瑙f瀽鍚庤〃鍗曠粍浠跺瓧娈�
+ * @param parentTitle  濡傛灉鏄瓙琛ㄥ崟锛屽瓙琛ㄥ崟鐨勬爣棰橈紝榛樿涓虹┖
+ */
+export const parseFormFields = (
+  rule: Record<string, any>,
+  fields: Array<Record<string, any>> = [],
+  parentTitle: string = ''
+) => {
+  const { type, field, $required, title: tempTitle, children } = rule
+  if (field && tempTitle) {
+    let title = tempTitle
+    if (parentTitle) {
+      title = `${parentTitle}.${tempTitle}`
+    }
+    let required = false
+    if ($required) {
+      required = true
+    }
+    fields.push({
+      field,
+      title,
+      type,
+      required
+    })
+    // TODO 瀛愯〃鍗� 闇�瑕佸鐞嗗瓙琛ㄥ崟瀛楁
+    // if (type === 'group' && rule.props?.rule && Array.isArray(rule.props.rule)) {
+    //   // 瑙f瀽瀛愯〃鍗曠殑瀛楁
+    //   rule.props.rule.forEach((item) => {
+    //     parseFields(item, fieldsPermission, title)
+    //   })
+    // }
+  }
+  if (children && Array.isArray(children)) {
+    children.forEach((rule) => {
+      parseFormFields(rule, fields)
+    })
+  }
+}

--
Gitblit v1.8.0