From 4661adc43f549036f4e6e44debe92521c5793083 Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期二, 06 六月 2023 11:06:36 +0800
Subject: [PATCH] 修改页面以及按钮

---
 force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js |  222 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 159 insertions(+), 63 deletions(-)

diff --git a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
index 969f72e..d3d0d93 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-24 15:48:07
+ * @LastEditTime: 2023-06-06 10:51:30
  */
 const columns2=[
     { label: '--鏃�--', value: '' },
@@ -47,21 +47,24 @@
 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 getPickList from '@salesforce/apex/lexPCLLostReportLwcController.getPickList';
 import { NavigationMixin } from 'lightning/navigation';
 import submit from '@salesforce/apex/lexPCLLostReportLwcController.submit';
 import {CloseActionScreenEvent} from 'lightning/actions'; 
+import lexLookupLwc from 'c/lexLookupLwc';
+import searchProduct from '@salesforce/apex/lexPCLLostReportLwcController.searchProduct';
+import { updateRecord } from 'lightning/uiRecordApi';
 export default class LexPCLLostReportPage extends NavigationMixin(LightningElement) {
 
     @api oppId;
     @track columns2=columns2;
-    @track pageStatus = 'Create';
+    @track status = {
+        pageStatus: 'Create'
+      }
     @track LostReport = {
         LostBrands: [
         ],
@@ -80,11 +83,14 @@
     columns3 = columns3;
     //澶卞崟绫诲瀷
     RecordTypeOptions = RecordTypeOptions;
+    isSubmit = false;
+    deleteBrandIdList = [];
+    deleteProductIdList = [];
     connectedCallback(){
         init({
             oppId1: this.oppId,
             lostReportId1: this.reportId,
-            pageStatus1: this.pageStatus,
+            pageStatus1: this.status.pageStatus,
             lostType1: this.lostType,
             submitFlag1: this.submitFlag
         }).then(result=>{
@@ -149,6 +155,9 @@
         });
         this.dispatchEvent(event);
     }
+    updateRecordView(recordId) {
+        updateRecord({fields: { Id: recordId }});
+    }
 
     get isInit(){
         if(this.LostReport.LostBrands[0].LostProducts[0].productOptions == undefined){
@@ -177,14 +186,21 @@
     }
 
     get isView(){
-        if(this.pageStatus == 'View'){
+        if(this.status.pageStatus == 'View'){
+            return true;
+        }
+        return false;
+    }
+
+    get isCreateOrEdit(){
+        if(this.status.pageStatus == 'Create' || this.status.pageStatus == 'Edit'){
             return true;
         }
         return false;
     }
 
     get isEdit(){
-        if(this.pageStatus == 'Create' || this.pageStatus == 'Edit'){
+        if(this.status.pageStatus == 'Edit'){
             return true;
         }
         return false;
@@ -203,34 +219,11 @@
             report1: JSON.stringify(this.LostReport),
             reportId: this.reportId
         }).then(result=>{
-            console.log(result);
             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.pageStatus = 'View';
-                            this.showToast(result.message,"success");
-                        }else{
-                            this.showToast(result.message,"error");
-                        }  
-                    }else{
-                        this.LostReport = report;
-                    }
-                }).catch(error=>{
-                    console.log("error");
-                    console.log(error);
-                });
+                this.updateRecordView(this.reportId);
             }
         }).catch(error=>{
             console.log("error");
@@ -241,17 +234,21 @@
 
     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;
     }
@@ -260,16 +257,45 @@
         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);
             this.setDefaultBrand(payload.value,index);
             this.clearBrandMannualName(payload.value,index);
         }
     }
     setDefaultBrand(value,index){
-        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;
+            newProducts.push(JSON.parse(JSON.stringify(this.newProduct)));
         });
