Parcourir la source

删除标段相关

MaiXinRong il y a 6 ans
Parent
commit
a85c39e18b
3 fichiers modifiés avec 45 ajouts et 6 suppressions
  1. 14 2
      app/controller/tender_controller.js
  2. 7 2
      app/public/js/ledger.js
  3. 24 2
      app/service/tender.js

+ 14 - 2
app/controller/tender_controller.js

@@ -112,7 +112,6 @@ module.exports = app => {
          * @return {Promise<void>}
          */
         async updateTender(ctx) {
-
         }
 
         /**
@@ -122,7 +121,20 @@ module.exports = app => {
          * @return {Promise<void>}
          */
         async deleteTender(ctx) {
-
+            try {
+                const data = JSON.parse(ctx.request.body.data), result = [];
+                if (!(data instanceof Array) && (data.length === 0)) {
+                    throw '提交数据有误';
+                }
+                for (const id of data) {
+                    if (await ctx.service.tender.deleteTenderNoBackup(id)) {
+                        result.push(id);
+                    }
+                }
+                ctx.body = {err: 0, msg: '', data: result};
+            } catch (err) {
+                ctx.body = {err: 1, msg: err.toString(), data: []}
+            }
         }
 
         /**

+ 7 - 2
app/public/js/ledger.js

@@ -300,7 +300,11 @@ $(document).ready(function() {
                     tender_id: node.tender_id,
                     ledger_id: node.ledger_id
                 };
-                data[col.field] = col.type === 'Number' ? parseFloat(info.editingText) : info.editingText.replace('\n', '');
+                if (info.editingText) {
+                    data[col.field] = col.type === 'Number' ? parseFloat(info.editingText) : info.editingText.replace('\n', '');
+                } else {
+                    data[col.field] = null;
+                }
                 console.log(JSON.stringify(data));
 
                 info.sheet.zh_tree.update('/tender/' + getTenderId() + '/ledger/update', data, function (result) {
@@ -315,7 +319,7 @@ $(document).ready(function() {
          */
         clipboardPasted: function (e, info) {
             if (info.sheet.zh_setting && info.sheet.zh_dataType === 'tree') {
-                const tree = sheet.zh_tree;
+                const tree = info.sheet.zh_tree;
                 if (!tree) { return; }
 
                 const sortData = info.sheet.zh_tree.nodes;
@@ -334,6 +338,7 @@ $(document).ready(function() {
                         nodes.push(node);
                     }
                 }
+                console.log(JSON.stringify(datas));
                 info.sheet.zh_tree.update('/tender/' + getTenderId() + '/ledger/update', datas, function (result) {
                     treeOperationObj.refreshTree(info.sheet, result);
                 });

+ 24 - 2
app/service/tender.js

@@ -181,17 +181,39 @@ module.exports = app => {
          * @return {Boolean} - 删除结果
          */
         async deleteTenderById(id) {
-
             const updateData = {
                 status: this.status.DISABLE,
                 id,
             };
-
             const result = this.db.update(this.tableName, updateData);
 
             return result.affectedRows > 0;
         }
 
+        async deleteTenderNoBackup(id) {
+            const transaction = await this.db.beginTransaction();
+            try {
+                await transaction.delete(this.tableName, {id});
+                await transaction.delete(this.ctx.service.tenderInfo.tableName, {tid: id});
+                await transaction.delete(this.ctx.service.ledger.tableName, {tender_id: id});
+                await transaction.delete(this.ctx.service.ledgerAudit.tableName, {tender_id: id});
+                await transaction.delete(this.ctx.service.ledgerAudit.tableName + '_copy', {tender_id: id});
+                await transaction.delete(this.ctx.service.pos.tableName, {tid: id});
+                await transaction.delete(this.ctx.service.pay.tableName, {tid: id});
+                await transaction.delete(this.ctx.service.stage.tableName, {tid: id});
+                await transaction.delete(this.ctx.service.stageAudit.tableName, {tid: id});
+                await transaction.delete(this.ctx.service.stageBills.tableName, {tid: id});
+                await transaction.delete(this.ctx.service.stagePos.tableName, {tid: id});
+                await transaction.delete(this.ctx.service.stageDetail.tableName, {tid: id});
+                await transaction.delete(this.ctx.service.stagePay.tableName, {tid: id});
+                await transaction.commit();
+                return true;
+            } catch (err) {
+                await transaction.rollback();
+                return false;
+            }
+        }
+
         /**
          * 切换标段
          *