From 3c3c5b4e5f239b712eb837af7f732ce5ab3e859f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 17 二月 2022 13:34:08 +0800
Subject: [PATCH] 2022-02-17

---
 src/templates/zshare/verifycard/index.jsx |   93 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 89 insertions(+), 4 deletions(-)

diff --git a/src/templates/zshare/verifycard/index.jsx b/src/templates/zshare/verifycard/index.jsx
index d62941b..c88c681 100644
--- a/src/templates/zshare/verifycard/index.jsx
+++ b/src/templates/zshare/verifycard/index.jsx
@@ -2,7 +2,7 @@
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
 import { Form, Tabs, Row, Col, Radio, Button, Select, Popconfirm, notification, Modal, message, InputNumber, Tooltip, Typography } from 'antd'
-import { QuestionCircleOutlined, CheckCircleOutlined, StopOutlined, EditOutlined, SwapOutlined, DeleteOutlined, ExclamationOutlined } from '@ant-design/icons'
+import { QuestionCircleOutlined, CheckCircleOutlined, StopOutlined, EditOutlined, SwapOutlined, DeleteOutlined, ExclamationOutlined, BorderOutlined } from '@ant-design/icons'
 import moment from 'moment'
 
 import Api from '@/api'
@@ -18,6 +18,7 @@
 import asyncComponent from '@/utils/asyncComponent'
 import { updateForm } from '@/utils/utils-update.js'
 import MKEmitter from '@/utils/events.js'
+import MinView from '@/assets/img/minview.png'
 import './index.scss'
 
 const { TabPane } = Tabs
@@ -38,6 +39,8 @@
     initsql: '',            // sql楠岃瘉鏃跺彉閲忓0鏄庡強璧嬪��
     notes: [],              // 鐭俊妯℃澘
     setting: null,
+    visible: false,
+    scriptId: '',
     verify: {},
     fields: [],
     usefulfields: '',
@@ -1451,7 +1454,7 @@
 
   render() {
     const { card } = this.props
-    const { verify, fields, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes } = this.state
+    const { verify, fields, visible, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes } = this.state
     const formItemLayout = {
       labelCol: {
         xs: { span: 24 },
@@ -1585,7 +1588,7 @@
             </span>
           } key="2x">
             <ContrastForm dict={this.props.dict} contrastChange={this.contrastChange}/>
-            <EditTable actions={['edit', 'move', 'copy', 'del']} type="contrastverify" data={verify.contrasts} columns={contrastColumns} onChange={(contrasts) => this.setState({verify: {...verify, contrasts}})}/>
+            <EditTable actions={['edit', 'move', 'copy', 'del', 'status']} type="contrastverify" data={verify.contrasts} columns={contrastColumns} onChange={(contrasts) => this.setState({verify: {...verify, contrasts}})}/>
           </TabPane> : null}
           {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={
             <span>
@@ -1634,7 +1637,7 @@
               dict={this.props.dict}
               uniqueChange={this.uniqueChange}
             />
-            <EditTable actions={['edit', 'move', 'del']} data={verify.uniques} columns={card.Ot !== 'requiredOnce' ? uniqueColumns : onceUniqueColumns} onChange={this.changeUniques}/>
+            <EditTable actions={['edit', 'move', 'del', 'status']} data={verify.uniques} columns={card.Ot !== 'requiredOnce' ? uniqueColumns : onceUniqueColumns} onChange={this.changeUniques}/>
           </TabPane> : null}
           {card.intertype === 'system' || (card.intertype === 'custom' && card.procMode === 'system') ? <TabPane tab={
             <span>
@@ -1658,6 +1661,18 @@
               {verify.scripts.length ? <span className="count-tip">{verify.scripts.length}</span> : null}
             </span>
           } key="6">
+            
+            <BorderOutlined className="full-scripts" onClick={() => {
+              if (this.scriptsForm && (this.scriptsForm.state.editItem || (this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))))) {
+                notification.warning({
+                  top: 92,
+                  message: '璇蜂繚瀛樿嚜瀹氫箟鑴氭湰锛�',
+                  duration: 5
+                })
+                return
+              }
+              this.setState({visible: true, scriptId: ''})
+            }}/>
             <CustomScript
               btn={this.props.card}
               dict={this.props.dict}
@@ -1777,6 +1792,76 @@
             </Form>
           </TabPane>
         </Tabs>
+        <Modal
+          wrapClassName="model-custom-scripts-modal"
+          title="鑷畾涔夎剼鏈�"
+          visible={visible}
+          width={'95vw'}
+          maskClosable={false}
+          destroyOnClose
+        >
+          <img className="unfull-scripts" src={MinView} onClick={() => this.setState({visible: false, scriptId: ''})} alt=""/>
+          <div className="script-table-wrap">
+            {verify.scripts.map(item => {
+              let title = item.sql.match(/^\s*\/\*.+\*\//)
+              title = title && title[0] ? title[0] : ''
+              let _text = title ? item.sql.replace(title, '') : item.sql
+
+              let position = null
+              if (item.position === 'init') {
+                position = <span style={{color: 'orange'}}>鍒濆鍖�</span>
+              } else if (item.position === 'front') {
+                position = <span style={{color: '#26C281'}}>sql鍓�</span>
+              } else {
+                position = <span style={{color: '#1890ff'}}>sql鍚�</span>
+              }
+
+              return (
+                <div className={'script-item ' + (this.state.scriptId === item.uuid ? 'active' : '') } key={item.uuid}>
+                  <div style={{cursor: 'pointer'}} onClick={() => {
+                    this.scriptsFullForm.edit(item)
+                    this.setState({scriptId: item.uuid})
+                  }}>
+                    {title ? <div style={{color: '#a50', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis'}}>{title}</div> : null}
+                    <Paragraph copyable={{ text: item.sql }} ellipsis={{ rows: 4 }}>{_text}</Paragraph>
+                    <div>{position}{item.status === 'false' ?
+                      <span style={{color: '#ff4d4f', marginLeft: '20px'}}>
+                        绂佺敤
+                        <StopOutlined style={{marginLeft: '5px'}} />
+                      </span> : 
+                      <span style={{color: '#26C281', marginLeft: '20px'}}>
+                        鍚敤
+                        <CheckCircleOutlined style={{marginLeft: '5px'}}/>
+                      </span>}
+                    </div>
+                  </div>
+                  <div style={{textAlign: 'right'}}>
+                    <span className="operation-btn" onClick={() => this.handleStatus(item, 'scripts')} style={{color: '#8E44AD'}}><SwapOutlined /></span>
+                    <Popconfirm
+                      overlayClassName="popover-confirm"
+                      title={this.props.dict['model.query.delete']}
+                      onConfirm={() => this.handleDelete(item, 'scripts')
+                    }>
+                      <span className="operation-btn" style={{color: '#ff4d4f'}}><DeleteOutlined /></span>
+                    </Popconfirm>
+                  </div>
+                </div>
+              )
+            })}
+          </div>
+          <CustomScript
+            type="fullscreen"
+            btn={this.props.card}
+            dict={this.props.dict}
+            initsql={this.state.initsql}
+            customScripts={verify.scripts}
+            defaultsql={this.state.defaultsql}
+            usefulfields={this.state.usefulfields}
+            systemScripts={this.state.systemScripts}
+            scriptsChange={this.scriptsChange}
+            wrappedComponentRef={(inst) => this.scriptsFullForm = inst}
+          />
+        </Modal>
       </div>
     )
   }

--
Gitblit v1.8.0