From 7b0dbecd1d6155d26ec67be0a47a16264c738c85 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 09 五月 2023 14:48:10 +0800
Subject: [PATCH] 2023-05-09

---
 src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx |  418 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 377 insertions(+), 41 deletions(-)

diff --git a/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx b/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx
index 28c9fc9..7b052f5 100644
--- a/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx
+++ b/src/menu/components/table/edit-table/columns/editColumn/formconfig.jsx
@@ -1,13 +1,8 @@
-import zhCN from '@/locales/zh-CN/model.js'
-import enUS from '@/locales/en-US/model.js'
-
-const Formdict = sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
-
 /**
  * @description 鑾峰彇鏄剧ず鍒楄〃鍗曢厤缃俊鎭�
  * @param {object} card       // 鎼滅储鏉′欢瀵硅薄
  */
-export function getColumnForm (card, fields = []) {
+export function getColumnForm (card, fields = [], columns = []) {
   let roleList = sessionStorage.getItem('sysRoles')
   if (roleList) {
     try {
@@ -19,29 +14,75 @@
     roleList = []
   }
 
-  if (['picture', 'link', 'colspan'].includes(card.type)) {
+  // if (['picture', 'link', 'colspan'].includes(card.type)) {
+  if (['picture', 'link'].includes(card.type)) {
     card.type = 'text'
   }
 
   let options = [{
     value: 'text',
-    text: Formdict['model.form.text']
+    text: '鏂囨湰'
   }, {
     value: 'number',
-    text: Formdict['model.form.number']
+    text: '鏁板瓧'
   }, {
     value: 'textarea',
-    text: Formdict['model.form.textarea']
+    text: '澶氳鏂囨湰'
   }, {
     value: 'custom',
     text: '鑷畾涔夊垪'
   }, {
-    value: 'action',
-    text: '鎿嶄綔'
+    value: 'colspan',
+    text: '鍚堝苟鍒�'
+  // }, {
+  //   value: 'action',
+  //   text: '鎿嶄綔'
+  }, {
+    value: 'formula',
+    text: '鍏紡'
   }, {
     value: 'index',
     text: '搴忓彿'
   }]
+
+  if (!card.isSub) {
+    options.push({
+      value: 'action',
+      text: '鎿嶄綔'
+    })
+  }
+
+  let editCols = [
+    {
+      field: '$sub',
+      label: '鎻愪氦'
+    },
+    {
+      field: '$next',
+      label: '涓嬩竴琛�'
+    },
+    {
+      field: '$noAct',
+      label: '鏃犲姩浣�'
+    }
+  ]
+  columns.forEach(col => {
+    if (col.editable === 'true' && col.uuid !== card.uuid) {
+      editCols.push({
+        field: col.uuid,
+        label: col.label
+      })
+    } else if (col.type === 'colspan') {
+      col.subcols.forEach(subcol => {
+        if (subcol.editable === 'true' && subcol.uuid !== card.uuid) {
+          editCols.push({
+            field: subcol.uuid,
+            label: col.label + '-' + subcol.label
+          })
+        }
+      })
+    }
+  })
 
   return [
     {
@@ -54,7 +95,7 @@
     {
       type: 'select',
       key: 'type',
-      label: Formdict['model.form.type'],
+      label: '绫诲瀷',
       initVal: card.type,
       required: true,
       options: options
@@ -62,7 +103,7 @@
     {
       type: 'select',
       key: 'field',
-      label: Formdict['model.form.field'],
+      label: '瀛楁',
       initVal: card.field,
       required: true,
       options: fields
@@ -72,57 +113,71 @@
       key: 'Width',
       min: 20,
       max: 1000,
-      decimal: 0,
-      label: Formdict['model.form.columnWidth'],
+      precision: 0,
+      label: '鍒楀',
       initVal: card.Width || 120,
       required: true
     },
     {
       type: 'radio',
       key: 'Hide',
-      label: Formdict['model.hidden'],
+      label: '闅愯棌',
       initVal: card.Hide || 'false',
       required: true,
       options: [{
         value: 'true',
-        text: Formdict['model.true']
+        text: '鏄�'
       }, {
         value: 'false',
-        text: Formdict['model.false']
+        text: '鍚�'
       }]
     },
     {
       type: 'radio',
       key: 'IsSort',
-      label: Formdict['model.sort'],
-      initVal: card.IsSort || 'false',
+      label: '鎺掑簭',
+      initVal: card.IsSort || (card.isSub ? 'false' : 'true'),
       required: true,
-      forbidden: card.isSub,
       options: [{
         value: 'true',
-        text: Formdict['model.true']
+        text: '鏄�'
       }, {
         value: 'false',
-        text: Formdict['model.false']
+        text: '鍚�'
       }]
     },
     {
       type: 'radio',
       key: 'Align',
-      label: Formdict['model.form.align'],
+      label: '瀵归綈鏂瑰紡',
       initVal: card.Align || 'left',
       required: true,
       options: [{
         value: 'left',
-        text: Formdict['model.form.alignLeft']
+        text: '宸﹀榻�'
       }, {
         value: 'center',
-        text: Formdict['model.form.alignCenter']
+        text: '灞呬腑'
       }, {
         value: 'right',
-        text: Formdict['model.form.alignRight']
+        text: '鍙冲榻�'
       }]
     },
+    // {
+    //   type: 'radio',
+    //   key: 'sum',
+    //   label: '鏄剧ず鍚堣',
+    //   initVal: card.sum || 'false',
+    //   tooltip: '鍚堣淇℃伅鍙湪浣跨敤绯荤粺鏁版嵁婧愭椂鏈夋晥銆�',
+    //   required: false,
+    //   options: [{
+    //     value: 'true',
+    //     text: '鏄�'
+    //   }, {
+    //     value: 'false',
+    //     text: '鍚�'
+    //   }]
+    // },
     {
       type: 'radio',
       key: 'editable',
@@ -138,40 +193,279 @@
       }]
     },
     {
+      type: 'radio',
+      key: 'editType',
+      label: '缂栬緫绫诲瀷',
+      initVal: card.editType || 'text',
+      required: true,
+      options: [{
+        value: 'text',
+        text: '鏂囨湰'
+      }, {
+        value: 'select',
+        text: '涓嬫媺'
+      }, {
+        value: 'switch',
+        text: '寮�鍏�'
+      }]
+    },
+    {
+      type: 'text',
+      key: 'initval',
+      label: '榛樿鍊�',
+      initVal: card.initval,
+      tooltip: '浣跨敤$copy鏃讹紝琛ㄧず鏂板鏃跺鍒朵笂涓�琛屼俊鎭��',
+      required: false
+    },
+    {
+      type: 'text',
+      key: 'openVal',
+      label: '寮�鍚��',
+      initVal: card.openVal || '',
+      required: false
+    },
+    {
+      type: 'text',
+      key: 'closeVal',
+      label: '鍏抽棴鍊�',
+      initVal: card.closeVal || '',
+      required: false
+    },
+    {
+      type: 'text',
+      key: 'openText',
+      label: '寮�鍚彁绀�',
+      initVal: card.openText || '',
+      required: false
+    },
+    {
+      type: 'text',
+      key: 'closeText',
+      label: '鍏抽棴鎻愮ず',
+      initVal: card.closeText || '',
+      required: false
+    },
+    {
+      type: 'radio',
+      key: 'resourceType',
+      label: '閫夐」鏉ユ簮',
+      initVal: card.resourceType || '0',
+      required: true,
+      options: [{
+        value: '0',
+        text: '鑷畾涔�'
+      }, {
+        value: '1',
+        text: '鏁版嵁婧�'
+      }]
+    },
+    {
+      type: 'select',
+      key: 'editField',
+      label: '缂栬緫瀛楁',
+      initVal: card.editField || '',
+      tooltip: '褰撳�间笌鎻愮ず鏂囧瓧涓嶅悓鏃讹紝鍙澶栨坊鍔犵紪杈戝瓧娈碉紝浣滀负瀹為檯鍊肩殑褰曞叆瀛楁銆�',
+      allowClear: true,
+      required: false,
+      options: fields
+    },
+    {
+      type: 'options',
+      key: 'options',
+      label: '閫夐」',
+      initVal: card.options || [],
+      required: true,
+    },
+    {
+      type: 'codemirror',
+      key: 'dataSource',
+      label: '鏁版嵁婧�',
+      initVal: card.dataSource || '',
+      required: true,
+    },
+    {
+      type: 'text',
+      key: 'valueField',
+      label: '鍊悸峰瓧娈�',
+      initVal: card.valueField || '',
+      required: true,
+    },
+    {
+      type: 'text',
+      key: 'valueText',
+      label: '鏂囨湰路瀛楁',
+      initVal: card.valueText || '',
+      required: true,
+    },
+    {
+      type: 'text',
+      key: 'orderBy',
+      label: '鎺掑簭路瀛楁',
+      initVal: card.orderBy || '',
+      required: false,
+    },
+    {
+      type: 'select',
+      key: 'orderType',
+      label: '鎺掑簭鏂瑰紡',
+      initVal: card.orderType || 'asc',
+      options: [{
+        value: 'asc',
+        text: '姝e簭'
+      }, {
+        value: 'desc',
+        text: '鍊掑簭'
+      }]
+    },
+    {
+      type: 'text',
+      key: 'disableField',
+      label: '绂佺敤路瀛楁',
+      initVal: card.disableField || '',
+      tooltip: '璁剧疆绂佺敤瀛楁锛屼笖瀛楁鍊间负true鏃讹紝閫夐」涓嶅彲閫夈��',
+      required: false,
+    },
+    {
+      type: 'radio',
+      key: 'dropdown',
+      label: '涓嬫媺瀹藉害',
+      initVal: card.dropdown || 'flex',
+      required: false,
+      options: [{
+        value: 'flex',
+        text: '鑷�傚簲'
+      }, {
+        value: 'fixed',
+        text: '瀹氬'
+      }]
+    },
+    {
+      type: 'radio',
+      key: 'required',
+      label: '蹇呭~',
+      initVal: card.required || 'false',
+      required: false,
+      options: [{
+        value: 'false',
+        text: '鍚�'
+      }, {
+        value: 'true',
+        text: '鏄�'
+      }]
+    },
+    {
+      type: 'radio',
+      key: 'database',
+      label: '鏁版嵁搴�',
+      initVal: card.database || 'local',
+      options: [{
+        value: 'local',
+        text: '鏈湴'
+      }, {
+        value: 'sso',
+        text: '绯荤粺'
+      }]
+    },
+    {
+      type: 'select',
+      key: 'enter',
+      label: '鍥炶溅鍒囨崲',
+      initVal: card.enter || '$next',
+      tooltip: '鍖呮嫭鏂囨湰鎴栨暟鍊煎洖杞︿簨浠躲�佷笅鎷夎彍鍗曢�変腑浜嬩欢銆佸紑鍏冲垏鎹簨浠躲��',
+      options: editCols
+    },
+    {
+      type: 'select',
+      key: 'ctrlField',
+      label: '绂佺敤瀛楁',
+      initVal: card.ctrlField || '',
+      tooltip: '鎺у埗鍗曞厓鏍兼槸鍚﹀彲浠ョ紪杈戙��',
+      allowClear: true,
+      required: false,
+      options: fields
+    },
+    {
+      type: 'text',
+      key: 'ctrlValue',
+      label: '绂佺敤鍊�',
+      initVal: card.ctrlValue || '',
+      tooltip: '澶氫釜鍊肩敤閫楀彿鍒嗛殧銆�',
+      required: false
+    },
+    // {
+    //   type: 'radio',
+    //   key: 'footEnter',
+    //   label: '鏈鍥炶溅',
+    //   initVal: card.footEnter || 'false',
+    //   tooltip: '鏂板鍔熻兘浠呭湪琛ㄦ牸鍙柊澧炴椂鏈夋晥銆�',
+    //   options: [{
+    //     value: 'sub',
+    //     text: '鎻愪氦'
+    //   }, {
+    //     value: 'add',
+    //     text: '鏂板'
+    //   }, {
+    //     value: 'false',
+    //     text: '鏃犲姩浣�'
+    //   }]
+    // },
+    {
       type: 'number',
       key: 'decimal',
       min: 0,
       max: 18,
-      decimal: 0,
-      label: Formdict['header.form.decimal'],
+      precision: 0,
+      label: '灏忔暟浣�',
       initVal: card.decimal || 0,
-      required: true
+      required: false
+    },
+    {
+      type: 'number',
+      key: 'min',
+      label: '鏈�灏忓��',
+      initVal: card.min,
+      unlimit: true,
+      required: false
+    },
+    {
+      type: 'number',
+      key: 'max',
+      label: '鏈�澶у��',
+      initVal: card.max,
+      unlimit: true,
+      required: false
     },
     {
       type: 'select',
       key: 'format',
-      label: Formdict['header.form.format'],
+      label: '鏍煎紡鍖�',
       initVal: card.format || 'none',
       options: [{
         value: 'none',
-        text: Formdict['model.empty']
+        text: '鏃�'
       }, {
         value: 'thdSeparator',
-        text: Formdict['header.form.thdSeparator']
+        text: '鍗冨垎浣�'
       }, {
         value: 'percent',
         text: '鐧惧垎姣�'
+      }, {
+        value: 'abs',
+        text: '缁濆鍊�'
       }],
       required: false
     },
     {
       type: 'select',
       key: 'textFormat',
-      label: Formdict['header.form.format'],
+      label: '鏍煎紡鍖�',
       initVal: card.textFormat || 'none',
       options: [{
         value: 'none',
-        text: Formdict['model.empty']
+        text: '鏃�'
+      }, {
+        value: 'encryption',
+        text: '鍔犲瘑'
       }, {
         value: 'YYYY-MM-DD',
         text: 'YYYY-MM-DD'
@@ -184,23 +478,65 @@
     {
       type: 'text',
       key: 'prefix',
-      label: Formdict['header.form.prefix'],
+      label: '鍓嶇紑',
       initVal: card.prefix || '',
       required: false,
-      readonly: false
     },
     {
       type: 'text',
       key: 'postfix',
-      label: Formdict['header.form.postfix'],
+      label: '鍚庣紑',
       initVal: card.postfix || '',
       required: false,
-      readonly: false
+    },
+    {
+      type: 'radio',
+      key: 'eval',
+      label: '瑙f瀽',
+      initVal: card.eval || 'false',
+      tooltip: '褰撳叕寮忓唴瀹规秹鍙婅绠楁椂璇烽�夋嫨鈥滄槸鈥濓紝褰撳叕寮忓唴瀹逛负瀛楁鎷兼帴鏃惰閫夋嫨鈥滃惁鈥濄��',
+      required: false,
+      options: [
+        { value: 'true', text: '鏄�' },
+        { value: 'false', text: '鍚�' }
+      ]
+    },
+    {
+      type: 'textarea',
+      key: 'formula',
+      label: '鍏紡',
+      initVal: card.formula || '',
+      tooltip: '鎵ц鏃朵細浣跨敤鏌ヨ鍒扮殑鏁版嵁鏇挎崲鐩稿簲鐨勫瓧娈碉紝灞曠ず鑾峰緱鐨勭粨鏋滐紝鍦ㄤ笉浣跨敤瑙f瀽鏃舵崲琛岀鎴栫┖鏍间細鏇挎崲涓洪〉闈㈠厓绱犮�傚彲浣跨敤JS鐨勪竴浜涜娉曪紝濡傦細涓夊厓琛ㄨ揪寮� @field1@ > @field2@ ? 0 : 1锛汳ath瀵硅薄锛屽彇缁濆鍊� Math.abs(@field@)銆佸洓鑸嶄簲鍏� Math.round(@field@)绛�',
+      placeholder: '渚嬪锛欯price@ * @number@',
+      required: true
+    },
+    {
+      type: 'multiselect',
+      key: 'linkSubField',
+      label: '濉厖琛ㄥ崟',
+      tooltip: '鍦ㄥ垏鎹㈤�夐」鏃朵細鎶婁俊鎭嚜鍔ㄥ~鍏ュ叧鑱旂殑瀛楁涓��',
+      initVal: card.linkSubField || [],
+      options: fields
+    },
+    {
+      type: 'radio',
+      key: 'noValue',
+      label: '绌哄��',
+      initVal: card.noValue || 'show',
+      tooltip: '褰撳�间负0鏃舵槸鍚︽樉绀�',
+      required: false,
+      options: [{
+        value: 'show',
+        text: '鏄剧ず'
+      }, {
+        value: 'hide',
+        text: '闅愯棌'
+      }]
     },
     {
       type: 'multiselect',
       key: 'blacklist',
-      label: Formdict['header.form.blacklist'],
+      label: '榛戝悕鍗�',
       initVal: card.blacklist || [],
       required: false,
       options: roleList

--
Gitblit v1.8.0