From e6a10ced1ed8db39486dc0a1795191c701ef3224 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 20 十二月 2021 18:11:35 +0800
Subject: [PATCH] 2021-12-20

---
 src/menu/components/share/markcomponent/index.jsx |   97 +++++++++++++++++++++++++++++-------------------
 1 files changed, 58 insertions(+), 39 deletions(-)

diff --git a/src/menu/components/share/markcomponent/index.jsx b/src/menu/components/share/markcomponent/index.jsx
index 03dd41d..fa36e99 100644
--- a/src/menu/components/share/markcomponent/index.jsx
+++ b/src/menu/components/share/markcomponent/index.jsx
@@ -13,6 +13,7 @@
 import '@/assets/css/table.scss'
 
 const EditTable = asyncComponent(() => import('@/templates/zshare/editTable'))
+const { confirm } = Modal
 
 class MarkColumn extends Component {
   static propTpyes = {
@@ -22,7 +23,7 @@
   }
 
   state = {
-    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
+    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     marks: null,
     columns: null,
     visible: false,
@@ -81,15 +82,17 @@
         options: [],
         render: text => {
           let sign = {
-            'font': '鏂囧瓧棰滆壊',
+            'font': '鏂囧瓧',
             'background': '鑳屾櫙',
             'underline': '涓嬪垝绾�',
             'line-through': '涓垝绾�',
-            'icon': '鍥炬爣'
+            'icon': '鍥炬爣',
+            'iconfront': '鍥炬爣',
+            'iconback': '鍥炬爣',
           }
 
           return (
-            <div>{sign[text[0]]} {text[3] ? <Icon type={text[3]} /> : null}</div>
+            <div>{sign[text[0]]} {text[2] ? <Icon type={text[text.length - 1]} /> : null}</div>
           )
         }
       }
@@ -128,8 +131,11 @@
   resetMark = () => {
     const { marks, columns, type } = this.props
     let markColumns = fromJS(this.state.markColumns).toJS()
+    let _columns = fromJS(columns).toJS()
 
-    let options = columns.map(col => {
+    _columns.unshift({field: '$Index', label: '搴忓彿'})
+
+    let options = _columns.map(col => {
       return {
         value: col.field,
         label: col.label,
@@ -142,7 +148,7 @@
           {
             value: 'dynamic',
             label: '鍔ㄦ�佸��',
-            children: columns.map(cell => {
+            children: _columns.map(cell => {
               return {
                 value: cell.field,
                 label: cell.label
@@ -195,16 +201,6 @@
         })
       },
       {
-        value: 'trademark',
-        label: '鍝佺墝鍜屾爣璇�',
-        children: minkeIconSystem.trademark.map(cell => {
-          return {
-            value: cell,
-            label: (<Icon type={cell} />)
-          }
-        })
-      },
-      {
         value: 'normal',
         label: '缃戠珯閫氱敤鍥炬爣',
         children: minkeIconSystem.normal.map(cell => {
@@ -218,7 +214,7 @@
     let signs = [
       {
         value: 'font',
-        label: '鏂囧瓧棰滆壊'
+        label: '鏂囧瓧'
       },
       {
         value: 'background',
@@ -233,24 +229,18 @@
         label: '涓垝绾�'
       },
       {
-        value: 'icon',
-        label: '鍥炬爣',
-        children: [
-          {
-            value: 'front',
-            label: '鍐呭鍓�',
-            children: icons
-          },
-          {
-            value: 'back',
-            label: '鍐呭鍚�',
-            children: icons
-          }
-        ]
+        value: 'iconfront',
+        label: '鍥炬爣锛堝墠锛�',
+        children: icons
+      },
+      {
+        value: 'iconback',
+        label: '鍥炬爣锛堝悗锛�',
+        children: icons
       }
     ]
 
-    if (type === 'line') {
+    if (type === 'line' || type === 'sequence') {
       signs.pop()
     } else if (type === 'slider') {
       markColumns = markColumns.filter(col => {
@@ -260,9 +250,17 @@
       signs = []
     }
 
+    let _marks = marks ? fromJS(marks).toJS() : []
+    _marks = _marks.map(item => {
+      if (item.signType && item.signType[0] === 'icon') {
+        item.signType = [item.signType[0] + item.signType[1], item.signType[2], item.signType[3]]
+      }
+      return item
+    })
+
     this.setState({
       visible: true,
-      marks: marks ? fromJS(marks).toJS() : [],
+      marks: _marks,
       markColumns: markColumns.map(col => {
         if (col.dataIndex === 'field') {
           col.options = options
@@ -278,9 +276,13 @@
   }
 
   markSubmit = () => {
-    this.setState({
-      visible: false
-    })
+    let save = false
+    let input = document.getElementById('contrastValue')
+    let val = input && input.value ? input.value : ''
+
+    if (!val) {
+      save = true
+    }
 
     let marks = this.state.marks.map(item => {
       if (item.signType && item.signType[0] === 'background') {
@@ -291,14 +293,32 @@
           } else {
             item.fontColor = ''
           }
-        } catch {
+        } catch (e) {
           item.fontColor = ''
         }
+      }
+      if (val && item.contrastValue === val) {
+        save = true
       }
       return item
     })
 
-    this.props.onSubmit(marks)
+    if (save) {
+      this.setState({
+        visible: false
+      })
+      this.props.onSubmit(marks)
+    } else {
+      const _this = this
+      confirm({
+        title: '瀛樺湪鏈繚瀛樻爣璁帮紝纭畾蹇界暐鍚楋紵',
+        onOk() {
+          _this.setState({ visible: false })
+          _this.props.onSubmit(marks)
+        },
+        onCancel() {}
+      })
+    }
   }
 
   render() {
@@ -313,7 +333,6 @@
           visible={visible}
           width={'75vw'}
           maskClosable={false}
-          style={{minWidth: '900px', maxWidth: '1200px'}}
           okText={dict['model.submit']}
           onOk={this.markSubmit}
           onCancel={() => { this.setState({ visible: false }) }}

--
Gitblit v1.8.0