From fbd4bea7bd57b4d4a33cb9ed0ebc15d9bf6551c0 Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期三, 12 七月 2023 17:54:54 +0800
Subject: [PATCH] 近日更新按钮,页面以及apex类

---
 force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js |  286 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 147 insertions(+), 139 deletions(-)

diff --git a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
index 47f681b..49ec240 100644
--- a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
+++ b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
@@ -4,7 +4,7 @@
  * @Author: chen jing wu
  * @Date: 2023-04-20 15:04:03
  * @LastEditors: chen jing wu
- * @LastEditTime: 2023-05-31 11:42:30
+ * @LastEditTime: 2023-07-10 17:41:12
  */
 const columns2=[
     { label: '--鏃�--', value: '' },
@@ -31,7 +31,7 @@
 ];
 const columns3 = [
     {label : "澶卞崟鍝佺墝",fieldName : "LostBrandName__c"},
-    {label : "澶卞崟瀵规墜鍨嬪彿",fieldName : "LostProduct__c"},
+    {label : "澶卞崟瀵规墜鍨嬪彿",fieldName : "productName"},
     {label : "澶卞崟鏁伴噺",fieldName : "Quantity__c",type : "number"},
     {label : "澶卞崟瀵规墜鍨嬪彿(鎵嬪姩)",fieldName : "LostProductMannual__c"},
     {label : "澶卞崟浜у搧绫诲埆",fieldName : "ProductClass__c"},
@@ -47,12 +47,11 @@
 import { CurrentPageReference } from "lightning/navigation";
 import dataEntry from '@salesforce/apex/lexPCLLostReportLwcController.dataEntry';
 import { ShowToastEvent } from 'lightning/platformShowToastEvent';
-import setbrand from '@salesforce/apex/lexPCLLostReportLwcController.setBrand';
 import init from '@salesforce/apex/lexPCLLostReportLwcController.init';
 import multiSelectCombobox from 'c/multiSelectCombobox'
-import lexMultiSelectCombobox from 'c/lexmultiSelectCombobox';
 import searchBrands from '@salesforce/apex/lexPCLLostReportLwcController.searchBrands';
 import getNewLostBrand from '@salesforce/apex/lexPCLLostReportLwcController.getNewLostBrand';
+import getNewLostProduct from '@salesforce/apex/lexPCLLostReportLwcController.getNewLostProduct';
 import getPickList from '@salesforce/apex/lexPCLLostReportLwcController.getPickList';
 import { NavigationMixin } from 'lightning/navigation';
 import submit from '@salesforce/apex/lexPCLLostReportLwcController.submit';
@@ -64,13 +63,16 @@
 
     @api oppId;
     @track columns2=columns2;
-    @api pageStatus = 'Create';
+    @track status = {
+        pageStatus: 'Create'
+      }
     @track LostReport = {
         LostBrands: [
         ],
         lostReport: {}
     }
     @track brandOptions = [];
+    @track isInit = false;
     lostType = '澶卞崟';
     submitFlag = '';
     flag;
@@ -84,11 +86,15 @@
     //澶卞崟绫诲瀷
     RecordTypeOptions = RecordTypeOptions;
     isSubmit = false;
+    deleteBrandIdList = [];
+    deleteProductIdList = [];
+    IsLoading;
+    newApprovalHistorys;
     connectedCallback(){
         init({
             oppId1: this.oppId,
             lostReportId1: this.reportId,
-            pageStatus1: this.pageStatus,
+            pageStatus1: this.status.pageStatus,
             lostType1: this.lostType,
             submitFlag1: this.submitFlag
         }).then(result=>{
@@ -104,7 +110,11 @@
                 this.LostReport = report;
                 this.LostReport.lostReport.LostTotalAmount__c = 0.0;
                 this.LostReport.lostReport.InclusionUltrasound__c = '0';
+
                 this.newProduct = JSON.parse(JSON.stringify(this.LostReport.LostBrands[0].LostProducts[0]));
+                this.newApprovalHistorys = JSON.parse(JSON.stringify(this.LostReport.approvalHistorys));
+                console.log(this.LostReport);
+                this.isInit = true;
             }
             }).catch(error=>{
                 console.log("error");
@@ -125,6 +135,9 @@
             fieldName: 'ProductCategory__c'
         }).then(result=>{
             this.productOptionsList = JSON.parse(result);
+        }).catch(error=>{
+            console.log('error');
+            console.log(error);
         });
 
     }
