From da64ab0923bf8817fc8599a6e37b953ce38f64c8 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 27 八月 2023 18:37:36 +0800
Subject: [PATCH] 2023-08-27

---
 src/templates/zshare/modalform/datatable/index.jsx |   32 ++++++++++++++++++++++++++++----
 1 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/src/templates/zshare/modalform/datatable/index.jsx b/src/templates/zshare/modalform/datatable/index.jsx
index 7492418..8f3e62b 100644
--- a/src/templates/zshare/modalform/datatable/index.jsx
+++ b/src/templates/zshare/modalform/datatable/index.jsx
@@ -174,6 +174,7 @@
       !is(fromJS(this.props.fields), fromJS(nextProps.fields)) ||
       !is(fromJS(this.props.linkSubFields), fromJS(nextProps.linkSubFields)) ||
       this.props.display !== nextProps.display ||
+      (nextProps.multiple && this.props.multiple !== nextProps.multiple) ||
       this.props.type !== nextProps.type
     ) {
       this.setState({editingKey: ''}, () => {
@@ -185,9 +186,9 @@
   }
 
   getCloumns = () => {
-    const { display, fields, linkSubFields, transfield, type } = this.props
+    const { display, fields, linkSubFields, transfield, type, multiple } = this.props
     let columns = []
-    let keys = ['ParentID']
+    let keys = ['ParentID', 'pid']
 
     if (display === 'picture') {
       columns.push({
@@ -199,6 +200,17 @@
         render: (text) => {
           if (!text) return ''
           return <span style={{display: 'block', width: '70px', height: '70px'}}><img style={{width: '100%', height: '100%'}} src={text} alt="" /></span>
+        }
+      })
+    } else if (display === 'color') {
+      columns.push({
+        title: 'Color',
+        dataIndex: '$color',
+        inputType: 'text',
+        editable: true,
+        render: (text) => {
+          if (!text) return ''
+          return <div style={{height: '20px', background: text}}></div>
         }
       })
     }
@@ -229,6 +241,14 @@
       dataIndex: '$value',
       editable: true,
     })
+
+    if (multiple === 'dropdown' && display === 'text') {
+      columns.unshift({
+        title: 'pid',
+        dataIndex: 'pid',
+        editable: true,
+      })
+    }
 
     if (type === 'link') {
       columns.unshift({
@@ -371,6 +391,8 @@
 
     if (display === 'picture') {
       item.$url = ''
+    } else if (display === 'color') {
+      item.$color = ''
     }
 
     fields.forEach(f => {
@@ -418,6 +440,8 @@
   }
 
   render() {
+    const { display, fields } = this.props
+
     const components = {
       body: {
         row: DragableBodyRow,
@@ -443,9 +467,9 @@
     })
 
     let addable = false
-    if (this.props.display === 'picture' || this.props.display === 'color') {
+    if (display === 'picture' || display === 'color') {
       addable = true
-    } else if (this.props.fields && this.props.fields.length > 0) {
+    } else if (fields && fields.length > 0) {
       addable = true
     }
 

--
Gitblit v1.8.0