From 347c1360ca4b5c6c17353b3e407a26e62c18138b Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 12 五月 2025 16:35:19 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/menu/datasource/verifycard/settingform/index.jsx |  252 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 166 insertions(+), 86 deletions(-)

diff --git a/src/menu/datasource/verifycard/settingform/index.jsx b/src/menu/datasource/verifycard/settingform/index.jsx
index 612259d..cfb2a37 100644
--- a/src/menu/datasource/verifycard/settingform/index.jsx
+++ b/src/menu/datasource/verifycard/settingform/index.jsx
@@ -1,12 +1,12 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { fromJS } from 'immutable'
-import { Form, Row, Col, Input, Radio, Tooltip, notification, Select, InputNumber, Cascader } from 'antd'
-import { QuestionCircleOutlined } from '@ant-design/icons'
+import { Form, Row, Col, Input, Radio, Tooltip, notification, Select, InputNumber, Cascader, Modal, Button } from 'antd'
+import { QuestionCircleOutlined, PlusOutlined } from '@ant-design/icons'
 
 import { formRule } from '@/utils/option.js'
-import Utils from '@/utils/utils.js'
 import MenuUtils from '@/utils/utils-custom.js'
+import { checkSQL } from '@/utils/utils-custom.js'
 import CodeMirror from '@/templates/zshare/codemirror'
 import KeyInterface from '@/components/keyInterface'
 import './index.scss'
