From da64ab0923bf8817fc8599a6e37b953ce38f64c8 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 27 八月 2023 18:37:36 +0800
Subject: [PATCH] 2023-08-27

---
 src/templates/zshare/createinterface/index.jsx |   98 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 60 insertions(+), 38 deletions(-)

diff --git a/src/templates/zshare/createinterface/index.jsx b/src/templates/zshare/createinterface/index.jsx
index 9efec6b..b5d117a 100644
--- a/src/templates/zshare/createinterface/index.jsx
+++ b/src/templates/zshare/createinterface/index.jsx
@@ -6,13 +6,12 @@
 
 import MutilForm from './mutilform'
 import Utils from '@/utils/utils.js'
-import options from '@/store/options.js'
+import { updateForm } from '@/utils/utils-update.js'
 import Api from '@/api'
 import './index.scss'
 
-class CreateFunc extends Component {
+class CreateInterface extends Component {
   static propTypes = {
-    dict: PropTypes.object,  // 瀛楀吀椤�
     trigger: PropTypes.func
   }
 
@@ -170,10 +169,10 @@
         required: true,
         options: [{
           value: 'Y',
-          text: this.props.dict['model.true']
+          text: '鏄�'
         }, {
           value: 'N',
-          text: this.props.dict['model.false']
+          text: '鍚�'
         }]
       }, {
         type: 'radio',
@@ -183,10 +182,10 @@
         required: true,
         options: [{
           value: 'Y',
-          text: this.props.dict['model.true']
+          text: '鏄�'
         }, {
           value: 'N',
-          text: this.props.dict['model.false']
+          text: '鍚�'
         }]
       }]
     })
