From d52169be5ed98d6846bb07f75e5a305271e374d4 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 27 四月 2023 18:07:05 +0800
Subject: [PATCH] 2023-04-27

---
 src/menu/components/table/edit-table/columns/editColumn/index.jsx |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/menu/components/table/edit-table/columns/editColumn/index.jsx b/src/menu/components/table/edit-table/columns/editColumn/index.jsx
index 00c47c3..ed167a3 100644
--- a/src/menu/components/table/edit-table/columns/editColumn/index.jsx
+++ b/src/menu/components/table/edit-table/columns/editColumn/index.jsx
@@ -16,7 +16,7 @@
   text: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'prefix', 'postfix', 'textFormat', 'editable', 'initval', 'blacklist'],
   number: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'decimal', 'format', 'prefix', 'postfix', 'editable', 'initval', 'sum', 'blacklist'],
   textarea: ['label', 'field', 'type', 'Align', 'Hide', 'Width', 'prefix', 'initval', 'postfix', 'blacklist'],
-  custom: ['label', 'type', 'Align', 'Hide', 'Width', 'blacklist'],
+  custom: ['label', 'type', 'Align', 'Width', 'blacklist'],
   colspan: ['label', 'type', 'Align', 'Hide', 'blacklist'],
   action: ['label', 'type', 'Align', 'Width'],
   formula: ['label', 'type', 'Align', 'Hide', 'Width', 'prefix', 'postfix', 'eval', 'formula', 'blacklist'],
@@ -60,6 +60,10 @@
     let _options = fromJS(columnTypeOptions[this.column.type]).toJS()
 
     if (this.column.editable === 'true') {
+      _options.push('ctrlField')
+      if (this.column.ctrlField) {
+        _options.push('ctrlValue')
+      }
       if (this.column.type === 'text') {
         _options.push('editType')
 
@@ -124,6 +128,11 @@
     if (key === 'type') {
       let _options = this.getOptions()
 
+      let _field = ''
+      if (value === 'formula') {
+        _field = this.props.form.getFieldValue('field') || ''
+      }
+
       this.setState({
         formlist: this.state.formlist.map(item => {
           item.initVal = this.column[item.key] || item.initVal
@@ -134,6 +143,8 @@
       }, () => {
         if (value === 'action' || value === 'colspan') {
           this.props.form.setFieldsValue({Align: 'center'})
+        } else if (value === 'formula' && _field) {
+          this.props.form.setFieldsValue({formula: '@' + _field + '@'})
         }
       })
     } else if (key === 'field') {
@@ -170,7 +181,7 @@
       }
     } else if (key === 'format' && value === 'percent') {
       this.props.form.setFieldsValue({postfix: '%'})
-    } else if (key === 'editable' || key === 'editType' || key === 'resourceType') {
+    } else if (key === 'editable' || key === 'editType' || key === 'resourceType' || key === 'ctrlField') {
       let _options = this.getOptions()
 
       this.setState({

--
Gitblit v1.8.0