@@ -16,6 +16,7 @@
 class SettingForm extends Component {
   static propTpyes = {
     updateStatus: PropTypes.func,
+    updateColumns: PropTypes.func,
     addProcess: PropTypes.func,
     config: PropTypes.object,     // 缁勪欢閰嶇疆
     setting: PropTypes.object,    // 鏁版嵁婧愰厤缃�
@@ -29,18 +30,32 @@
     innerRules: [],
     innertip: '',
     MenuType: sessionStorage.getItem('MenuType') || '',
-    ismain: false
+    ismain: false,
+    visible: false
   }
 
   UNSAFE_componentWillMount () {
     const { config, setting } = this.props
 
     let menu = window.GLOB.customMenu
-    let modules = MenuUtils.getSupModules(menu.components, config.uuid, menu.interfaces)
+    let modules = []
     let ismain = false
 
     if (menu.Template === 'BaseTable') {
       ismain = config.name === '涓昏〃'
+    }
+
+    if (config.type === 'interface') {
+      menu.components.forEach(item => {
+        if (item.type === 'module' && item.subtype === 'account') {
+          modules.push({
+            value: item.uuid,
+            label: item.name
+          })
+        }
+      })
+    } else {
+      modules = MenuUtils.getSupModules(menu.components, config.uuid, menu.interfaces)
     }
 
     modules.unshift({
@@ -103,59 +118,15 @@
           if (values.interType === 'system' && values.onload === 'false') {
             values.sync = 'false'
           }
+          if (values.interType === 'system' && values.database === 'sso') {
+            values.sync = 'false'
+          }
 
           // 鏁版嵁婧愬墠绔獙璇�
           if (values.interType === 'system' && values.execute !== 'false' && values.dataresource) {
-            let _quot = values.dataresource.match(/'{1}/g)
-            let _lparen = values.dataresource.match(/\({1}/g)
-            let _rparen = values.dataresource.match(/\){1}/g)
+            let pass = checkSQL(values.dataresource)
 
-            _quot = _quot ? _quot.length : 0
-            _lparen = _lparen ? _lparen.length : 0
-            _rparen = _rparen ? _rparen.length : 0
-
-            if (_quot % 2 !== 0) {
-              notification.warning({
-                top: 92,
-                message: '鏁版嵁婧愪腑\'蹇呴』鎴愬鍑虹幇',
-                duration: 5
-              })
-              reject()
-              return
-            } else if (_lparen !== _rparen) {
-              notification.warning({
-                top: 92,
-                message: '鏁版嵁婧愪腑()蹇呴』鎴愬鍑虹幇',
-                duration: 5
-              })
-              reject()
-              return
-            } else if (/--/ig.test(values.dataresource)) {
-              notification.warning({
-                top: 92,
-                message: '鏁版嵁婧愪腑锛屼笉鍙嚭鐜板瓧绗� -- 锛屾敞閲婅鐢� /*鍐呭*/',
-                duration: 5
-              })
-              reject()
-              return
-            } else if (/,,/ig.test(values.dataresource)) {
-              notification.warning({
-                top: 92,
-                message: '鏁版嵁婧愪腑锛屼笉鍙嚭鐜拌繛缁殑鑻辨枃閫楀彿锛�,,锛�',
-                duration: 5
-              })
-              reject()
-              return
-            }
-
-            let error = Utils.verifySql(values.dataresource)
-
-            if (error) {
-              notification.warning({
-                top: 92,
-                message: '鏁版嵁婧愪腑涓嶅彲浣跨敤' + error,
-                duration: 5
-              })
+            if (!pass) {
               reject()
               return
             }
@@ -182,21 +153,61 @@
   }
 
   addProcess = () => {
-    let _sql = this.props.form.getFieldValue('dataresource')
+    this.setState({visible: true})
+  }
 
-    _sql = _sql + `\n/* select a.*,w.remark as remark_w,w.statusname as statusname_w,w.status as status_w,w.works_flow_param from (鏁版嵁婧�) a inner join (select * from  s_my_works_flow  where works_flow_code=@works_flow_code@ and status=0 and deleted=0) w on a.id=w.works_flow_id */`
+  execAddProcess = (type) => {
+    let _sql = this.props.form.getFieldValue('dataresource')
+    let tableName = this.props.form.getFieldValue('tableName') || '琛ㄥ悕'
+
+    if (type === 'flowstart') {
+      _sql = _sql + `\n/* select a.*, w.remark as remark_w, w.statusname  as statusname_w,w.status as status_w,w.works_flow_param,w.works_flow_detail_id,w.modifydate as modifydate_w  from (select * from ${tableName} where status=0 and deleted=0 $@ and createuserid=@userid@ @$) a
+    inner join (select * from  s_my_works_flow  where works_flow_code=@works_flow_code@ and status=0 and deleted=0) w on a.id=w.works_flow_id */`
+    } else if (type === 'flowcheck') {
+      _sql = _sql + `\n/* select a.*, w.remark as remark_w, w.statusname  as statusname_w,w.status as status_w,w.works_flow_param,w.works_flow_detail_id,w.modifydate as modifydate_w  
+    from (select * from ${tableName} where status=0 and deleted=0 ) a
+    inner join (select * from  s_my_works_flow  where works_flow_code=@works_flow_code@ and status>0 and status<888 and deleted=0) w 
+    on a.id=w.works_flow_id 
+    $@ inner join (select works_flow_id  from s_my_works_flow_role where userid=@userid@ and  works_flow_code=@works_flow_code@ and deleted=0 ) r
+    on r.works_flow_id=w.works_flow_id @$ */`
+    }
 
     this.props.form.setFieldsValue({
       dataresource: _sql
     })
 
+    this.setState({visible: false})
+
     this.props.addProcess()
   }
 
+  addSql = () => {
+    let tableName = this.props.form.getFieldValue('tableName')
+
+    if (!tableName) {
+      notification.warning({
+        top: 92,
+        message: '璇锋坊鍔犺〃鍚嶃��',
+        duration: 5
+      })
+      return
+    }
+
+    let _sql = this.props.form.getFieldValue('dataresource')
+
+    if (/^\s*$/.test(_sql)) {
+      this.props.form.setFieldsValue({
+        dataresource: `select * from ${tableName} where deleted=0`
+      })
+    }
+
+    this.props.updateColumns(tableName)
+  }
+
   render() {
-    const { columns, config } = this.props
+    const { columns, config, hasMainSearch } = this.props
     const { getFieldDecorator } = this.props.form
-    const { setting, modules, innerRules, innertip, MenuType } = this.state
+    const { setting, modules, innerRules, innertip, MenuType, visible } = this.state
 
     const formItemLayout = {
       labelCol: {
@@ -223,7 +234,7 @@
                       message: '璇疯緭鍏ユ暟鎹簮鍚嶇О!'
                     }
                   ]
-                })(<Input placeholder={''} autoComplete="off" />)}
+                })(<Input placeholder="" autoComplete="off" />)}
               </Form.Item>
             </Col> : null}
             <Col span={8}>
