From 73a5124745890650d0fc91234bdbaa66d9bcbc6a Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 09 六月 2021 17:52:01 +0800
Subject: [PATCH] 2021-06-09

---
 src/components/header/index.jsx |  105 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 104 insertions(+), 1 deletions(-)

diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx
index 075ba1e..0fab405 100644
--- a/src/components/header/index.jsx
+++ b/src/components/header/index.jsx
@@ -371,7 +371,7 @@
     // 淇敼缂栬緫鐘舵��
     let UserID = sessionStorage.getItem('CloudUserID')
     let LoginUID = sessionStorage.getItem('CloudLoginUID')
-
+    
     if (!UserID || !LoginUID) {
       this.setState({
         loginVisible: true
@@ -408,6 +408,8 @@
           sessionStorage.setItem('dataM', res.dataM ? 'true' : '')
           sessionStorage.setItem('isEditState', 'true')
 
+          this.setSystemFuncs()
+
           this.props.modifyMenuTree([])
           this.props.modifyMainMenu(null)
           this.props.modifyTabview([])
@@ -431,6 +433,107 @@
     })
   }
 
+  setSystemFuncs = () => {
+    if (!window.GLOB.WebSql && !window.GLOB.IndexDB) {
+      return
+    }
+    this.getfuncTime().then(res => {
+      Api.getSystemFuncs(res.createDate).then(result => {
+        if (!result.status) {
+          notification.error({
+            top: 92,
+            message: result.message,
+            duration: 10
+          })
+          return
+        } else if (result.func_detail && result.func_detail.length > 0) {
+          this.writeFuncs(result.func_detail)
+        }
+      })
+    })
+  }
+
+  writeFuncs = (funcs) => {
+    let timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
+
+    let sys_datetime = sessionStorage.getItem('sys_datetime')
+    let app_datetime = sessionStorage.getItem('app_datetime')
+    if (sys_datetime && app_datetime) {
+      let seconds = Math.floor((new Date().getTime() - app_datetime) / 1000)
+      timestamp = moment(sys_datetime, 'YYYY-MM-DD HH:mm:ss').add(seconds, 'seconds').format('YYYY-MM-DD HH:mm:ss')
+    }
+
+    if (window.GLOB.WebSql) {
+      window.GLOB.WebSql.transaction(tx => {
+        tx.executeSql('DELETE FROM FUNCS')
+
+        funcs.forEach(item => {
+          if (!item.key_sql) return
+          tx.executeSql('INSERT INTO FUNCS (func_code, key_sql) VALUES (?, ?)', [item.func_code, item.key_sql])
+        })
+        tx.executeSql(`UPDATE VERSIONS SET createDate='${timestamp}' where CDefine1='funcs'`)
+      })
+    } else {
+      let objectStore = window.GLOB.IndexDB.transaction(['funcs'], 'readwrite').objectStore('funcs')
+
+      objectStore.clear()
+
+      funcs.forEach(item => {
+        if (!item.key_sql) return
+        item.id = item.func_code
+        objectStore.add(item)
+      })
+
+      let funcStore = window.GLOB.IndexDB.transaction(['version'], 'readwrite').objectStore('version')
+      funcStore.put({id: 'funcs', version: '1.0', createDate: timestamp})
+    }
+  }
+
+  getfuncTime = () => {
+    return new Promise((resolve, reject) => {
+      if (window.GLOB.WebSql) {
+        window.GLOB.WebSql.transaction(tx => {
+          tx.executeSql("SELECT * FROM VERSIONS where CDefine1='funcs'", [], (tx, results) => {
+            let rows = results.rows
+            if (rows.length === 0) {
+              tx.executeSql('DELETE FROM FUNCS')
+              tx.executeSql('INSERT INTO VERSIONS (version, createDate, CDefine1) VALUES (?, ?, ?)', ['1.0', '1970-01-01 14:59:09.000', 'funcs'])
+              resolve({createDate: '1970-01-01 14:59:09.000'})
+            } else {
+              resolve(rows[0])
+            }
+          }, (tx, results) => {
+            reject()
+            console.warn(results)
+          })
+        })
+      } else {
+        let objectStore = window.GLOB.IndexDB.transaction(['version'], 'readwrite').objectStore('version')
+        let request = objectStore.get('funcs')
+
+        request.onerror = (event) => {
+          console.warn(event)
+          reject()
+        }
+
+        request.onsuccess = () => {
+          if (request.result) {
+            resolve(request.result)
+          } else {
+            let add = objectStore.add({id: 'funcs', version: '1.0', createDate: '1970-01-01 14:59:09.000'})
+    
+            add.onerror = () => {
+              reject()
+            }
+            add.onsuccess = () => {
+              resolve({id: 'funcs', version: '1.0', createDate: '1970-01-01 14:59:09.000'})
+            }
+          }
+        }
+      }
+    })
+  }
+
   changeSystem = (system) => {
     let url = system.LinkUrl1
 

--
Gitblit v1.8.0