From f393af9623c26ae177a3f69b8676afc4e23bff8d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 08 二月 2022 14:48:51 +0800
Subject: [PATCH] 2022-02-08

---
 src/menu/datasource/verifycard/index.jsx |  153 ++++++++++++++++++++------------------------------
 1 files changed, 61 insertions(+), 92 deletions(-)

diff --git a/src/menu/datasource/verifycard/index.jsx b/src/menu/datasource/verifycard/index.jsx
index e98c763..3c0b394 100644
--- a/src/menu/datasource/verifycard/index.jsx
+++ b/src/menu/datasource/verifycard/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { fromJS } from 'immutable'
-import { Form, Tabs, Popconfirm, Icon, notification, Modal, Typography, Spin, message } from 'antd'
+import { Form, Tabs, Popconfirm, notification, Modal, Typography, Spin, message } from 'antd'
+import { StopOutlined, CheckCircleOutlined, EditOutlined, SwapOutlined, DeleteOutlined, CopyOutlined } from '@ant-design/icons'
 import moment from 'moment'
 
 import Api from '@/api'
@@ -23,7 +24,6 @@
 class VerifyCard extends Component {
   static propTpyes = {
     dict: PropTypes.object,          // 瀛楀吀椤�
-    menu: PropTypes.object,          // 鑿滃崟閰嶇疆淇℃伅
     config: PropTypes.object,        // 缁勪欢閰嶇疆淇℃伅
   }
 
@@ -42,7 +42,7 @@
         dataIndex: 'label',
         inputType: 'input',
         editable: true,
-        width: '28%'
+        width: '20%'
       },
       {
         title: '瀛楁',
@@ -51,7 +51,7 @@
         editable: true,
         unique: true,
         copy: true,
-        width: '28%'
+        width: '20%'
       },
       {
         title: '鏁版嵁绫诲瀷',
@@ -90,8 +90,15 @@
           { value: 'datetime', text: 'datetime' },
         ],
         editable: true,
-        width: '25%',
-      }
+        width: '20%',
+      },
+      {
+        title: '澶囨敞',
+        dataIndex: 'remark',
+        inputType: 'textarea',
+        editable: true,
+        width: '20%'
+      },
     ],
     scriptsColumns: [
       {
@@ -101,12 +108,12 @@
         render: (text) => {
           let title = text.match(/^\s*\/\*.+\*\//)
           title = title && title[0] ? title[0] : ''
-          text = title ? text.replace(title, '') : text
+          let _text = title ? text.replace(title, '') : text
 
           return (
             <div>
-              {title ? <span style={{color: '#a50'}}>{title}</span> : null}
-              <Paragraph copyable ellipsis={{ rows: 4, expandable: true }}>{text}</Paragraph>
+              {title ? <span style={{color: '#a50'}}>{title}<span style={{fontSize: '12px', marginLeft: '5px'}}>{_text.length}</span></span> : null}
+              <Paragraph copyable={{ text: text }} ellipsis={{ rows: 4, expandable: true }}>{_text}</Paragraph>
             </div>
           )
         }
@@ -117,15 +124,15 @@
         width: '13%',
         render: (text, record) => record.status === 'false' ?
           (
-            <div>
+            <div style={{color: '#ff4d4f'}}>
               {this.props.dict['model.status.forbidden']}
-              <Icon style={{marginLeft: '5px'}} type="stop" theme="twoTone" twoToneColor="#ff4d4f" />
+              <StopOutlined style={{marginLeft: '5px'}} />
             </div>
           ) :
           (
-            <div>
+            <div style={{color: '#26C281'}}>
               {this.props.dict['model.status.open']}
-              <Icon style={{marginLeft: '5px'}} type="check-circle" theme="twoTone" twoToneColor="#52c41a" />
+              <CheckCircleOutlined style={{marginLeft: '5px'}}/>
             </div>
           )
       },
@@ -136,14 +143,14 @@
         dataIndex: 'operation',
         render: (text, record) =>
           (<div style={{textAlign: 'center'}}>
-            <span className="operation-btn" title={this.props.dict['model.edit']} onClick={() => this.handleEdit(record)} style={{color: '#1890ff'}}><Icon type="edit" /></span>
-            <span className="operation-btn" title={this.props.dict['model.status.change']} onClick={() => this.handleStatus(record)} style={{color: '#8E44AD'}}><Icon type="swap" /></span>
+            <span className="operation-btn" title={this.props.dict['model.edit']} onClick={() => this.handleEdit(record)} style={{color: '#1890ff'}}><EditOutlined /></span>
+            <span className="operation-btn" title={this.props.dict['model.status.change']} onClick={() => this.handleStatus(record)} style={{color: '#8E44AD'}}><SwapOutlined /></span>
             <Popconfirm
               overlayClassName="popover-confirm"
               title={this.props.dict['model.query.delete']}
               onConfirm={() => this.deleteScript(record)
             }>
-              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
+              <span className="operation-btn" style={{color: '#ff4d4f'}}><DeleteOutlined /></span>
             </Popconfirm>
           </div>)
       }
@@ -151,7 +158,7 @@
   }
 
   UNSAFE_componentWillMount() {
-    const { config, mainSearch, menu } = this.props
+    const { config, mainSearch } = this.props
 
     let search = config.search || []
 
@@ -159,47 +166,8 @@
       search = [...search, ...mainSearch]
     }
 