@@ -244,7 +255,11 @@
                       message: '琛ㄥ悕鍙彲浣跨敤瀛楁瘝銆佹暟瀛椾互鍙奯'
                     }
                   ]
-                })(<Input placeholder={''} autoComplete="off" />)}
+                })(
+                  setting.interType === 'system' && ((columns.length === 0 && config.subtype !== 'basetable') || !setting.dataresource) ?
+                  <Input placeholder="" autoComplete="off" addonAfter={<PlusOutlined onClick={this.addSql} />}/> :
+                  <Input placeholder="" autoComplete="off"/>
+                  )}
               </Form.Item>
             </Col>
             <Col span={8}>
@@ -265,7 +280,7 @@
                 </Radio.Group>)}
               </Form.Item>
             </Col>
-            {setting.interType === 'outer' ? <Col span={8}>
+            {setting.interType === 'outer' ? <Col span={8} className="compact">
               <Form.Item label={
                 <Tooltip placement="topLeft" title="涓氬姟绯荤粺鎸囧悓涓�sso涓嬬殑鍏朵粬涓氬姟绯荤粺锛屽閮ㄧ郴缁熸寚涓嶅悓sso涓嬬殑鍏朵粬涓氬姟绯荤粺銆�">
                   <QuestionCircleOutlined className="mk-form-tip" />
@@ -285,6 +300,7 @@
                   <Radio value="false">涓氬姟</Radio>
                   <Radio value="true">鍗曠偣</Radio>
                   <Radio value="external">澶栭儴</Radio>
+                  <Radio value="custom">鑷畾涔�</Radio>
                 </Radio.Group>)}
               </Form.Item>
             </Col> : null}
@@ -333,7 +349,7 @@
                 })(<KeyInterface type="develop"/>)}
               </Form.Item>
             </Col> : null}
-            {setting.interType === 'outer' && setting.sysInterface === 'false' ? <Col className="outer-interface" span={24}>
+            {setting.interType === 'outer' && (setting.sysInterface === 'false' || setting.sysInterface === 'custom') ? <Col className="outer-interface" span={24}>
               <Form.Item label={<Tooltip placement="topLeft" title="姝e紡绯荤粺鎺ュ彛鍦板潃锛屼负绌烘椂浣跨敤鎺ュ彛鍦板潃銆�">
                   <QuestionCircleOutlined className="mk-form-tip" />
                   姝e紡鍦板潃
@@ -355,6 +371,18 @@
                 })(<KeyInterface type="product"/>)}
               </Form.Item>
             </Col> : null}
+            {setting.interType === 'outer' && setting.sysInterface === 'custom' ? <Col span={24} className="data-source" style={{paddingLeft: '7px'}}>
+              <Form.Item labelCol={{xs: { span: 24 }, sm: { span: 2 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 22 }} } label={
+                <Tooltip placement="topLeft" title="澶栭儴鎺ュ彛鍏ュ弬鍙婂嚭鍙傜殑鑷畾涔夊鐞嗐��">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  鑷畾涔夎剼鏈�
+                </Tooltip>
+              }>
+                {getFieldDecorator('js_script', {
+                  initialValue: setting.js_script || ''
+                })(<CodeMirror mode="text/javascript" theme="cobalt" />)}
+              </Form.Item>
+            </Col> : null}
             {setting.interType === 'outer' ? <Col span={8}>
               <Form.Item label="澶栭儴鍑芥暟">
                 {getFieldDecorator('outerFunc', {
@@ -363,7 +391,7 @@
               </Form.Item>
             </Col> : null}
             {setting.interType === 'system' ? <Col span={24} className="data-source" style={{paddingLeft: '7px'}}>
-              {window.GLOB.process ? <span className="process-btn" onClick={this.addProcess}>宸ヤ綔娴�</span> : null}
+              {window.GLOB.process && !['invoice', 'invTable'].includes(config.subtype) ? <span className="process-btn" onClick={this.addProcess}>宸ヤ綔娴�</span> : null}
               <Form.Item labelCol={{xs: { span: 24 }, sm: { span: 2 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 22 }} } label={
                 <Tooltip placement="topLeft" title={`浣跨敤绯荤粺鍑芥暟鏃讹紝闇�濉啓鏁版嵁婧愩�傛敞锛氭暟鎹潈闄愭浛鎹㈢ $@ -> /* 鎴� ''銆� @$ -> */ 鎴� ''銆俙}>
                   <QuestionCircleOutlined className="mk-form-tip" />
@@ -397,21 +425,21 @@
                 </Radio.Group>)}
               </Form.Item>
             </Col> : null}
-            <Col span={8}>
+            {!['invTable'].includes(config.subtype) ? <Col span={8}>
               <Form.Item label="涓婚敭">
                 {getFieldDecorator('primaryKey', {
                   initialValue: setting.primaryKey || ''
                 })(
-                  <Select>
+                  <Select showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}>
                     {columns.map((option, i) =>
                       <Select.Option key={i} value={option.field}>
-                        {option.label}
+                        {`${option.label}锛�${option.field}锛塦}
                       </Select.Option>
                     )}
                   </Select>
                 )}
               </Form.Item>
-            </Col>
+            </Col> : null}
             {/* 鏁扮粍鏁版嵁锛岄渶璁剧疆鎺掑簭瑙勫垯 */}
             {config.format === 'array' ? <Col span={8}>
               <Form.Item label={
@@ -426,6 +454,10 @@
                     {
                       required: true,
                       message: '璇疯緭鍏ラ粯璁ゆ帓搴�!'
+                    },
+                    {
+                      pattern: /^[^'+]+$/,
+                      message: '鎺掑簭涓笉鍙娇鐢╘'涓�+'
                     }
                   ]
                 })(<Input placeholder={'ID asc, UID desc'} autoComplete="off" />)}