@@ -261,7 +260,7 @@
 
     new Promise(resolve => {
       // 鑾峰彇浜戠瀛樺偍杩囩▼淇℃伅
-      Api.getLocalConfig(param).then(result => {
+      Api.genericInterface(param).then(result => {
         if (!result.status) {
           notification.warning({
             top: 92,
@@ -335,7 +334,7 @@
       Ltexttableparam: '',
       Ltext: '',
       menuType: menu.type,
-      systemType: options.sysType
+      systemType: window.GLOB.sysType
     }
 
     this.setState({
@@ -406,7 +405,7 @@
 
     new Promise(resolve => {
       if (btn.OpenType === 'pop') {
-        Api.getSystemConfig({
+        Api.getCloudConfig({
           func: 'sPC_Get_LongParam',
           MenuID: btn.uuid
         }).then(result => {
@@ -422,20 +421,14 @@
                 _LongParam = ''
               }
             }
-            let fields = []
 
             if (_LongParam && _LongParam.type === 'Modal') {
-              if (_LongParam.groups.length > 0) {
-                _LongParam.groups.forEach(group => {
-                  fields = [...fields, ...group.sublist]
-                })
-              } else {
-                fields = _LongParam.fields
-              }
+              _LongParam = updateForm(_LongParam)
             }
 
-            if (fields && fields.length > 0) {
-              formlist = fields.map(cell => {
+            if (_LongParam && _LongParam.fields.length > 0) {
+              _LongParam.fields.forEach(cell => {
+                if (!cell.field) return 
                 let _fieldlen = cell.fieldlength || 50
 
                 if (cell.type === 'textarea' || cell.type === 'fileupload' || cell.type === 'multiselect') {
@@ -452,7 +445,7 @@
                   fieldlen: _fieldlen,
                   key: cell.field,
                   required: cell.required === 'true' ? 'required' : '',
-                  writein: cell.required !== 'false',
+                  writein: cell.writein !== 'false',
                   value: cell.initval || ''
                 }
 
@@ -462,6 +455,8 @@
                   _fieldtype = 'datetime'
                 } else if (_field.type === 'number') {
                   _fieldtype = `decimal(18,${_fieldlen})`
+                } else if (_field.type === 'rate') {
+                  _fieldtype = `decimal(18,2)`
                 }
 
                 _field.fieldtype = _fieldtype
@@ -471,7 +466,7 @@
                   _field.value = ''
                 }
 
-                return _field
+                formlist.push(_field)
               })
             }
             resolve(true)
@@ -561,7 +556,7 @@
 
       _mainParam = fromJS(param).toJS()
 
-      return Api.getLocalConfig(param)
+      return Api.genericInterface(param)
     }).then(res => {
       if (res === false) return res
 
@@ -668,6 +663,8 @@
           _type = 'datetime'
         } else if (form.type === 'number') {
           _type = `decimal(18,${form.fieldlen})`
+        } else if (form.type === 'rate') {
+          _type = `decimal(18,2)`
         }
 
         _declarefields.push(`@${_key} ${_type}`)
@@ -720,10 +717,10 @@
         `
     }
 
-    if (_initcolumnfields.length > 0) {
-      _sql += `select ${_initcolumnfields.join(',')} from ${setting.dataresource} where ${primaryKey}=@ID@
-        `
-    }
+    // if (_initcolumnfields.length > 0) {
+    //   _sql += `select ${_initcolumnfields.join(',')} from (${setting.dataresource})tb where ${primaryKey}=@ID@
+    //     `
+    // }
     
     // 鍘婚櫎绂佺敤鐨勯獙璇�
     if (verify.contrasts) {
@@ -955,8 +952,10 @@
       receiptKeys.push('bid')
     }
 
+    let _insertsql = ''
+    let _updatesql = ''
     // 娣诲姞銆佷慨鏀广�侀�昏緫鍒犻櫎銆佺墿鐞嗗垹闄�
-    if (_actionType === 'insert') {
+    if (_actionType === 'insert' || _actionType === 'insertOrUpdate') {
       let keys = []
       let values = []
 
@@ -964,7 +963,7 @@
         if (item.writein === false) return
 
         keys.push(item.key.toLowerCase())
-        values.push('@' + item.key + '@')
+        values.push('@' + item.key)
       })
 
       if (!keys.includes(primaryKey.toLowerCase())) {
@@ -991,10 +990,12 @@
 
       keys = keys.join(',')
       values = values.join(',')
-      _sql += `
+      _insertsql = `
         /* 榛樿sql */
         insert into ${btn.sql} (${keys}) select ${values};`
-    } else if (_actionType === 'update') {
+    }
+
+    if (_actionType === 'update' || _actionType === 'audit' || _actionType === 'insertOrUpdate') {
       let _form = []
       let _arr = []
 
@@ -1002,7 +1003,7 @@
         if (item.writein === false) return
 
         _arr.push(item.key.toLowerCase())
-        _form.push(item.key + `=@${item.key}@`)
+        _form.push(item.key + `=@${item.key}`)
       })
       
       if (!_arr.includes('modifydate')) {
@@ -1010,6 +1011,9 @@
       }
       if (!_arr.includes('modifyuserid')) {
         _form.push('modifyuserid=@userid@')
+      }
+      if (!_arr.includes('modifyuser')) {
+        _form.push('modifyuser=@username')
       }
       if (hasvoucher) {
         if (!_arr.includes('bvoucher')) {
@@ -1034,13 +1038,32 @@
       }
 
       _form = _form.join(',')
-      _sql += `
+      _updatesql = `
         /* 榛樿sql */
         update ${btn.sql} set ${_form} where ${primaryKey}=@${primaryKey}@;`
+    }
+    
+    if (_actionType === 'insert') {
+      _sql += _insertsql
+    } else if (_actionType === 'update' || _actionType === 'audit') {
+      _sql += _updatesql
+    } else if (_actionType === 'insertOrUpdate') {
+      _sql += `
+        select @tbid=''
+        select @tbid='X' from ${btn.sql} where ${primaryKey}=@ID@
+        if @tbid=''
+          begin
+          ${_insertsql}
+          end
+        else
+          begin
+          ${_updatesql}
+          end
+      `
     } else if (_actionType === 'LogicDelete') { // 閫昏緫鍒犻櫎
       _sql += `
         /* 榛樿sql */
-        update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuserid=@userid@ where ${primaryKey}=@${primaryKey}@;`
+        update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifystaff=@fullname,modifyuserid=@userid@ where ${primaryKey}=@${primaryKey}@;`
       
     } else if (_actionType === 'delete') {      // 鐗╃悊鍒犻櫎
       let _msg = ''
@@ -1087,11 +1110,11 @@
           onClick={this.props.trigger}
           loading={this.state.loading}
         >
-          {this.props.dict['header.menu.interface.create']}
+          鍒涘缓鎺ュ彛
         </Button>
         {/* 鎺ュ彛閫夐」 */}
         <Modal
-          title={this.props.dict['header.menu.interface.create']}
+          title="鍒涘缓鎺ュ彛"
           visible={this.state.visible}
           width={500}
           maskClosable={false}
@@ -1100,7 +1123,6 @@
           destroyOnClose
         >
           <MutilForm
-            dict={this.props.dict}
             formlist={this.state.formlist}
             wrappedComponentRef={(inst) => this.FormRef = inst}
           />
@@ -1110,4 +1132,4 @@
   }
 }
 
-export default CreateFunc
+export default CreateInterface

--
Gitblit v1.8.0