+        this.LostReport.LostBrands[index].LostProducts = newProducts;
+    }
+    clearProducts(value,index){
+        var newProducts = [];
+        this.LostReport.LostBrands[index].LostProducts.forEach(product=>{
+            this.newProduct.LostProductss.LostBrandName__c = value;
+            newProducts.push(JSON.parse(JSON.stringify(this.newProduct)));
+        });
+        var elements1 = this.template.querySelectorAll('.ProductClass[data-id="' + index + '"]');
+        elements1.forEach(element=>{
+            element.readOnly = false;
+        });
+        var elements2 = this.template.querySelectorAll('.Product[data-id="' + index + '"]');
+        elements2.forEach(element=>{
+            element.clearSelection();
+        });
+        this.LostReport.LostBrands[index].LostProducts = newProducts;
     }
 
    
@@ -279,10 +305,9 @@
             var elements = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]');
             elements[index].disabled = false;
             elements[index].required = true;
-            var elements1 = this.template.querySelectorAll('.LostProduct[data-id="' + index + '"]');
+            var elements1 = this.template.querySelectorAll('.Product[data-id="' + index + '"]');
                     elements1.forEach(element=>{
-                        element.value = '';
-                        element.disabled = true;
+                        element.letDisabledTrue();
                     });
         } else {
             var elements = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]');
@@ -290,8 +315,9 @@
             elements[index].value = '';
             elements[index].disabled = true;
             elements[index].required = false;
+            var elements1 = this.template.querySelectorAll('.Product[data-id="' + index + '"]');
             elements1.forEach(element=>{
-                element.disabled = false;
+                element.letDisabledFalse();
             });
         }
     }
@@ -311,26 +337,44 @@
         if(!this.flag){
             return;
         }
+        console.log(this.LostReport);
         dataEntry({
-                report1 : JSON.stringify(this.LostReport)
-            }).then(result=>{
-                if(result.error){
-                    this.showToast(result.error,"error");
-                }else{
-                    this.reportId = result.reportId;
-                    console.log(this.LostReport);
-                    this.pageStatus = 'View';
-                }
-            }).catch(error=>{
-                console.log("error");
-                console.log(error);
-            });
+            report1 : JSON.stringify(this.LostReport),
+            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.reportId = result.reportId;
+                this.LostReport.lostReport.Id = result.reportId;
+                console.log(this.LostReport);
+                this.status.pageStatus = 'View';
+                this.tableflag = 0;
+            }
+        }).catch(error=>{
+            console.log("error");
+            console.log(error);
+        });   
     }
-
     editJs(){
-        this.pageStatus = 'Edit';
+        this.status.pageStatus = 'Edit';
     }
-    
+   
     dataCheck(){
         this.flag = true;
         if(this.LostReport.lostReport.LostType__c == undefined || this.isBlank(this.LostReport.lostReport.LostType__c))
@@ -431,7 +475,60 @@
         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){
+        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) {
+            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;
+			this.LostReport.LostBrands[topNum].LostProducts[secondNum].bool=false;
+            elements1[secondNum].readOnly = true;
+            elements2[secondNum].readOnly = true;
+
+		}else {
+			searchProduct({
+                lostProduct : this.LostReport.LostBrands[topNum].LostProducts[secondNum].LostProductss.LostProduct__c
+            }).then(result=>{
+                console.log(result);
+                var prd = JSON.parse(result);
+                this.LostReport.LostBrands[topNum].LostProducts[secondNum].productOptions = this.productOptionsList[prd.ProductClass__c];
+                if (prd.ProductCategory__c!=null) {
+                    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;
+                }else {
+                    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;
+                }
+            }).catch(error=>{
+                console.log("error");
+                console.log(error);
+            });
+			
+		}
+    }
+    handleSelected(event) {
+        var index1 = event.target.title;
+        var index2 = event.target.name;
+        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);
     }
 
     handleLostTypeChange(event){
@@ -456,15 +553,14 @@
         var value = event.target.value;
         this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c = value;
         this.setDefaultBrand(value,index);
-        var elements = this.template.querySelectorAll('.LostProduct[data-id="' + index + '"]');
+        var elements = this.template.querySelectorAll('.Product[data-id="' + index + '"]');
             if(value == '' || value == null){
                 elements.forEach(element=>{
-                    element.value = '';
-                    element.disabled = true;
+                    element.letDisabledTrue();
                 });
             }else{
                 elements.forEach(element=>{
-                    element.disabled = false;
+                    element.letDisabledFalse();
                 });
             }
     }

--
Gitblit v1.9.1