@@ -442,7 +474,7 @@
                 </Radio.Group>)}
               </Form.Item>
             </Col> : null}
-            {!['navbar', 'balcony', 'menubar'].includes(config.type) && (!config.wrap || config.wrap.supType !== 'multi') && MenuType !== 'billPrint' ? <Col span={8}>
+            {!['balcony', 'menubar', 'commonbar', 'tabbar', 'invTable'].includes(config.subtype) && (!config.wrap || config.wrap.supType !== 'multi') && MenuType !== 'billPrint' ? <Col span={8}>
               <Form.Item label={
                 <Tooltip placement="topLeft" title={'璇ョ粍浠跺鏋滃彈鍏朵粬缁勪欢鎺у埗锛岃閫夐」鐩稿簲鐨勭粍浠讹紝娌℃湁鏃堕�夆�滄棤鈥濄��'}>
                   <QuestionCircleOutlined className="mk-form-tip" />
@@ -475,12 +507,7 @@
               </Form.Item>
             </Col> : null}
             {config.pageable && setting.laypage !== 'false' ? <Col span={8}>
-              <Form.Item label={
-                <Tooltip placement="topLeft" title="閫夋嫨鍒嗛〉鏃舵湁鏁堛��">
-                  <QuestionCircleOutlined className="mk-form-tip" />
-                  姣忛〉鏁伴噺
-                </Tooltip>
-              }>
+              <Form.Item label="姣忛〉鏁伴噺">
                 {getFieldDecorator('pageSize', {
                   initialValue: setting.pageSize || 10,
                   rules: [
@@ -508,16 +535,27 @@
                 </Radio.Group>)}
               </Form.Item>
             </Col> : null}
+            {setting.interType === 'system' ? <Col span={8}>
+              <Form.Item label="鏁版嵁搴�">
+                {getFieldDecorator('database', {
+                  initialValue: setting.database || 'local'
+                })(
+                <Radio.Group>
+                  <Radio value="local">鏈湴</Radio>
+                  <Radio value="sso">鍗曠偣</Radio>
+                </Radio.Group>)}
+              </Form.Item>
+            </Col> : null}
             {/* 1銆佷笉鍒嗛〉涓斾笉瀛樺湪涓婄骇妯″潡 */}
-            {!['navbar', 'interface', 'calendar'].includes(config.type) && !['editable', 'basetable', 'dualdatacard'].includes(config.subtype) && (!config.pageable || (config.pageable && setting.laypage === 'false')) && (setting.supModule.length === 0 || setting.supModule[0] === 'empty') && setting.interType === 'system' && setting.onload !== 'false' ? <Col span={8}>
+            {!['navbar', 'interface', 'calendar'].includes(config.type) && !['editable', 'basetable', 'dualdatacard', 'invoice', 'invTable'].includes(config.subtype) && (!config.pageable || (config.pageable && setting.laypage === 'false')) && (setting.supModule.length === 0 || setting.supModule[0] === 'empty') && setting.interType === 'system' && setting.onload !== 'false' ? <Col span={8}>
               <Form.Item label={
-                <Tooltip placement="topLeft" title={'鍒濆鍖栧姞杞芥椂锛屾槸鍚︿笌鍏朵粬缁勪欢涓�鍚屽姞杞芥暟鎹紝娉細濡傝彍鍗曟湭浣跨敤鍚庣缂撳瓨锛屽垯鏌ヨ璇彞澶т簬8000瀛楃鏃舵棤鏁堛��'}>
+                <Tooltip placement="topLeft" title={'鍒濆鍖栧姞杞芥椂锛屾槸鍚︿笌鍏朵粬缁勪欢涓�鍚屽姞杞芥暟鎹��'}>
                   <QuestionCircleOutlined className="mk-form-tip" />
                   鍚屾鏌ヨ
                 </Tooltip>
               }>
                 {getFieldDecorator('sync', {
-                  initialValue: setting.sync || 'true'
+                  initialValue: setting.sync || 'false'
                 })(
                   <Radio.Group>
                     <Radio value="true">鏄�</Radio>
@@ -526,9 +564,9 @@
                 )}
               </Form.Item>
             </Col> : null}
-            {!['navbar', 'balcony', 'menubar', 'interface'].includes(config.type) && !['basetable'].includes(config.subtype) ? <Col span={8}>
+            {!['navbar', 'balcony', 'menubar'].includes(config.type) && !['basetable', 'invoice', 'invTable'].includes(config.subtype) ? <Col span={8}>
               <Form.Item label={
-                <Tooltip placement="topLeft" title={'浼樺厛浣跨敤鍚岀骇鐨勬悳绱㈡潯浠剁粍浠讹紝鍚岀骇鎼滅储涓嶅瓨鍦ㄦ椂锛屼緷娆″悜涓婇�夊彇锛屼笌褰撳墠缁勪欢鐨勬悳绱㈡潯浠朵竴鍚岀敤浣滄暟鎹繃婊わ紙褰撳墠缁勪欢鐨勬悳绱㈡潯浠朵紭鍏堬級銆�'}>
+                <Tooltip placement="topLeft" title={config.type === 'interface' ? '鍗曠嫭鎼滅储缁勪欢鍙綔涓哄叕鍏辨暟鎹簮鐨勬悳绱㈡潯浠躲��' : '浼樺厛浣跨敤鍚岀骇鐨勬悳绱㈡潯浠剁粍浠讹紝鍚岀骇鎼滅储涓嶅瓨鍦ㄦ椂锛屼緷娆″悜涓婇�夊彇锛屼笌褰撳墠缁勪欢鐨勬悳绱㈡潯浠朵竴鍚岀敤浣滄暟鎹繃婊わ紙褰撳墠缁勪欢鐨勬悳绱㈡潯浠朵紭鍏堬級銆�'}>
                   <QuestionCircleOutlined className="mk-form-tip" />
                   澶栭儴鎼滅储
                 </Tooltip>
@@ -537,7 +575,7 @@
                   initialValue: setting.useMSearch || 'true'
                 })(
                   <Radio.Group onChange={(e) => {this.onOptionChange(e.target.value, 'useMSearch')}}>
-                    <Radio value="true">浣跨敤</Radio>
+                    <Radio value="true">浣跨敤{!hasMainSearch ? <Tooltip placement="top" title="鏃犲彲浣跨敤鐨勫閮ㄦ悳绱㈡潯浠�"><span className="mk-dot"></span></Tooltip> : null}</Radio>
                     <Radio value="false">涓嶄娇鐢�</Radio>
                   </Radio.Group>
                 )}
@@ -568,6 +606,23 @@
                   <Radio.Group onChange={(e) => {this.onOptionChange(e.target.value, 'onload')}}>
                     <Radio value="true">鍔犺浇</Radio>
                     <Radio value="false">涓嶅姞杞�</Radio>
+                  </Radio.Group>
+                )}
+              </Form.Item>
+            </Col> : null}
+            {setting.interType === 'system' ? <Col span={8}>
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="浣跨敤鍚庣sql鑴氭湰鏃舵湁鏁堛��">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  浜嬪姟
+                </Tooltip>
+              }>
+                {getFieldDecorator('transact', {
+                  initialValue: setting.transact || 'false'
+                })(
+                  <Radio.Group onChange={(e) => {this.onOptionChange(e.target.value, 'transact')}}>
+                    <Radio value="true">鍚敤</Radio>
+                    <Radio value="false">绂佺敤</Radio>
                   </Radio.Group>
                 )}
               </Form.Item>
@@ -624,7 +679,7 @@
             </Col> : null}
             {config.subtype === 'dualdatacard' ? <Col span={8}>
               <Form.Item label={
-                <Tooltip placement="topLeft" title="瀛愯〃鍦ㄤ富琛ㄤ腑鐨勬暟鎹泦鍚嶇О銆�">
+                <Tooltip placement="topLeft" title="瀛愯〃鍦ㄤ富琛ㄤ腑鐨勬暟鎹泦鍚嶇О锛屼娇鐢� sub_data_string 鏃舵暟鎹互 JSON 瀛楃涓插舰寮忚繑鍥烇紙瀛楁闆嗕腑闇�娣诲姞 sub_data_string 瀛楁锛夛紱褰撲富琛ㄥ瓧娈靛瓨鍦� sub_data_string 涓斿�间笉涓虹┖鏃讹紝浼樺厛浣跨敤涓昏〃鐨� sub_data_string銆�">
                   <QuestionCircleOutlined className="mk-form-tip" />
                   瀛愯〃瀛楁
                 </Tooltip>
@@ -634,7 +689,7 @@
                   rules: [
                     {
                       required: true,
-                      message: '璇疯緭鍏ラ粯璁ゆ帓搴�!'
+                      message: '璇疯緭鍏ュ瓙琛ㄥ瓧娈�!'
                     }
                   ]
                 })(<Input placeholder={''} autoComplete="off" />)}
