From 71b872aa44de6266a344646d0e535895620d57a7 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 05 一月 2020 22:45:06 +0800
Subject: [PATCH] 2020-01-05

---
 src/api/index.js                              |    6 -
 src/tabviews/subtable/index.jsx               |    4 
 src/tabviews/commontable/mainTable/index.scss |    5 +
 src/tabviews/commontable/mainTable/index.jsx  |   14 ++++
 src/templates/comtableconfig/index.jsx        |   39 +++++++++++-
 src/tabviews/tableshare/fileupload/index.jsx  |   15 ++--
 src/templates/subtableconfig/index.jsx        |    4 
 src/utils/utils.js                            |   19 ++++--
 src/tabviews/tableshare/actionList/index.jsx  |   73 ++++++++++++++---------
 9 files changed, 123 insertions(+), 56 deletions(-)

diff --git a/src/api/index.js b/src/api/index.js
index 9d6ecac..0a4e201 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -255,11 +255,7 @@
   /**
    * @description 鏂囦欢涓婁紶
    */
-  getFileUpload (file) {
-    const param = new FormData()
-    param.append('file', file)
-    param.append('RootPath', 'Content/images/upload/')
-
+  getFileUpload (param) {
     return axios({
       url: '/zh-CN/Home/Upload',
       data: param
diff --git a/src/tabviews/commontable/mainTable/index.jsx b/src/tabviews/commontable/mainTable/index.jsx
index 049989f..3bcf3b9 100644
--- a/src/tabviews/commontable/mainTable/index.jsx
+++ b/src/tabviews/commontable/mainTable/index.jsx
@@ -124,6 +124,20 @@
           </div>
         </div>
       )
+    } else if (item.type === 'picture') {
+      let photos = ''
+      if (item.field && record.hasOwnProperty(item.field)) {
+        photos = record[item.field].split(',')
+      } else {
+        photos = ''
+      }
+      return (
+        <div className="picture-col" style={{ minWidth: (item.Width || 120) + 'px' }}>
+          {photos && photos.map((url, i) => {
+            return <img key={`${i}`} src={url} alt=""/>
+          })}
+        </div>
+      )
     } else if (item.type === 'action') {
       return (
         <div className={item.style} style={{ minWidth: (item.Width || 120) + 'px' }}>
diff --git a/src/tabviews/commontable/mainTable/index.scss b/src/tabviews/commontable/mainTable/index.scss
index c4d549d..93f37b9 100644
--- a/src/tabviews/commontable/mainTable/index.scss
+++ b/src/tabviews/commontable/mainTable/index.scss
@@ -49,6 +49,11 @@
           word-wrap: break-word;
           word-break: break-word;
         }
+        .picture-col {
+          img {
+            max-width: 100%;
+          }
+        }
       }
       .ant-table-tbody > tr > td.ant-table-column-has-actions {
         position: relative;
diff --git a/src/tabviews/subtable/index.jsx b/src/tabviews/subtable/index.jsx
index 1923161..03dd628 100644
--- a/src/tabviews/subtable/index.jsx
+++ b/src/tabviews/subtable/index.jsx
@@ -358,12 +358,12 @@
 
     let LText = `select top ${pageSize} ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable where rows > ${pageSize * (pageIndex - 1)} order by tmptable.rows`
     let DateCount = `select count(1) as total from ${_dataresource} ${_search}`
-    console.log(LText)
+
     param.LText = Utils.formatOptions(LText)
     param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
     param.secretkey = Utils.encrypt(param.LText, param.timestamp)
     param.DateCount = Utils.formatOptions(DateCount)
-    console.log(param)
+
     return param
   }
 
diff --git a/src/tabviews/tableshare/actionList/index.jsx b/src/tabviews/tableshare/actionList/index.jsx
index 2acdec2..eca17b6 100644
--- a/src/tabviews/tableshare/actionList/index.jsx
+++ b/src/tabviews/tableshare/actionList/index.jsx
@@ -122,6 +122,7 @@
    */
   execSubmit = (btn, data, _resolve, formdata) => {
     const { setting } = this.props
+
     if (btn.intertype === 'inner') {
       // 浣跨敤鍐呴儴鎺ュ彛鏃讹紝鍐呴儴鍑芥暟鍜屾暟鎹簮涓嶅彲鍚屾椂涓虹┖, 浣跨敤绯荤粺鍑芥暟鏃讹紝绫诲瀷涓嶅彲涓虹┖
       if (!btn.innerFunc && (!btn.sql || (btn.sql && !btn.sqlType))) {
@@ -141,6 +142,10 @@
           BID: this.props.BID
         }
 
+        if (setting.primaryKey) {
+          param[setting.primaryKey] = (data[0] && data[0][setting.primaryKey]) || ''
+        }
+
         if (btn.OpenType === 'prompt' || btn.OpenType === 'exec') { // 鏄惁寮规鎴栫洿鎺ユ墽琛�
           let ID = ''
           if (btn.Ot === 'notRequired') {
@@ -152,7 +157,9 @@
             ID = ids.join(',')
           }
 
-          param.ID = ID
+          if (setting.primaryKey) {
+            param[setting.primaryKey] = ID
+          }
 
           if (btn.innerFunc) {
             param.func = btn.innerFunc
@@ -168,21 +175,16 @@
             formdata.forEach(_data => {
               param[_data.key] = _data.value
             })
-            if (setting.primaryKey) {
-              if (!param.hasOwnProperty(setting.primaryKey) && data[0] && data[0][setting.primaryKey]) {
-                param[setting.primaryKey] = data[0][setting.primaryKey]
-              }
-            }
-            if (!param.hasOwnProperty('ID') && setting.primaryKey && data[0] && data[0][setting.primaryKey]) {
-              param.ID = data[0][setting.primaryKey]
-            }
+
           } else if (btn.sql && btn.sqlType === 'insert') {
-            param.ID = Utils.getguid()
+            if (setting.primaryKey) {
+              param[setting.primaryKey] = Utils.getguid()
+            }
+
             param.LText = Utils.formatOptions(Utils.getSysDefaultSql(btn, setting, formdata)) // 鏁版嵁婧�
             param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
             param.secretkey = Utils.encrypt(param.LText, param.timestamp)
           } else if (btn.sql) {
-            param.ID = data[0][setting.primaryKey]
             param.LText = Utils.formatOptions(Utils.getSysDefaultSql(btn, setting, formdata)) // 鏁版嵁婧�
             param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
             param.secretkey = Utils.encrypt(param.LText, param.timestamp)
@@ -205,8 +207,11 @@
             BID: this.props.BID
           }
 
+          if (setting.primaryKey) {
+            param[setting.primaryKey] = cell[setting.primaryKey] || ''
+          }
+
           if (btn.OpenType === 'prompt' || btn.OpenType === 'exec') { // 鏄惁寮规鎴栫洿鎺ユ墽琛�
-            param.ID = cell[setting.primaryKey]
 
             if (btn.innerFunc) {
               param.func = btn.innerFunc
@@ -222,14 +227,11 @@
               formdata.forEach(_data => {
                 param[_data.key] = _data.value
               })
-              if (!param.hasOwnProperty(setting.primaryKey) && cell[setting.primaryKey]) {
+
+            } else if (btn.sql) {
+              if (setting.primaryKey) {
                 param[setting.primaryKey] = cell[setting.primaryKey]
               }
-              if (!param.hasOwnProperty('ID') && cell[setting.primaryKey]) {
-                param.ID = cell[setting.primaryKey]
-              }
-            } else if (btn.sql) {
-              param.ID = cell[setting.primaryKey]
               param.LText = Utils.formatOptions(Utils.getSysDefaultSql(btn, setting, formdata)) // 鏁版嵁婧�
               param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
               param.secretkey = Utils.encrypt(param.LText, param.timestamp)
@@ -268,7 +270,6 @@
     } else if (btn.intertype === 'outer') {
       /** *********************璋冪敤澶栭儴鎺ュ彛************************* */
       let param = {
-        ID: '',
         BID: this.props.BID
       }
 
@@ -282,11 +283,11 @@
         // 鑾峰彇id
         if (btn.Ot === 'notRequired') {
           
-        } else if (btn.Ot === 'requiredSgl') {
-          param.ID = data[0][setting.primaryKey]
-        } else if (btn.Ot === 'requiredOnce') {
+        } else if (btn.Ot === 'requiredSgl' && setting.primaryKey) {
+          param[setting.primaryKey] = data[0][setting.primaryKey]
+        } else if (btn.Ot === 'requiredOnce' && setting.primaryKey) {
           let ids = data.map(d => { return d[setting.primaryKey]})
-          param.ID = ids.join(',')
+          param[setting.primaryKey] = ids.join(',')
         }
 
         new Promise(resolve => {
@@ -368,7 +369,9 @@
                 BID: this.props.BID,
                 func: btn.innerFunc
               }
-              _param.ID = cell[setting.primaryKey]
+              if (setting.primaryKey) {
+                _param[setting.primaryKey] = cell[setting.primaryKey]
+              }
               return new Promise(resolve => {
                 Api.genericInterface(_param).then(res => {
                   resolve(res)
@@ -398,10 +401,14 @@
             })
           } else {
             let params = data.map(cell => {
-              return {
+              let _cell = {
                 BID: this.props.BID,
-                ID: cell[setting.primaryKey]
               }
+              if (setting.primaryKey) {
+                _cell[setting.primaryKey] = cell[setting.primaryKey]
+              }
+
+              return _cell
             })
             resolve(params)
           }
@@ -510,18 +517,26 @@
    * 5銆侀�氱煡涓诲垪琛ㄥ埛鏂�
    */
   execSuccess = (btn, res) => {
-    if (btn.OpenType === 'excelOut') {
+    if (btn.OpenType === 'excelOut') { // 瀵煎嚭excel
       this.setState({
         loadingUuid: ''
       })
-    } else if (res && res.ErrCode === 'S') {
+    } else if (res && res.ErrCode === 'S') { // 鎵ц鎴愬姛
       notification.success({
         top: 92,
         message: res.ErrMesg || this.props.dict['main.action.confirm.success'],
         duration: 2
       })
-    } else if (res && res.ErrCode === '-1') {
+    } else if (res && res.ErrCode === '-1') { // 瀹屾垚鍚庝笉鎻愮ず
 
+    } else if (res.Relogin === 'true') { // 鍒囨崲鐢ㄦ埛鍔熻兘
+      sessionStorage.setItem('UserID', res.UserID)
+      sessionStorage.setItem('SessionUid', Utils.getuuid())
+      sessionStorage.setItem('LoginUID', res.LoginUID)
+      sessionStorage.setItem('User_Name', res.UserName)
+      
+      window.location.reload()
+      return
     }
     
     if (btn.OpenType === 'pop' && btn.setting && btn.setting.finish !== 'unclose') {
diff --git a/src/tabviews/tableshare/fileupload/index.jsx b/src/tabviews/tableshare/fileupload/index.jsx
index e9c02bd..682498f 100644
--- a/src/tabviews/tableshare/fileupload/index.jsx
+++ b/src/tabviews/tableshare/fileupload/index.jsx
@@ -57,24 +57,25 @@
     }
   }
 
-  shardupload = (file, shardSize, shardCount, i) => {
+  shardupload = (file, shardSize, shardCount, i, fileList) => {
     let start = i * shardSize
     let end = Math.min(file.size, start + shardSize)
     let form = new FormData()
 
-    form.append('data', file.slice(start, end)) //slice鏂规硶鐢ㄤ簬鍒囧嚭鏂囦欢鐨勪竴閮ㄥ垎
+    form.append('file', file.slice(start, end)) //slice鏂规硶鐢ㄤ簬鍒囧嚭鏂囦欢鐨勪竴閮ㄥ垎
+    form.append('RootPath', 'Content/images/upload/')
     form.append('name', file.name)
     form.append('total', shardCount)
     form.append('index', i + 1)
 
     if (i < shardCount) {
       i++
-      Api.getFileUpload(file).then(res => {
+      Api.getFileUpload(form).then(res => {
         if (res) {
           this.setState({
             percent: Math.floor(100 * (i / shardCount))
           })
-          this.shardupload(file, shardSize, shardCount, i)
+          this.shardupload(file, shardSize, shardCount, i, fileList)
         }
       })
     } else {
@@ -92,8 +93,8 @@
   }
 
   beforeUpload = (file, fileList) => {
-    let shardSize = 200 * 1024 * 1024
-    // console.log(file)
+    let shardSize = 2 * 1024 * 1024
+    // let shardSize = 3 * 1024
 
     if (file.size > shardSize) {
       this.setState({
@@ -101,7 +102,7 @@
         percent: 0
       })
       let shardCount = Math.ceil(file.size / shardSize)
-      this.shardupload(file, shardSize, shardCount, 0)
+      this.shardupload(file, shardSize, shardCount, 0, fileList)
       return false
     } else {
       return true
diff --git a/src/templates/comtableconfig/index.jsx b/src/templates/comtableconfig/index.jsx
index 187031b..ae698a1 100644
--- a/src/templates/comtableconfig/index.jsx
+++ b/src/templates/comtableconfig/index.jsx
@@ -69,7 +69,8 @@
     delActions: [],          // 鍒犻櫎鎸夐挳鍒楄〃
     funcLoading: false,      // 瀛樺偍杩囩▼鍒涘缓涓�
     showColumnName: false,   // 鏄剧ず鍒楀瓧娈靛悕鎺у埗
-    tabviews: []             // 鎵�鏈夋爣绛鹃〉
+    tabviews: [],            // 鎵�鏈夋爣绛鹃〉
+    profileVisible: false    // 楠岃瘉淇℃伅妯℃�佹
   }
 
   /**
@@ -1320,7 +1321,7 @@
                 fields: fields,
                 menuNo: menu.MenuNo
               }
-              newLText = Utils.formatOptions(Utils.getfunc(_param, btn, menu, _config.columns))
+              newLText = Utils.formatOptions(Utils.getfunc(_param, btn, menu, _config))
               DelText = Utils.formatOptions(Utils.dropfunc(_param.funcName))
               resolve(true)
             } else {
@@ -1339,7 +1340,7 @@
             fields: '',
             menuNo: menu.MenuNo
           }
-          newLText = Utils.formatOptions(Utils.getfunc(_param, btn, menu, _config.columns))
+          newLText = Utils.formatOptions(Utils.getfunc(_param, btn, menu, _config))
           DelText = Utils.formatOptions(Utils.dropfunc(_param.funcName))
           resolve(true)
         }
@@ -1834,10 +1835,19 @@
     })
   }
 
+  /**
+   * @description 楠岃瘉淇℃伅閰嶇疆
+   */
   profileAction = (element) => {
-    console.log(element)
+    // this.setState({
+    //   profileVisible: true,
+    //   card: element
+    // })
   }
 
+  /**
+   * @description 涓夌骇鑿滃崟鍒囨崲妯℃澘
+   */
   changeTemplate = () => {
     this.props.handleConfig('template')
   }
@@ -3019,6 +3029,27 @@
             <Empty />
           }
         </Modal>
+        {/* 鎸夐挳浣跨敤绯荤粺瀛樺偍杩囩▼鏃讹紝楠岃瘉淇℃伅妯℃�佹 */}
+        <Modal
+          wrapClassName="common-table-fields-modal"
+          title={'楠岃瘉淇℃伅'}
+          visible={this.state.profileVisible}
+          width={'65vw'}
+          style={{minWidth: '900px', maxWidth: '1200px'}}
+          cancelText={this.state.dict['header.close']}
+          onOk={this.addFieldSubmit}
+          onCancel={() => { // 鍙栨秷娣诲姞
+            this.setState({
+              tableVisible: false,
+              addType: ''
+            })
+          }}
+          destroyOnClose
+        >
+          {this.state.addType && this.state.fields.length > 0 ?
+            <EditCard data={this.state.fields} ref="searchcard" type={this.state.addType} dict={this.state.dict} /> : null
+          }
+        </Modal>
         {/* 璁剧疆鍏ㄥ眬閰嶇疆鍙婂垪琛ㄦ暟鎹簮 */}
         <Modal
           title={this.state.dict['header.edit']}
diff --git a/src/templates/subtableconfig/index.jsx b/src/templates/subtableconfig/index.jsx
index 5729634..93775e0 100644
--- a/src/templates/subtableconfig/index.jsx
+++ b/src/templates/subtableconfig/index.jsx
@@ -1151,7 +1151,7 @@
                 fields: fields,
                 menuNo: _config.tabNo
               }
-              newLText = Utils.formatOptions(Utils.getfunc(_param, btn, {MenuID: _config.uuid, MenuName: _config.tabName}, _config.columns))
+              newLText = Utils.formatOptions(Utils.getfunc(_param, btn, {MenuID: _config.uuid, MenuName: _config.tabName}, _config))
               DelText = Utils.formatOptions(Utils.dropfunc(_param.funcName))
               resolve(true)
             } else {
@@ -1170,7 +1170,7 @@
             fields: '',
             menuNo: _config.tabNo
           }
-          newLText = Utils.formatOptions(Utils.getfunc(_param, btn, {MenuID: _config.uuid, MenuName: _config.tabName}, _config.columns))
+          newLText = Utils.formatOptions(Utils.getfunc(_param, btn, {MenuID: _config.uuid, MenuName: _config.tabName}, _config))
           DelText = Utils.formatOptions(Utils.dropfunc(_param.funcName))
           resolve(true)
         }
diff --git a/src/utils/utils.js b/src/utils/utils.js
index 4d06275..e4b03b9 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -426,7 +426,7 @@
     let _datasource = item.dataSource
     let sql = ''
 
-    if (/\s/.test(_datasource)) {
+    if (/\s/.test(_datasource)) { // 鎷兼帴鍒悕
       _datasource = '(' + _datasource + ') tb'
     }
 
@@ -449,6 +449,7 @@
    * @return {String} table  琛ㄥ悕
    */
   static getSysDefaultSql (btn, setting, formdata) {
+    let primaryKey = setting.primaryKey || 'id'
     let _sql = ''
     if (btn.OpenType === 'pop' && btn.sqlType === 'insert') {
       let keys = []
@@ -476,11 +477,11 @@
         }
       })
       _form = _form.join(',')
-      _sql = `update ${btn.sql} set ${_form},modifydate=getdate(),modifyuserid=@userid where ${setting.primaryKey}=@id`
+      _sql = `update ${btn.sql} set ${_form},modifydate=getdate(),modifyuserid=@userid where ${primaryKey}=@${primaryKey}`
     } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'LogicDelete') { // 閫昏緫鍒犻櫎
-      _sql = `update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuserid=@userid where ${setting.primaryKey}=@id`
+      _sql = `update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuserid=@userid where ${primaryKey}=@${primaryKey}`
     } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'delete') {
-      _sql = `insert into snote (remark,createuserid) select '鍒犻櫎琛�:${btn.sql} 鏁版嵁: id='+@id,@userid delete ${btn.sql} where ${setting.primaryKey}=@id`
+      _sql = `insert into snote (remark,createuserid) select '鍒犻櫎琛�:${btn.sql} 鏁版嵁: ${primaryKey}='+@${primaryKey},@userid delete ${btn.sql} where ${primaryKey}=@${primaryKey}`
     }
 
     return _sql
@@ -502,6 +503,7 @@
     let form = ''
     let formParam = ''
     let _columns = []
+    let primaryKey = config.setting.primaryKey || 'ID'
 
     if (config.search && config.search.length > 0) {
       let _fields = new Map()
@@ -543,7 +545,7 @@
     let Ltext = `create proc ${param.innerFunc}
     ( /*${menu.MenuName}*/
     @BID nvarchar(50)='',
-    @ID nvarchar(50)='',${formParam}
+    @${primaryKey} nvarchar(50)='',${formParam}
     @PageIndex nvarchar(50)='',
     @PageSize nvarchar(50)='',
     @OrderCol nvarchar(50)='',
@@ -625,9 +627,12 @@
    * @description 鍒涘缓瀛樺偍杩囩▼
    * @return {String}
    */
-  static getfunc (param, btn, menu, columns) {
+  static getfunc (param, btn, menu, config) {
+    console.log(menu)
     let form = ''
     let formParam = ''
+    let columns = config.columns
+    let primaryKey = config.setting.primaryKey || 'ID'
 
     if (param.fields && param.fields.length > 0) {
       let _fields = []
@@ -691,7 +696,7 @@
     let Ltext = `create proc ${param.funcName}
     ( /*${menu.MenuName}  ${btn.label}*/
     @BID nvarchar(50)='',
-    @ID nvarchar(50)='',${formParam}
+    @${primaryKey} nvarchar(50)='',${formParam}
     @sEPTMenuNo nvarchar(50)='${param.menuNo}',
     @lang nvarchar(50)='',
     @debug nvarchar(50)='',

--
Gitblit v1.8.0