From b28b2a89838cf0eb8c7c2d7ec605d79610309af9 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 15 六月 2023 17:46:11 +0800
Subject: [PATCH] 2023-06-15

---
 src/tabviews/zshare/actionList/normalbutton/index.jsx |  139 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 135 insertions(+), 4 deletions(-)

diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx
index 07a4c6c..8b9b3ea 100644
--- a/src/tabviews/zshare/actionList/normalbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx
@@ -1,6 +1,7 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import moment from 'moment'
+import qs from 'qs'
 import { is, fromJS } from 'immutable'
 import { Button, Modal, notification, message, Drawer, Switch, Checkbox, Progress } from 'antd'
 
@@ -832,6 +833,93 @@
     return _params
   }
 
+  getLineParam = (data, formdata, retmsg) => {
+    const { setting, btn, columns } = this.props
+    let _params = []
+
+    if (btn.Ot === 'notRequired') {
+      if (retmsg) {
+        let param = {
+          $callbacksql: this.getSysDeclareSql(btn, formdata, data[0], columns, '', this.props.BID)
+        }
+        
+        _params.push(param)
+      } else {
+        _params.push({})
+      }
+    } else if ( btn.Ot === 'requiredSgl' || btn.Ot === 'requiredOnce' ) {
+      let param = {}
+
+      if (this.props.BID) {
+        param.BID = this.props.BID
+      }
+      
+      let primaryId = ''
+
+      if ((btn.Ot === 'requiredSgl' || btn.Ot === 'requiredOnce') && setting.primaryKey) {
+        let ids = data.map(d => { return d[setting.primaryKey] || ''})
+        ids = ids.filter(Boolean)
+        primaryId = ids.join(',')
+      }
+
+      if (setting.primaryKey) {
+        param[setting.primaryKey] = primaryId // 璁剧疆涓婚敭鍙傛暟
+      }
+
+      if (btn.OpenType === 'pop' || btn.OpenType === 'formSubmit' || btn.OpenType === 'form') { // 琛ㄥ崟
+        formdata.forEach(_data => {
+          param[_data.key] = _data.value
+        })
+      }
+
+      if (retmsg) {
+        param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns, primaryId, this.props.BID)
+      }
+
+      _params.push(param)
+    } else if (btn.Ot === 'required') {
+      _params = data.map((cell, index) => {
+        let param = {}
+
+        if (this.props.BID) {
+          param.BID = this.props.BID
+        }
+
+        let primaryId = setting.primaryKey ? cell[setting.primaryKey] || '' : ''
+
+        if (btn.OpenType === 'pop') { // 琛ㄥ崟
+          if (index !== 0) {
+            let _cell = {}
+            Object.keys(cell).forEach(key => {
+              _cell[key.toLowerCase()] = cell[key]
+            })
+            formdata = formdata.map(_data => {
+              if (_data.readin && _cell.hasOwnProperty(_data.key.toLowerCase())) {
+                _data.value = _cell[_data.key.toLowerCase()]
+              }
+              return _data
+            })
+          }
+
+          formdata.forEach(_data => {
+            param[_data.key] = _data.value
+          })
+        }
+        if (setting.primaryKey) {
+          param[setting.primaryKey] = primaryId
+        }
+
+        if (retmsg) {
+          param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns, primaryId, this.props.BID)
+        }
+
+        return param
+      })
+    }
+
+    return _params
+  }
+
   /**
    * @description 鑾峰彇鍥炶皟鑴氭湰鐨勫瓧娈靛畾涔�
    */
@@ -1156,8 +1244,10 @@
           item.script_type = 'Y'
           return item
         })
-      } else {
+      } else if (btn.procMode === 'inner') {
         _params = this.getInnerParam(data, formdata, btn.callbackType === 'script')
+      } else {
+        _params = this.getLineParam(data, formdata, btn.callbackType === 'script')
       }
 
       if (_params.length > 1 && btn.progress === 'progressbar' && btn.$toolbtn) {
@@ -1177,8 +1267,10 @@
           item.script_type = 'Y'
           return item
         })
-      } else {
+      } else if (btn.procMode === 'inner') {
         params = this.getInnerParam(data, formdata, btn.callbackType === 'script')
+      } else {
+        params = this.getLineParam(data, formdata, btn.callbackType === 'script')
       }
 
       if (params.length > 1 && btn.progress === 'progressbar' && btn.$toolbtn) {
@@ -1269,7 +1361,46 @@
       param[key] = result[key]
     })
 
-    Api.directRequest(url, btn.method, param, btn.cross).then(res => {
+    let _params = {
+      url: url,
+      method: btn.method || 'post'
+    }
+
+    if (btn.cross === 'true') {
+      if (JSON.stringify(param) !== '{}') {
+        if (btn.stringify === 'qs') {
+          _params.data = qs.stringify(param)
+        } else if (btn.stringify === 'JSON') {
+          _params.data = param
+        } else {
+          _params.data = JSON.stringify(param)
+        }
+      }
+    } else {
+      let _url = url
+      if (JSON.stringify(param) !== '{}') {
+        if (_params.method === 'get') {
+          let keys = Object.keys(param).map(key => `${key}=${param[key]}`)
+          _url = _url + '?' + keys.join('&')
+        } else if (_params.method === 'post') {
+          if (btn.stringify === 'qs') {
+            _params.data = qs.stringify(param)
+          } else if (btn.stringify === 'JSON') {
+            _params.data = param
+          } else {
+            _params.data = JSON.stringify(param)
+          }
+        }
+      }
+  
+      _url = _url.replace(/&/ig, '%26')
+
+      _params.url = '/trans/redirect?rd=' + _url + '&method=' + _params.method
+
+      _params.method = 'post'
+    }
+
+    Api.directRequest(_params).then(res => {
       if (typeof(res) !== 'object') {
         let error = '鏈煡鐨勮繑鍥炵粨鏋滐紒'
 
@@ -2222,7 +2353,7 @@
         if (!res.oa_access_token) return
   
         params.forEach(n => {
-          Api.wxNginxRequest(`${domain2}cgi-bin/message/template/send?access_token=${res.oa_access_token}`, 'post', n).then(re => {
+          Api.wxNginxRequest(`${domain2}cgi-bin/message/template/send?access_token=${res.oa_access_token}`, 'post', JSON.stringify(n)).then(re => {
             if (verify.wxNoteCallback === 'true') {
               let msg = re.errmsg || ''
 

--
Gitblit v1.8.0