From d60b7cb67fa044dcd55470a7729a7e12d5154873 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 20 一月 2023 17:01:35 +0800
Subject: [PATCH] 2023-01-20

---
 src/tabviews/custom/components/card/table-card/index.jsx  |    2 
 src/tabviews/zshare/mutilform/mkCheckCard/index.jsx       |   30 ++++++++++++++
 src/menu/components/card/data-card/options.jsx            |   13 ++++++
 src/tabviews/custom/components/card/data-card/index.scss  |    5 ++
 src/tabviews/custom/components/card/data-card/index.jsx   |    5 ++
 src/tabviews/custom/components/card/table-card/index.scss |    7 +++
 6 files changed, 60 insertions(+), 2 deletions(-)

diff --git a/src/menu/components/card/data-card/options.jsx b/src/menu/components/card/data-card/options.jsx
index 49358f7..a01a35f 100644
--- a/src/menu/components/card/data-card/options.jsx
+++ b/src/menu/components/card/data-card/options.jsx
@@ -282,6 +282,19 @@
     },
     {
       type: 'radio',
+      field: 'parity',
+      label: '濂囧伓鑳屾櫙',
+      initval: wrap.parity || 'false',
+      tooltip: '鍋舵暟琛屼細娣诲姞鑳屾櫙鑹层��',
+      required: false,
+      options: [
+        {value: 'false', label: '鏃�'},
+        {value: 'true', label: '鏈�'},
+      ],
+      forbid: subtype === 'propcard'
+    },
+    {
+      type: 'radio',
       field: 'printType',
       label: '缁勪欢绫诲瀷',
       initval: wrap.printType || 'content',
diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx
index 7a4dd46..ec98383 100644
--- a/src/tabviews/custom/components/card/data-card/index.jsx
+++ b/src/tabviews/custom/components/card/data-card/index.jsx
@@ -907,6 +907,11 @@
             ))}
             {data && data.map((item, index) => {
               let className = card.setting.click ? 'mk-card pointer ' : 'mk-card '
+              if (config.wrap.parity === 'true') {
+                if (index % 2 === 1) {
+                  className += 'mk-parity-bg '
+                }
+              }
               if (item.$disabled) {
                 className = 'mk-disabled'
               } else if (activeKey === index) {
diff --git a/src/tabviews/custom/components/card/data-card/index.scss b/src/tabviews/custom/components/card/data-card/index.scss
index 77c2788..f0750ac 100644
--- a/src/tabviews/custom/components/card/data-card/index.scss
+++ b/src/tabviews/custom/components/card/data-card/index.scss
@@ -32,6 +32,11 @@
         }
       }
     }
+    .mk-parity-bg {
+      .card-item-box {
+        background-color: var(--mk-sys-color1);
+      }
+    }
   }
   .data-zoom.scale {
     .card-row-list {
diff --git a/src/tabviews/custom/components/card/table-card/index.jsx b/src/tabviews/custom/components/card/table-card/index.jsx
index 5629e18..deb7786 100644
--- a/src/tabviews/custom/components/card/table-card/index.jsx
+++ b/src/tabviews/custom/components/card/table-card/index.jsx
@@ -515,7 +515,7 @@
           </div> : null
         }
         <NormalHeader config={config} BID={BID} refresh={this.refreshSearch} />
-        {data && data.length > 0 ? <Row className="card-row-list" style={{height: config.wrap.contentHeight}}>
+        {data && data.length > 0 ? <Row className={'card-row-list' + (config.wrap.parity === 'true' ? ' mk-parity' : '')} style={{height: config.wrap.contentHeight}}>
           {data.map(item => this.getLines(item))}
         </Row> : null}
         {data && data.length === 0 ? <div className="card-row-list" style={{height: config.wrap.contentHeight}}>
diff --git a/src/tabviews/custom/components/card/table-card/index.scss b/src/tabviews/custom/components/card/table-card/index.scss
index c44fdec..c7b6fc8 100644
--- a/src/tabviews/custom/components/card/table-card/index.scss
+++ b/src/tabviews/custom/components/card/table-card/index.scss
@@ -33,6 +33,13 @@
     clear: both;
   }
 
+  .mk-parity {
+    >.ant-col:nth-child(even) {
+      .card-item-box {
+        background-color: var(--mk-sys-color1);
+      }
+    }
+  }
   .card-row-list {
     overflow-y: auto;
     .card-item-box {
diff --git a/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx b/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx
index 58acdce..154b7bd 100644
--- a/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx
+++ b/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx
@@ -23,8 +23,11 @@
     let config = fromJS(this.props.config).toJS()
 
     let selectKeys = config.initval
+    let initlength = 0
     if (config.multiple === 'true') {
       selectKeys = config.initval ? config.initval.split(',') : []
+      initlength = selectKeys.length
+      selectKeys = this.filterVals(config.options, selectKeys)
     }
 
     if (!config.selectStyle && config.backgroundColor) {
@@ -44,6 +47,10 @@
       config: config,
       options: fromJS(config.options).toJS(),
       selectKeys: selectKeys
+    }, () => {
+      if (config.multiple === 'true' && selectKeys.length < initlength) {
+        this.props.onChange(selectKeys.join(','))
+      }
     })
   }
 
@@ -60,9 +67,20 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { config } = this.state
+    const { config, selectKeys } = this.state
 
     if (!is(fromJS(config.oriOptions), fromJS(nextProps.config.oriOptions))) {
+      if (config.multiple === 'true') {
+        let keys = this.filterVals(nextProps.config.options, fromJS(selectKeys).toJS())
+        if (keys.length < selectKeys.length) {
+          this.setState({
+            selectKeys: keys
+          }, () => {
+            this.props.onChange(keys.join(','))
+          })
+        }
+      }
+
       this.setState({
         config: {...config, oriOptions: nextProps.config.oriOptions},
         options: fromJS(nextProps.config.options).toJS()
@@ -77,6 +95,16 @@
     MKEmitter.removeListener('mkFP', this.mkFormHandle)
   }
 
+  filterVals = (options, vals) => {
+    if (options.length === 0 || vals.length === 0) return vals
+
+    let ops = options.map(item => item.$value)
+
+    vals = vals.filter(val => ops.includes(val))
+
+    return vals
+  }
+
   mkFormHandle = (uuid, parentId, level) => {
     if (uuid !== this.state.config.uuid) return
 

--
Gitblit v1.8.0