-    let Marks = []
-    let getcomponentmarks = (box, conf) => {
-      if (!conf.parentId && box.Template === 'CustomPage') {
-        box.components.forEach(item => {
-          if (item.type === 'group') {
-            item.components.forEach(cell => {
-              if (cell.uuid !== conf.uuid && cell.setting && cell.setting.varMark) {
-                Marks.push(cell.setting.varMark.toLowerCase())
-              }
-            })
-          } else if (item.uuid !== conf.uuid && item.setting && item.setting.varMark) {
-            Marks.push(item.setting.varMark.toLowerCase())
-          }
-        })
-      } else if (conf.parentId === box.parentId && conf.tabId === box.uuid) {
-        box.components.forEach(item => {
-          if (item.type === 'group') {
-            item.components.forEach(cell => {
-              if (cell.uuid !== conf.uuid && cell.setting && cell.setting.varMark) {
-                Marks.push(cell.setting.varMark.toLowerCase())
-              }
-            })
-          } else if (item.uuid !== conf.uuid && item.setting && item.setting.varMark) {
-            Marks.push(item.setting.varMark.toLowerCase())
-          }
-        })
-      } else {
-        box.components.forEach(item => {
-          if (item.type !== 'tabs') return
-  
-          item.subtabs.forEach(tab => {
-            getcomponentmarks(tab, conf)
-          })
-        })
-      }
-    }
-
-    getcomponentmarks(menu, config)
-
     let _setting = fromJS(config.setting).toJS()
