From 125517c3e09320afa84a9e19a084d56c8ec3317e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 05 二月 2025 22:49:20 +0800
Subject: [PATCH] 2025-02-05

---
 src/utils/utils.js |   45 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index bc7e3d2..09650c6 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -265,7 +265,7 @@
             }
 
             if (d) {
-              item.initval = moment(d).subtract(item.initval, 'month').format('YYYY-MM')
+              item.initval = moment(d).subtract(item.$initval, 'month').format('YYYY-MM')
             }
           }
         }
@@ -294,6 +294,10 @@
               item.initval = [moment().startOf('month').format(format), moment().endOf('month').format(format)].join(',')
             } else if (item.initval === 'lastMonth') {
               item.initval = [moment().subtract(1, 'months').startOf('month').format(format), moment().subtract(1, 'months').endOf('month').format(format)].join(',')
+            } else if (item.initval === 'year') {
+              item.initval = [moment().startOf('year').format(format), moment().endOf('year').format(format)].join(',')
+            } else if (item.initval === 'lastYear') {
+              item.initval = [moment().subtract(1, 'years').startOf('year').format(format), moment().subtract(1, 'years').endOf('year').format(format)].join(',')
             } else if (item.initval) {
               try {
                 let _initval = JSON.parse(item.initval)
@@ -335,6 +339,10 @@
                 item.initval = [moment(d).startOf('month').format(format), moment(d).endOf('month').format(format)].join(',')
               } else if (item.$initval === 'lastMonth') {
                 item.initval = [moment(d).subtract(1, 'months').startOf('month').format(format), moment(d).subtract(1, 'months').endOf('month').format(format)].join(',')
+              } else if (item.$initval === 'year') {
+                item.initval = [moment(d).startOf('year').format(format), moment(d).endOf('year').format(format)].join(',')
+              } else if (item.$initval === 'lastYear') {
+                item.initval = [moment(d).subtract(1, 'years').startOf('year').format(format), moment(d).subtract(1, 'years').endOf('year').format(format)].join(',')
               } else {
                 try {
                   let _initval = JSON.parse(item.$initval)
@@ -1522,7 +1530,7 @@
  * @return {Object} item   鎸夐挳淇℃伅
  * @return {Array}  data   excel鏁版嵁
  */
-export function getEditTableSql (verify, data, columns) {
+export function getEditTableSql (verify, data, columns, setting) {
   let btn = verify
   let userName = sessionStorage.getItem('User_Name') || ''
   let fullName = sessionStorage.getItem('Full_Name') || ''
@@ -1641,6 +1649,7 @@
         let _fields = unique.field.split(',')
         let _fields_ = _fields.map(_field => `a.${_field}=b.${_field}`)
         _fields_ = _fields_.join(' and ')
+        _fields_ += ` and a.jskey != b.${setting.primaryKey || 'id'}`
 
         let _where = []
         _fields.forEach(f => {
@@ -1697,6 +1706,7 @@
 
     let declarefields = []
     let fields = []
+    let upFields = []
 
     columns.forEach(col => {
       let key = col.field.toLowerCase()
@@ -1704,15 +1714,27 @@
 
       declarefields.push(`${col.field} ${col.datatype}`)
       fields.push(col.field)
+      upFields.push(`${col.field}=t.${col.field}`)
     })
 
     fields = fields.join(',')
+    upFields = upFields.join(',')
 
     let _insert = ''
     if (btn.default !== 'false') {
       _insert = `
       /* 榛樿sql */
-      Insert into ${database}${sheet} (${fields},createuserid,createuser,createstaff,bid) 
+      update a set ${upFields},modifydate=getdate(),modifyuserid='${sessionStorage.getItem('UserID') || ''}',modifyuser=@username,modifystaff=@fullname,deleted=0
+      from (select * from #${sheet} where data_type='upt') t
+      inner join ${database}${sheet} a on t.jskey=a.${setting.primaryKey || 'id'}
+
+      update a set deleted=1,modifydate=getdate(),modifyuserid='${sessionStorage.getItem('UserID') || ''}',modifyuser=@username,modifystaff=@fullname 
+      from (select * from #${sheet} where data_type='del') t
+      inner join ${database}${sheet} a on t.jskey=a.${setting.primaryKey || 'id'}
+
+      delete t from #${sheet} t inner join ${database}${sheet} a on t.jskey=a.${setting.primaryKey || 'id'}
+
+      Insert into ${database}${sheet} (${fields},createuserid,createuser,createstaff,bid)
       Select ${fields},'${sessionStorage.getItem('UserID') || ''}',@username,@fullname,'${BID}' From #${sheet}
       `
     }
@@ -1820,9 +1842,20 @@
   let _initFormfields = []
   let _initColfields = []
   let _declarefields = []
+  let verifyValSql = ''
 
   // 鑾峰彇瀛楁閿�煎
   formdata && formdata.forEach(form => {
+    if (form.$verify) {
+      verifyValSql += `
+      if @${form.key}=${form.type === 'number' ? 0 : `''`}
+      begin
+        select @errorcode='E',@retmsg='${form.label}锛屽叧鑱斾富琛ㄥけ鏁�'
+        goto aaa
+      end
+      `
+    }
+
     let _key = form.key.toLowerCase()
 
     if (!_initvars.includes(_key)) {
@@ -1830,7 +1863,7 @@
       let val = form.value
 
       if (form.type === 'number' || form.type === 'rate') {
-        if (isNaN(val)) {
+        if (isNaN(val) || val === '') {
           val = 0
         }
         _initFormfields.push(`@${_key}=${val}`)
@@ -2879,6 +2912,10 @@
     _sql += _backCustomScript
   }
 
+  if (verifyValSql) {
+    _sql += verifyValSql
+  }
+
   if (window.GLOB.breakpoint) {
     let start = new RegExp('\\/\\*\\$breakpoint_begin_' + window.GLOB.breakpoint + '@', 'ig')
     let end = new RegExp('@breakpoint_end_' + window.GLOB.breakpoint + '\\$\\*\\/', 'ig')

--
Gitblit v1.8.0