@@ -645,10 +700,10 @@
                 {getFieldDecorator('subKey', {
                   initialValue: setting.subKey || ''
                 })(
-                  <Select>
+                  <Select showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}>
                     {this.props.subColumns.map((option, i) =>
                       <Select.Option key={i} value={option.field}>
-                        {option.label}
+                        {`${option.label}锛�${option.field}锛塦}
                       </Select.Option>
                     )}
                   </Select>
@@ -660,18 +715,43 @@
                 {getFieldDecorator('subBID', {
                   initialValue: setting.subBID || ''
                 })(
-                  <Select>
+                  <Select showSearch filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}>
                     {this.props.subColumns.map((option, i) =>
                       <Select.Option key={i} value={option.field}>
-                        {option.label}
+                        {`${option.label}锛�${option.field}锛塦}
                       </Select.Option>
                     )}
                   </Select>
                 )}
               </Form.Item>
             </Col> : null}
+            {setting.onload !== 'false' ? <Col span={8}>
+              <Form.Item label={
+                <Tooltip placement="topLeft" title="鍙欢杩熷垵濮嬪寲鏁版嵁鐨勫姞杞芥椂闂达紝鍗曚綅姣锛坢s锛夈��">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  寤舵椂鍔犺浇
+                </Tooltip>
+              }>
+                {getFieldDecorator('delay', {
+                  initialValue: setting.delay,
+                })(<InputNumber min={0} max={60000} precision={0} />)}
+              </Form.Item>
+            </Col> : null}
           </Row>
         </Form>
+        <Modal
+          wrapClassName="mk-flow-type"
+          visible={visible}
+          width={400}
+          onCancel={() => this.setState({visible: false})}
+          footer={[
+            <Button key="cancel" className="mk-green" onClick={() => this.execAddProcess('flowstart')}>鍙戣捣</Button>,
+            <Button key="confirm" className="mk-primary" onClick={() => this.execAddProcess('flowcheck')}>瀹℃壒</Button>
+          ]}
+          destroyOnClose
+        >
+          璇烽�夋嫨宸ヤ綔娴佺被鍨嬨��
+        </Modal>
       </div>
     )
   }

--
Gitblit v1.8.0