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 |   74 +++++++++++++++++++++++++------------
 1 files changed, 50 insertions(+), 24 deletions(-)

diff --git a/src/templates/zshare/modalform/datatable/index.jsx b/src/templates/zshare/modalform/datatable/index.jsx
index ec8b5a1..8f3e62b 100644
--- a/src/templates/zshare/modalform/datatable/index.jsx
+++ b/src/templates/zshare/modalform/datatable/index.jsx
@@ -6,9 +6,11 @@
 import { PlusOutlined, EditOutlined, DeleteOutlined, SwapOutlined } from '@ant-design/icons'
 
 import Utils from '@/utils/utils.js'
-import FileUpload from '@/tabviews/zshare/fileupload'
+import asyncComponent from '@/utils/asyncComponent'
+// import FileUpload from '@/tabviews/zshare/fileupload'
 import './index.scss'
 
+const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent'))
 const EditableContext = React.createContext()
 let dragingIndex = -1
 
@@ -73,12 +75,13 @@
   getInput = (form) => {
     const { inputType, record } = this.props
     if (inputType === 'file') {
-      return <FileUpload config={{
-        initval: record ? (record.$url || '') : '',
-        suffix: '',
-        maxfile: 1,
-        fileType: 'picture-card'
-      }}/>
+      return <SourceComponent initialValue={record ? (record.$url || '') : ''} type="" placement="right"/>
+      // return <FileUpload config={{
+      //   initval: record ? (record.$url || '') : '',
+      //   suffix: '',
+      //   maxfile: 1,
+      //   fileType: 'picture-card'
+      // }}/>
     } else {
       return <Input onPressEnter={() => this.getValue(form)} />
     }
@@ -143,7 +146,6 @@
 
 class EdiDataTable extends Component {
   static propTpyes = {
-    dict: PropTypes.object,         // 瀛楀吀椤�
     transfield: PropTypes.object,   // 瀛楁鍚嶇О
     type: PropTypes.string,         // 鏄惁涓哄叧鑱旇〃鍗�
     display: PropTypes.string,      // 鏁版嵁绫诲瀷锛屾枃鏈�佸浘鐗�
@@ -172,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: ''}, () => {
@@ -183,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,16 +202,27 @@
           return <span style={{display: 'block', width: '70px', height: '70px'}}><img style={{width: '100%', height: '100%'}} src={text} alt="" /></span>
         }
       })
-    } else {
-      columns = fields.map(item => {
-        keys.push(item.field)
-        return {
-          title: item.field,
-          dataIndex: item.field,
-          editable: true,
+    } 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>
         }
       })
     }
+
+    fields.forEach(item => {
+      keys.push(item.field)
+      columns.push({
+        title: item.field,
+        dataIndex: item.field,
+        editable: true,
+      })
+    })
 
     if (linkSubFields.length > 0) {
       linkSubFields.forEach(m => {
@@ -227,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({
@@ -261,7 +283,7 @@
             <span className="hide-control" title="鏄剧ず/闅愯棌" onClick={() => {editingKey === '' && this.handleHide(record.key)}}><SwapOutlined /></span>
             {editingKey === '' ? <Popconfirm
               overlayClassName="popover-confirm"
-              title={this.props.dict['model.query.delete']}
+              title="纭畾鍒犻櫎鍚�?"
               onConfirm={() => this.handleDelete(record.key)
             }>
               <span className="danger"><DeleteOutlined /></span>
@@ -369,11 +391,13 @@
 
     if (display === 'picture') {
       item.$url = ''
-    } else {
-      fields.forEach(f => {
-        item[f.field] = `${this.state.data.length + 1}`
-      })
+    } else if (display === 'color') {
+      item.$color = ''
     }
+
+    fields.forEach(f => {
+      item[f.field] = `${this.state.data.length + 1}`
+    })
 
     let data = [...this.state.data, item]
 
@@ -416,6 +440,8 @@
   }
 
   render() {
+    const { display, fields } = this.props
+
     const components = {
       body: {
         row: DragableBodyRow,
@@ -441,9 +467,9 @@
     })
 
     let addable = false
-    if (this.props.display === 'picture') {
+    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