From 80deba0c2dcffd9e6b6f07815c7c52199309ce42 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 23 六月 2025 17:36:03 +0800
Subject: [PATCH] 2025-06-23

---
 src/tabviews/custom/components/table/edit-table/normalTable/index.jsx |  120 ++++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 88 insertions(+), 32 deletions(-)

diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx
index 6e3aeef..c65b69c 100644
--- a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx
+++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx
@@ -20,7 +20,6 @@
 
 class MkSwitch extends Component {
   static propTpyes = {
-    autoFocus: PropTypes.bool,
     defaultValue: PropTypes.any,
     config: PropTypes.object,
     onChange: PropTypes.func
@@ -78,12 +77,10 @@
     if (config.$ctrl) {
       MKEmitter.emit('colBlur' + config.tableId, lineId, config.uuid)
     }
-
-    this.props.onBlur && this.props.onBlur()
   }
 
   render() {
-    const { config, autoFocus } = this.props
+    const { config } = this.props
     const { status } = this.state
 
     return (
@@ -91,7 +88,6 @@
         ref={ref => this.node = ref}
         checkedChildren={config.openText}
         checked={status}
-        autoFocus={autoFocus}
         onFocus={this.onFocus}
         onBlur={this.onBlur}
         unCheckedChildren={config.closeText}
@@ -627,6 +623,10 @@
     let style = {}
     let className = ''
 
+    if (data && data.$disabled) {
+      className = className + ' mk-disabled '
+    }
+
     lineMarks && lineMarks.some(mark => {
       let originVal = data[mark.field[0]] + ''
       let contrastVal = ''
@@ -763,7 +763,7 @@
         content = `${record[col.field]}`
       }
 
-      if (col.editType === 'select' && col.options.length > 0) {
+      if (col.editType === 'select' && col.showValue !== 'value' && col.options.length > 0) {
         content = col.map.get(content) || content
       } else if (col.editType === 'switch') {
         if (content === col.openVal) {
@@ -820,16 +820,17 @@
       }
 
       if (col.editable === 'true' && !disabled) {
-        if (editing) {
+        if (col.editType === 'switch') {
+          let _value = record[col.field] !== undefined ? record[col.field] : ''
+          return (<td onClick={(e) => e.stopPropagation()} className="editing_table_cell">
+            <MkSwitch config={col} lineId={record.$$uuid} defaultValue={_value} onChange={this.onColChange}/>
+          </td>)
+        } else if (editing) {
           let _value = record[col.field] !== undefined ? record[col.field] : ''
 
           if (!col.editType || col.editType === 'text') {
             return (<td onClick={(e) => e.stopPropagation()} className="editing_table_cell">
               <MkInput config={col} lineId={record.$$uuid} defaultValue={_value} autoFocus={true} onChange={this.onColChange} onBlur={() => this.setState({editing: false})}/>
-            </td>)
-          } else if (col.editType === 'switch') {
-            return (<td onClick={(e) => e.stopPropagation()} className="editing_table_cell">
-              <MkSwitch config={col} lineId={record.$$uuid} defaultValue={_value} autoFocus={true} onChange={this.onColChange} onBlur={() => this.setState({editing: false})}/>
             </td>)
           } else if (col.editType === 'date') {
             return (<td onClick={(e) => e.stopPropagation()} className="editing_table_cell">
@@ -964,6 +965,15 @@
           content = ''
         }
       } else {
+        if (col.eval === 'false' && col.noValue === 'hide') { // 绌哄�奸殣钘�
+          Object.keys(record).forEach(key => {
+            if (/^\$/.test(key)) return
+            if (record[key]) return
+
+            content = content.replace(new RegExp('[^@]*@' + key + '@', 'ig'), '')
+          })
+        }
+
         Object.keys(record).forEach(key => {
           let reg = new RegExp('@' + key + '@', 'ig')
           content = content.replace(reg, record[key])
@@ -1090,7 +1100,7 @@
           )
         } else if (col.editType === 'switch') {
           children = (
-            <MkSwitch config={col} lineId={record.$$uuid} defaultValue={_value} autoFocus={false} onChange={this.onColChange}/>
+            <MkSwitch config={col} lineId={record.$$uuid} defaultValue={_value} onChange={this.onColChange}/>
           )
         } else if (col.editType === 'date') {
           children = (
@@ -1116,7 +1126,7 @@
           content = `${record[col.field]}`
         }
 
-        if (col.editType === 'select' && col.options.length > 0) {
+        if (col.editType === 'select' && col.showValue !== 'value' && col.options.length > 0) {
           content = col.map.get(content) || content
         } else if (col.editType === 'switch') {
           if (content === col.openVal) {
@@ -1210,6 +1220,9 @@
           }
           if (col.format === 'percent') {
             content = content * 100
+            if (!col.round) {
+              content = +content.toFixed(2)
+            }
           } else if (col.format === 'abs') {
             content = Math.abs(content)
           }
@@ -1283,6 +1296,15 @@
           content = ''
         }
       } else {
+        if (col.eval === 'false' && col.noValue === 'hide') { // 绌哄�奸殣钘�
+          Object.keys(record).forEach(key => {
+            if (/^\$/.test(key)) return
+            if (record[key]) return
+
+            content = content.replace(new RegExp('[^@]*@' + key + '@', 'ig'), '')
+          })
+        }
+        
         Object.keys(record).forEach(key => {
           let reg = new RegExp('@' + key + '@', 'ig')
           content = content.replace(reg, record[key])
@@ -1965,7 +1987,7 @@
       deffers.push(
         new Promise(resolve => {
           Api.getSystemCacheConfig(param, false).then(res => {
-            if (!res.status) {
+            if (!res.status && res.ErrCode !== '-2') {
               notification.warning({
                 top: 92,
                 message: res.message,
@@ -2004,7 +2026,7 @@
       deffers.push(
         new Promise(resolve => {
           Api.getSystemCacheConfig(mainparam, false).then(res => {
-            if (!res.status) {
+            if (!res.status && res.ErrCode !== '-2') {
               notification.warning({
                 top: 92,
                 message: res.message,
@@ -2099,7 +2121,7 @@
     deffers = deffers.map(item => {
       return new Promise(resolve => {
         Api.getSystemCacheConfig(item, false).then(res => {
-          if (!res.status) {
+          if (!res.status && res.ErrCode !== '-2') {
             notification.warning({
               top: 92,
               message: res.message,
@@ -2118,6 +2140,12 @@
       delete result.ErrMesg
       delete result.message
       delete result.status
+
+      this.props.columns.forEach(item => {
+        if (item.arr_field && result[item.field]) {
+          result[item.uuid] = result[item.field]
+        }
+      })
 
       this.resetFormList(result)
     })
@@ -2484,7 +2512,7 @@
     if (setting.supModule && !BID) {
       notification.warning({
         top: 92,
-        message: dict['sup_key_req'] || '闇�瑕佷笂绾т富閿�硷紒',
+        message: setting.supModTip || dict['sup_key_req'] || '闇�瑕佷笂绾т富閿�硷紒',
         duration: 5
       })
 
@@ -2520,7 +2548,7 @@
         this.execError({})
       })
     } else if (submit.intertype === 'system') { // 绯荤粺瀛樺偍杩囩▼
-      let result = getEditTableSql(submit, data, forms)
+      let result = getEditTableSql(submit, data, forms, setting)
       let param = {}
 
       param.func = 'sPC_TableData_InUpDe'
@@ -2549,7 +2577,7 @@
         this.execError({})
       })
     } else if (submit.intertype === 'inner' && submit.innerFunc) { // 鑷畾涔夊瓨鍌ㄨ繃绋�
-      let result = getEditTableSql(submit, data, forms)
+      let result = getEditTableSql(submit, data, forms, setting)
       let param = {}
 
       param.func = submit.innerFunc
@@ -2604,7 +2632,11 @@
     let lines = data.map(item => {
       let vals = []
       forms.forEach(col => {
-        vals.push(item[col.field])
+        if (typeof(item[col.field]) === 'number') {
+          vals.push(item[col.field] + '')
+        } else {
+          vals.push(item[col.field])
+        }
       })
   
       vals.push(item.$$uuid)
@@ -2742,24 +2774,48 @@
   /**
    * @description 閫変腑琛�
    */
-  onSelectChange = selectedRowKeys => {
-    this.setState({ selectedRowKeys })
+  onSelectChange = (selectedRowKeys, keys) => {
+    const { setting } = this.props
 
-    let activeId = ''
-    if (selectedRowKeys.length > 0) {
-      activeId = selectedRowKeys.slice(-1)[0]
+    if (setting.controlField && selectedRowKeys.length > 0) {
+      let newkeys = keys.filter(item => !item.$disabled).map(item => item.$$uuid)
+
+      this.setState({ selectedRowKeys: newkeys })
+      let activeId = ''
+      if (newkeys.length > 0) {
+        activeId = newkeys.slice(-1)[0]
+      }
+      this.changedata(activeId)
+      this.selectdata(newkeys)
+    } else {
+      this.setState({ selectedRowKeys })
+      let activeId = ''
+      if (selectedRowKeys.length > 0) {
+        activeId = selectedRowKeys.slice(-1)[0]
+      }
+      this.changedata(activeId)
+      this.selectdata(selectedRowKeys)
     }
-    this.changedata(activeId)
-    this.selectdata(selectedRowKeys)
+
+    // this.setState({ selectedRowKeys })
+
+    // let activeId = ''
+    // if (selectedRowKeys.length > 0) {
+    //   activeId = selectedRowKeys.slice(-1)[0]
+    // }
+    // this.changedata(activeId)
+    // this.selectdata(selectedRowKeys)
   }
 
   /**
    * @description 鐐瑰嚮鏁磋锛岃Е鍙戝垏鎹紝 鍒ゆ柇鏄惁鍙�夛紝鍗曢�夋垨澶氶�夛紝杩涜瀵瑰簲鎿嶄綔
    */
-  changeRow = (id) => {
+  changeRow = (record) => {
     const { setting } = this.props
 
-    if (!setting.tableType) return
+    if (!setting.tableType || record.$disabled) return
+    
+    let id = record.$$uuid
     
     let newkeys = fromJS(this.state.selectedRowKeys).toJS()
 
@@ -2899,7 +2955,7 @@
         {setting.hasSubmit && edData.length > 0 ? <div className="edit-custom-table-btn-wrap" style={submit.wrapStyle}>
           <Button style={submit.style} onClick={() => setTimeout(() => {this.submit()}, 10)} loading={loading} className="submit-table" type="link">{dict['submit'] || '鎻愪氦'}</Button>
         </div> : null}
-        <div className={`edit-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-table-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} style={style}>
+        <div className={`edit-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-table-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'} ${setting.empSign === 'hidden' ? 'mk-empty-hide' : ''}`} style={style}>
           <Table
             rowKey="$$uuid"
             components={components}
@@ -2910,12 +2966,12 @@
             dataSource={_data}
             loading={this.props.loading}
             scroll={{ x: '100%', y: height }}
-            onRow={(record, index) => {
+            onRow={(record, _) => {
               return {
                 lineMarks,
                 title: setting.tipField ? record[setting.tipField] : '',
                 data: record,
-                onClick: () => {this.changeRow(record.$$uuid)},
+                onClick: () => {this.changeRow(record)},
               }
             }}
             onChange={this.changeTable}

--
Gitblit v1.8.0