From 0eb129a9beddbb86ae74d7106a8e60823206b8d5 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 14 十二月 2023 11:29:15 +0800
Subject: [PATCH] 2023-12-14

---
 src/components/normalform/modalform/index.jsx |   41 ++++++++++++++++++++++++-----------------
 1 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/src/components/normalform/modalform/index.jsx b/src/components/normalform/modalform/index.jsx
index 2b9b80c..aafd7bf 100644
--- a/src/components/normalform/modalform/index.jsx
+++ b/src/components/normalform/modalform/index.jsx
@@ -7,6 +7,7 @@
 import asyncComponent from '@/utils/asyncComponent'
 import MKEInput from './mkInput'
 import MKNumberInput from './mkNumberInput'
+import MKEmitter from '@/utils/events.js'
 import MKSelect from './mkSelect'
 import './index.scss'
 
@@ -17,14 +18,16 @@
 const MKCheckbox = asyncComponent(() => import('./mkCheckbox'))
 const StyleInput = asyncComponent(() => import('./styleInput'))
 const MKFileUpload = asyncComponent(() => import('@/tabviews/zshare/fileupload'))
-const MKColor = asyncComponent(() => import('@/tabviews/zshare/mutilform/mkColor'))
+const MKColor = asyncComponent(() => import('@/mob/colorsketch'))
+// const MKColor = asyncComponent(() => import('@/tabviews/zshare/mutilform/mkColor'))
 const MkEditIcon = asyncComponent(() => import('@/components/mkIcon'))
 const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent'))
 
 class ModalForm extends Component {
   static propTpyes = {
-    formlist: PropTypes.array,   // 琛ㄥ崟鍒楄〃
-    inputSubmit: PropTypes.func  // input鍥炶溅鎻愪氦
+    formlist: PropTypes.array,
+    inputSubmit: PropTypes.func,
+    transVals: PropTypes.func,
   }
 
   state = {
@@ -70,7 +73,7 @@
           required: item.required,
           message: item.label + '涓嶅彲涓虹┖!'
         }, {
-          validator: (rule, value, callback) => this.handleConfirmPassword(rule, value, callback, item)
+          validator: (rule, value, callback) => this.checkNumber(rule, value, callback, item)
         }]
       } else if (item.type === 'textarea') {
         item.rules = [
@@ -108,7 +111,7 @@
       let supItem = fieldMap.get(key)
       let supval = supItem.initval
 
-      if (supItem.initval && supItem.type !== 'checkbox' && JSON.stringify(supItem.initval) === '[]') {
+      if (supval && JSON.stringify(supval) === '[]') {
         supval = ''
       }
 
@@ -124,13 +127,13 @@
 
         } else if (supItem.hidden) {
           cell.hidden = true
-        } else if (supItem.type === 'checkbox') {
-          let vals = [...supval, ...item.values]
+        } else if (item.notNull) {
+          cell.hidden = !supval
+        } else if (supItem.type === 'checkbox' || supItem.type === 'multiselect') {
+          let vals = [...(supval || []), ...item.values]
           if (vals.length === new Set(vals).size) {
             cell.hidden = true
           }
-        } else if (item.notNull) {
-          cell.hidden = !supval
         } else if (!item.values.includes(supval)) {
           cell.hidden = true
         }
@@ -162,7 +165,7 @@
     this.setState({ formlist })
   }
 
-  handleConfirmPassword = (rule, value, callback, item) => {
+  checkNumber = (rule, value, callback, item) => {
     let val = parseFloat(value)
 
     if (!isNaN(val)) {
@@ -179,6 +182,10 @@
     this.record = {...this.record, ...values}
 
     if (!item) return
+
+    if (item.$trans) {
+      this.props.transVals && this.props.transVals(values, item.field)
+    }
     
     if (item.controlFields) {
       let map = new Map()
@@ -190,7 +197,7 @@
       let reset = (current) => {
         let val = this.record[current.field]
 
-        if (val && current.type !== 'checkbox' && JSON.stringify(val) === '[]') {
+        if (val && JSON.stringify(val) === '[]') {
           val = ''
         }
 
@@ -199,15 +206,15 @@
 
           if (current.hidden) {
             m.hidden = true
-          } else if (current.type === 'checkbox') {
-            let vals = [...val, ...cell.values]
+          } else if (cell.notNull) {
+            m.hidden = !val
+          } else if (current.type === 'checkbox' || current.type === 'multiselect') {
+            let vals = [...(val || []), ...cell.values]
             if (vals.length !== new Set(vals).size) {
               m.hidden = false
             } else {
               m.hidden = true
             }
-          } else if (cell.notNull) {
-            m.hidden = !val
           } else {
             m.hidden = !cell.values.includes(val)
           }
@@ -248,7 +255,7 @@
         map.set(cell.field, cell)
       })
 
-      item.callback(map, this.record)
+      item.callback(map, this.record, MKEmitter)
 
       this.setState({
         formlist: this.state.formlist.map(cell => {
@@ -281,7 +288,7 @@
       } else if (item.type === 'select' || item.type === 'multiselect') {
         content = (<MKSelect config={item} onChange={(val, other) => this.recordChange({[item.field]: val, ...other}, item)} />)
       } else if (item.type === 'color') {
-        content = (<MKColor config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>)
+        content = (<MKColor config={item} allowClear={item.allowClear} onChange={(val) => this.recordChange({[item.field]: val})}/>)
       } else if (item.type === 'styleInput') {
         content = (<StyleInput config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>)
       } else if (item.type === 'radio') {

--
Gitblit v1.8.0