@@ -157,19 +170,22 @@
         updateRecord({fields: { Id: recordId }});
     }
 
-    get isInit(){
-        if(this.LostReport.LostBrands[0].LostProducts[0].productOptions == undefined){
-            return false;
-        }else{
-            return true;
-        }
-    }
+    // get isInit(){
+    //     if(this.LostReport.LostBrands[0].LostProducts[0].productOptions == undefined){
+    //         return false;
+    //     }else{
+    //         return true;
+    //     }
+    // }
    
     get getData(){
-        var products = this.LostReport.LostBrands[this.tableflag].LostProducts;
+        var newLostReport = JSON.parse(JSON.stringify(this.LostReport));
+        var products = newLostReport.LostBrands[this.tableflag].LostProducts;
         var productList = [];
         products.forEach(product=>{
-            productList.push(product.LostProductss);
+            var newProduct = product;
+            newProduct.LostProductss.productName = newProduct.productName;
+            productList.push(newProduct.LostProductss);
         });
         this.tableflag++;
         return productList;
@@ -184,26 +200,32 @@
     }
 
     get isView(){
-        if(this.pageStatus == 'View'){
+        if(this.status.pageStatus == 'View'){
             return true;
         }
         return false;
     }
 
     get isCreateOrEdit(){
-        if(this.pageStatus == 'Create' || this.pageStatus == 'Edit'){
+        if(this.status.pageStatus == 'Create' || this.status.pageStatus == 'Edit'){
             return true;
         }
         return false;
     }
 
     get isEdit(){
-        if(this.pageStatus == 'Edit'){
+        if(this.status.pageStatus == 'Edit'){
             return true;
         }
         return false;
     }
-    
+    get isSubmit(){
+        if(this.submitFlag){
+            return true;
+        }
+        return false;
+    }
+
     addBrandJs() {
         getNewLostBrand({
             lineNo: this.LostReport.LostBrands.length
@@ -211,8 +233,18 @@
             this.LostReport.LostBrands.push(result);
         });
     }
+    addRow(event){
+        var index = event.target.name;
+        getNewLostProduct({
+            lineNo2: this.LostReport.LostBrands[index].LostProducts.length
+        }).then(result=>{
+            result.LostProductss.LostBrandName__c = this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c;
+            this.LostReport.LostBrands[index].LostProducts.push(result);
+        });
+    }
     submitJs() {
         console.log('1');
+        this.IsLoading = true;
         submit({
             report1: JSON.stringify(this.LostReport),
             reportId: this.reportId
@@ -220,55 +252,54 @@
             if(result.error){
                 this.showToast(result.error,"error");
             }else{
-                this.submitFlag = result.submitFlag;
-                init({
-                    oppId1: this.oppId,
-                    lostReportId1: this.reportId,
-                    pageStatus1: result.pageStatus,
-                    lostType1: this.lostType,
-                    submitFlag1: this.submitFlag
-                }).then(result=>{
-                    var report = result.LostReport;
-                    if(result.message != null){
-                        if(result.message == '鎻愪氦鎴愬姛锛�'){
-                            this.LostReport = report;
-                            this.isSubmit = true;
-                            this.pageStatus = 'View';
-                            console.log(this.LostReport);
-                            this.showToast(result.message,"success");
-                            this.updateRecordView(this.reportId);
-                            
-                        }else{
-                            this.showToast(result.message,"error");
-                        }  
-                    }else{
-                        this.LostReport = report;
-                    }
-                }).catch(error=>{
-                    console.log("error");
-                    console.log(error);
-                });
+                console.log(result);
+                console.log(this.LostReport);
+                for(var i=0;i < result.approvalHistorys.length;i++){
+                    console.log('123');
+                    var date = new Date(result.approvalHistorys[i].CreatedDate);
+                    result.approvalHistorys[i].CreatedDate = date.toLocaleString();
+                    this.LostReport.approvalHistorys.push(JSON.parse(JSON.stringify(result.approvalHistorys[i])));
+                    console.log('321');
+                }
+                this.submitFlag = JSON.parse(JSON.stringify(result.submitFlag));
+                console.log(this.LostReport);
+                this.updateRecordView(this.reportId);
+                this.LostReport.lostReport.Report_Status__c = '鐢宠涓�';
             }
+            this.IsLoading = false;
         }).catch(error=>{
             console.log("error");
             console.log(error);
+        });
+    }
+    onApproveChange(event){
+        this[NavigationMixin.Navigate]({
+            type: 'standard__recordPage',
+            attributes: {
+                recordId: this.LostReport.approvalHistorys[0].Id,
+                actionName: 'view'
+            }
         });
     }
     
 
     deleteBrandJs(event){
         var str = event.target.name;
-        this.columnsArrIndex = 0;
+        if(this.LostReport.LostBrands[str].lostBrand.Id){
+            this.deleteBrandIdList.push(this.LostReport.LostBrands[str].lostBrand.Id);
+        }
         this.LostReport.LostBrands.splice(str,1);
+        console.log(this.LostReport);
+        this.deleteBrandIdList.forEach(brandId=>{
+            console.log(brandId);
+        });
+        this.setLostTotalAmount();
     }
     // add tcm 20211118 end
     setLostTotalAmount() {
-        var elements = this.template.querySelectorAll('[data-id="TotalAmount"]');
         var tempLostAmount = 0.0;
-        elements.forEach(element => {
-            if(element.value != 0){
-                tempLostAmount = tempLostAmount + parseFloat(element.value);
-            }
+        this.LostReport.LostBrands.forEach(brand=>{
+            tempLostAmount = tempLostAmount + parseFloat(brand.lostBrand.LostPrice__c);
         });
         this.LostReport.lostReport.LostTotalAmount__c = tempLostAmount;
     }
@@ -277,6 +308,15 @@
         var index = event.target.name;
         const payload = event.detail.payload;
         const payloadType = event.detail.payloadType;
+        if(this.LostReport.LostBrands[index].lostBrand.Id){
+            this.LostReport.LostBrands[index].LostProducts.forEach(product=>{
+                if(product.LostProductss.Id){
+                    var productId = product.LostProductss.Id
+                    this.deleteProductIdList.push(productId);
+                }
+            });
+            console.log(this.deleteProductIdList);
+        }
         this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c = payload.value;
         if(payloadType === 'multi-select'){
             this.clearProducts(payload.value,index);
@@ -285,10 +325,6 @@
         }
     }
     setDefaultBrand(value,index){
-        console.log('22222');
-        // this.LostReport.LostBrands[index].LostProducts.forEach(product => {
-        //     product.LostProductss.LostBrandName__c = value;
-        // });
         var newProducts = [];
         this.LostReport.LostBrands[index].LostProducts.forEach(product=>{
             this.newProduct.LostProductss.LostBrandName__c = value;
@@ -297,7 +333,6 @@
         this.LostReport.LostBrands[index].LostProducts = newProducts;
     }
     clearProducts(value,index){
-        console.log('111111');
         var newProducts = [];
         this.LostReport.LostBrands[index].LostProducts.forEach(product=>{
             this.newProduct.LostProductss.LostBrandName__c = value;
@@ -339,75 +374,64 @@
     }
     cancel() {
         // Navigate to the specified opportunity page using the NavigationMixin
-            this[NavigationMixin.Navigate]({
-                type: 'standard__recordPage',
-                attributes: {
-                    recordId: this.oppId,
-                    actionName: 'view'
-                }
-            });
+        this[NavigationMixin.Navigate]({
+            type: 'standard__recordPage',
+            attributes: {
+                recordId: this.oppId,
+                actionName: 'view'
+            }
+        });
     }
    
     saveBrandJs(event) {
+        this.IsLoading = true;
         this.dataCheck();
         if(!this.flag){
+            this.IsLoading = false;
             return;
         }
-        console.log(this.pageStatus);
-        if(this.pageStatus == 'Edit'){
-            this.pageStatus = 'View';
-        }else{
-            dataEntry({
-                report1 : JSON.stringify(this.LostReport)
-            }).then(result=>{
-                console.log(result);
-                if(result.error){
-                    this.showToast(result.error,"error");
-                }else{
-                    this.LostReport = JSON.parse(result.LostReport);
-                    this.reportId = result.reportId;
-                    console.log(this.LostReport);
-                    Promise.resolve().then(() => {
-                        this.pageStatus = 'View';
-                        this.template.querySelectorAll('lightning-card').forEach(elem => {
-                            elem.classList.toggle('View');
-                        });
-                    });
-                }
-            }).catch(error=>{
-                console.log("error");
-                console.log(error);
-            });
-        }
-        
+        console.log(this.LostReport);
+        var newLostReport = JSON.parse(JSON.stringify(this.LostReport));
+        newLostReport.approvalHistorys = this.newApprovalHistorys;
+        dataEntry({
+            report1 : JSON.stringify(newLostReport),
+            deleteBrandIdList: this.deleteBrandIdList,
+            deleteProductIdList: this.deleteProductIdList
+        }).then(result=>{
+            console.log(result);
+            this.deleteBrandIdList.splice(0,this.deleteBrandIdList.length);
+            this.deleteProductIdList.splice(0,this.deleteProductIdList.length);
+            if(result.error){
+                this.showToast(result.error,"error");
+            }else{
+                // var report = JSON.parse(result.LostReport);
+                // var index1 = 0;
+                // this.LostReport.LostBrands.forEach(brand=>{
+                //     brand.lostBrand.Id = report.LostBrands[index1].lostBrand.Id;
+                //     var index2 = 0;
+                //     brand.LostProducts.forEach(product=>{
+                //         product.LostProductss.Id = report.LostBrands[index1].LostProducts[index2].LostProductss.Id;
+                //         index2++;
+                //     });
+                //     index1++;
+                // });
+                this.LostReport = JSON.parse(result.LostReport);
+                this.reportId = result.reportId;
+                // this.LostReport.lostReport.Id = result.reportId;
+                // console.log(this.LostReport);
+                this.status.pageStatus = 'View';
+                this.tableflag = 0;
+                this.showToast('淇濆瓨鎴愬姛','success');
+                console.log(this.LostReport);
+            }
+            this.IsLoading = false;
+        }).catch(error=>{
+            console.log("error");
+            console.log(error);
+        });   
     }
-    saveBrandToEditJs(event) {
-        Promise.resolve().then(() => {
-            this.pageStatus = 'View';
-            this.template.querySelectorAll('lightning-card').forEach(elem => {
-                elem.classList.toggle('View');
-            });
-        });
-    }
-    
     editJs(){
-        Promise.resolve().then(() => {
-            this.pageStatus = 'Edit';
-            this.template.querySelectorAll('lightning-card').forEach(elem => {
-                elem.classList.toggle('Edit');
-            });
-        });
-        // var elements = this.template.querySelectorAll('.Product');
-        // console.log(elements.length);
-        // elements.forEach(element=>{
-        //     var name = null;
-        //     this.productNameList.forEach(product=>{
-        //         if(product.index1 == element.title && product.index2 == element.name){
-        //             name = product.name;
-        //         }
-        //     });
-        //     element.editLookup(name);
-        // });
+        this.status.pageStatus = 'Edit';
     }
    
     dataCheck(){
@@ -495,14 +519,6 @@
     isBlank(str) {
         return /^\s*$/.test(str);
       }
-    addRow(event){
-        var index = event.target.name;
-        var product = JSON.parse(JSON.stringify(this.newProduct));
-        if(this.LostReport.LostBrands[index].LostProducts[0].LostProductss.LostBrandName__c != undefined){
-            product.LostProductss.LostBrandName__c =  JSON.parse(JSON.stringify(this.LostReport.LostBrands[index].LostProducts[0].LostProductss.LostBrandName__c));
-        }
-        this.LostReport.LostBrands[index].LostProducts.push(product);
-    }
     removeRow(event){
         var index1 = event.target.name;
         var index2 = event.target.value;
@@ -510,10 +526,14 @@
         if(deleteButtons.length == 1){
             return;
         }
+        if(this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.Id){
+            var productId = this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.Id;
+            this.deleteProductIdList.push(productId);
+        }
         this.LostReport.LostBrands[index1].LostProducts.splice(index2,1);
+        console.log(this.deleteProductIdList);
     }
     search(topNum,secondNum){
-        console.log("sb");
         var elements1 = this.template.querySelectorAll('.ProductClass[data-id="' + topNum + '"]');
         var elements2 = this.template.querySelectorAll('.ProductCategory[data-id="' + topNum + '"]');
         if (this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.LostProduct__c==null) {
@@ -526,7 +546,6 @@
             elements2[secondNum].readOnly = true;
 
 		}else {
-            console.log("a");
 			searchProduct({
                 lostProduct : this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.LostProduct__c
             }).then(result=>{
@@ -534,24 +553,19 @@
                 var prd = JSON.parse(result);
                 this.LostReport.LostBrands[topNum].LostProducts[secondNum].productOptions = this.productOptionsList[prd.ProductClass__c];
                 if (prd.ProductCategory__c!=null) {
-                    console.log("c");
                     elements1[secondNum].readOnly = false;
                     elements2[secondNum].readOnly = false;
                     this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductClass__c=prd.ProductClass__c;
                     this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductCategory__c=prd.ProductCategory__c;
                     elements1[secondNum].readOnly = true;
                     elements2[secondNum].readOnly = true;
-                    console.log("e");
-                    // this.LostReport.LostBrands[topNum].LostProducts[secondNum].bool=true;
                 }else {
-                    console.log("d");
                     elements1[secondNum].readOnly = false;
                     elements2[secondNum].readOnly = false;
                     this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductClass__c=null;
                     this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.ProductCategory__c=null;
                     elements1[secondNum].readOnly = true;
                     elements2[secondNum].readOnly = true;
-                    // this.LostReport.LostBrands[topNum].LostProducts[secondNum].bool=false;
                 }
             }).catch(error=>{
                 console.log("error");
@@ -561,16 +575,11 @@
 		}
     }
     handleSelected(event) {
-        console.log('......');
         var index1 = event.target.title;
         var index2 = event.target.name;
-        // var objectname = event.detail.ObjectName;
         this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProduct__c = event.detail.Id;
         this.LostReport.LostBrands[index1].LostProducts[index2].productName = event.detail.Name;
         this.search(index1,index2);
-        console.log(this.LostReport);
-        // this.account = {Name : event.detail.Name, Id: event.detail.Id}
-        
     }
 
     handleLostTypeChange(event){
@@ -644,7 +653,6 @@
         this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProductMannual__c = event.target.value;
     }
     handleProductClassChange(event){
-        console.log("qwer");
         var index1 = event.target.title;
         var index2 = event.target.name;
         this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.ProductClass__c = event.target.value;

--
Gitblit v1.9.1