-    let scripts = fromJS(config.scripts).toJS()
+    let scripts = config.scripts ? fromJS(config.scripts).toJS() : []
 
     if (window.GLOB.funcs && window.GLOB.funcs.length > 0) {
       window.GLOB.funcs.forEach(m => {
@@ -221,11 +189,10 @@
 
     this.setState({
       scripts,
-      columns: fromJS(config.columns).toJS(),
+      columns: config.columns ? fromJS(config.columns).toJS() : [],
       setting: _setting,
       searches: search,
-      defaultSearch: _search,
-      varMarks: Marks
+      defaultSearch: _search
     })
 
     this.getsysScript()
@@ -375,7 +342,7 @@
 
   changeTab = (val) => {
     const { config, mainSearch } = this.props
-    const { activeKey, varMarks } = this.state
+    const { activeKey } = this.state
 
     this.setState({loading: true})
     if (activeKey === 'setting') {
@@ -384,18 +351,6 @@
 
         if (res.useMSearch === 'true') { // 浣跨敤涓绘悳绱㈡潯浠�
           search = [...search, ...mainSearch]
-        }
-
-        if (res.varMark && varMarks.includes(res.varMark.toLowerCase())) {
-          notification.warning({
-            top: 92,
-            message: '鍙橀噺鏍囪瘑涓嶅彲閲嶅锛�',
-            duration: 5
-          })
-          this.setState({
-            loading: false
-          })
-          return
         }
 
         let _search = this.formatSearch(search)
@@ -528,7 +483,7 @@
 
   submitDataSource = () => {
     const { config, mainSearch } = this.props
-    const { activeKey, setting, columns, scripts, varMarks } = this.state
+    const { activeKey, setting, columns, scripts } = this.state
 
     return new Promise((resolve, reject) => {
       if (activeKey === 'setting') {
@@ -537,16 +492,6 @@
 
           if (res.useMSearch === 'true') { // 浣跨敤涓绘悳绱㈡潯浠�
             search = [...search, ...mainSearch]
-          }
-
-          if (res.varMark && varMarks.includes(res.varMark.toLowerCase())) {
-            notification.warning({
-              top: 92,
-              message: '鍙橀噺鏍囪瘑涓嶅彲閲嶅锛�',
-              duration: 5
-            })
-            reject()
-            return
           }
 
           let _search = this.formatSearch(search)
@@ -609,12 +554,12 @@
     }
 
     if ((setting.interType === 'system' && setting.execute !== 'false') || _scripts.length > 0) {
-      let result = SettingUtils.getDebugSql(setting, _scripts, columns, searches, defaultSearch)
+      let r = SettingUtils.getDebugSql(setting, _scripts, columns, searches, defaultSearch)
 
-      if (result.error) {
+      if (r.error) {
         notification.warning({
           top: 92,
-          message: result.error,
+          message: r.error,
           duration: 5
         })
         reject()
@@ -624,15 +569,40 @@
       let param = {
         func: 's_debug_sql',
         exec_type: 'y',
-        LText: result.sql
+        LText: r.sql
       }
       param.LText = Utils.formatOptions(param.LText)
       param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
       param.secretkey = Utils.encrypt('', param.timestamp)
+
+      let sumParam = null
+      if (r.sumSql) {
+        sumParam = {
+          func: 's_debug_sql',
+          exec_type: 'y',
+          LText: r.sumSql
+        }
+        sumParam.LText = Utils.formatOptions(sumParam.LText)
+        sumParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
+        sumParam.secretkey = Utils.encrypt('', sumParam.timestamp)
+      }
       
       Api.getLocalConfig(param).then(result => {
         if (result.status) {
-          resolve()
+          if (sumParam) {
+            Api.getLocalConfig(sumParam).then(res => {
+              if (res.status) {
+                resolve()
+              } else {
+                reject()
+                Modal.error({
+                  title: res.message
+                })
+              }
+            })
+          } else {
+            resolve()
+          }
         } else {
           reject()
           Modal.error({
@@ -682,7 +652,7 @@
   }
 
   render() {
-    const { menu, config } = this.props
+    const { config } = this.props
     const { columns, setting, scripts, colColumns, scriptsColumns, activeKey, loading, searches, defaultsql } = this.state
 
     return (
@@ -691,7 +661,6 @@
         <Tabs activeKey={activeKey} className="data-source-card-box" onChange={this.changeTab}>
           <TabPane tab="鏁版嵁婧�" key="setting">
             <SettingForm
-              menu={menu}
               dict={this.props.dict}
               config={config}
               columns={columns}
@@ -707,7 +676,7 @@
               type="fields"
               updatefield={this.updatefields}
             />
-            <Icon type="copy" title="浠ラ�楀彿鎷兼帴褰㈠紡澶嶅埗瀛楁" onClick={this.copyColumns} style={{position: 'absolute', cursor: 'pointer', zIndex: 1, top: '-35px', right: '0px', color: '#1890ff'}} />
+            <CopyOutlined title="浠ラ�楀彿鎷兼帴褰㈠紡澶嶅埗瀛楁" onClick={this.copyColumns} style={{position: 'absolute', cursor: 'pointer', zIndex: 1, top: '-35px', right: '0px', color: '#1890ff'}} />
             <EditTable actions={['edit', 'move', 'copy', 'del', 'clear']} type="datasourcefield" data={columns} columns={colColumns} onChange={(columns) => this.setState({columns})}/>
           </TabPane>
           <TabPane tab={

--
Gitblit v1.8.0