From e6a0a7f9ffb463c5ce78d6770b09eac739f88b15 Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期三, 24 五月 2023 16:57:53 +0800
Subject: [PATCH] 优化确认框以及修改页面

---
 force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js |  494 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 298 insertions(+), 196 deletions(-)

diff --git a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
index 900eb15..969f72e 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-16 11:43:27
+ * @LastEditTime: 2023-05-24 15:48:07
  */
 const columns2=[
     { label: '--鏃�--', value: '' },
@@ -18,6 +18,30 @@
     { label: '鏌愮浜у搧缂哄け', value: '鏌愮浜у搧缂哄け' },
     { label: '閲囪喘骞宠 ', value: '閲囪喘骞宠 ' }
 ];
+const productClassOptions = [
+    { label: '--鏃�--', value: '' },
+    { label: '涓绘満', value: '涓绘満' },
+    { label: '闀滃瓙', value: '闀滃瓙' },
+    { label: '灏忛暅绉�', value: '灏忛暅绉�' },
+    { label: '鑳介噺', value: '鑳介噺' },
+    { label: '鍏朵粬', value: '鍏朵粬' }
+];
+const productCategoryOptions = [
+    { label: '--鏃�--', value: '' }
+];
+const columns3 = [
+    {label : "澶卞崟鍝佺墝",fieldName : "LostBrandName__c"},
+    {label : "澶卞崟瀵规墜鍨嬪彿",fieldName : "LostProduct__c"},
+    {label : "澶卞崟鏁伴噺",fieldName : "Quantity__c",type : "number"},
+    {label : "澶卞崟瀵规墜鍨嬪彿(鎵嬪姩)",fieldName : "LostProductMannual__c"},
+    {label : "澶卞崟浜у搧绫诲埆",fieldName : "ProductClass__c"},
+    {label : "澶卞崟浜у搧鍖哄垎",fieldName : "ProductCategory__c"}
+];
+const RecordTypeOptions = [
+    { label: '--鏃�--', value: '' },
+    { label: '澶卞崟', value: '澶卞崟' },
+    { label: '閮ㄥ垎澶卞崟', value: '閮ㄥ垎澶卞崟' }
+];
 
 import { api, wire,track,LightningElement } from 'lwc';
 import { CurrentPageReference } from "lightning/navigation";
@@ -29,44 +53,41 @@
 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 {CloseActionScreenEvent} from 'lightning/actions';
+import submit from '@salesforce/apex/lexPCLLostReportLwcController.submit';
+import {CloseActionScreenEvent} from 'lightning/actions'; 
 export default class LexPCLLostReportPage extends NavigationMixin(LightningElement) {
 
-
-    @track records;
-    @api recordJson;
-    @track columns2=columns2;
-    @api reasonValue;
     @api oppId;
-    lostReportId = '';
-    pageStatus = 'Create';
-    lostType = '澶卞崟';
-    submitFlag = '';
-    flag;
+    @track columns2=columns2;
+    @track pageStatus = 'Create';
     @track LostReport = {
         LostBrands: [
         ],
         lostReport: {}
-    };
+    }
     @track brandOptions = [];
-    columns=[
-        { "label" : "澶卞崟鍝佺墝", "apiName" : "LostBrandName__c" ,"fieldType":"picklist","objectName":"PCLLostProduct__c", "readOnly":true,"value":"--鏃�--","required":false}, 
-        { "label" : "澶卞崟瀵规墜鍨嬪彿", "apiName" : "LostProduct__c" ,"fieldType":"lookup","objectName":"PCLLostProduct__c","disable":"false","searchfield":"'鏃�'","required":false},
-        { "label" : "澶卞崟鏁伴噺", "apiName" : "Quantity__c","fieldType":"number","objectName":"PCLLostProduct__c" ,"required":true},
-        { "label" : "澶卞崟瀵规墜鍨嬪彿(鎵嬪姩)", "apiName" : "LostProductMannual__c","fieldType":"text","objectName":"PCLLostProduct__c" ,"required":false},
-        { "label" : "澶卞崟浜у搧绫诲埆", "apiName" : "ProductClass__c","fieldType":"picklist","objectName":"PCLLostProduct__c" ,"required":true},
-        { "label" : "澶卞崟浜у搧鍖哄垎", "apiName" : "ProductCategory__c","fieldType":"picklist","objectName":"PCLLostProduct__c","required":true}
-    ];
+    lostType = '澶卞崟';
+    submitFlag = '';
+    flag;
+    tableflag = 0;
+    reportId = '';
+    newProduct;
+    productOptionsList;
+    productClassOptions = productClassOptions;
+    productCategoryOptions = productCategoryOptions;
+    columns3 = columns3;
+    //澶卞崟绫诲瀷
+    RecordTypeOptions = RecordTypeOptions;
     connectedCallback(){
         init({
             oppId1: this.oppId,
-            lostReportId1: this.lostReportId,
+            lostReportId1: this.reportId,
             pageStatus1: this.pageStatus,
             lostType1: this.lostType,
             submitFlag1: this.submitFlag
         }).then(result=>{
-            console.log(result);
             if(result.message != null){
                 if(result.message == '鎻愪氦鎴愬姛锛�'){
                     this.showToast(result.message,"success");
@@ -75,9 +96,11 @@
                     this.showToast(result.message,"error");
                 }  
             }else{
-                this.LostReport = result.LostReport;
+                var report = result.LostReport;
+                this.LostReport = report;
                 this.LostReport.lostReport.LostTotalAmount__c = 0.0;
-                this.LostReport.LostBrands[0].columns = JSON.parse(JSON.stringify(this.columns));
+                this.LostReport.lostReport.InclusionUltrasound__c = '0';
+                this.newProduct = JSON.parse(JSON.stringify(this.LostReport.LostBrands[0].LostProducts[0]));
             }
             }).catch(error=>{
                 console.log("error");
@@ -93,20 +116,15 @@
             console.log("error");
             console.log(error);
         });
+        getPickList({
+            objectName: 'PCLLostProduct__c',
+            fieldName: 'ProductCategory__c'
+        }).then(result=>{
+            this.productOptionsList = JSON.parse(result);
+        });
+
     }
 
-    get isInit(){
-        if(this.LostReport.LostBrands[0].columns == undefined){
-            return false;
-        }else{
-            return true;
-        }
-    }
-
-    //澶卞崟绫诲瀷
-    RecordTypeOptions = [{ label: '--鏃�--', value: '' },
-                    { label: '澶卞崟', value: '澶卞崟' },
-                    { label: '閮ㄥ垎澶卞崟', value: '閮ㄥ垎澶卞崟' }];
     @wire(CurrentPageReference)
     getStateParameters(currentPageReference) {
             console.log(111);
@@ -122,41 +140,32 @@
             }
         }
     }
-    getBrandLabel(index){
-        return "澶卞崟鍝佺墝" + (this.LostReport.LostBrands[index].lineno + 1);
-    }
-    getParamValue(paramName) {
-        // Use the URLSearchParams API to get the value of a query parameter
-        const params = new URLSearchParams(window.location.search);
-        return params.get(paramName);
-    }
-    addBrandJs() {
-        getNewLostBrand({
-            lineNo: this.LostReport.LostBrands.length
-        }).then(result=>{
-            this.LostReport.LostBrands.push(result);
-            this.LostReport.LostBrands[this.LostReport.LostBrands.length - 1].columns = JSON.parse(JSON.stringify(this.columns));
+
+    showToast(msg,type) {
+        const event = new ShowToastEvent({
+            title: '',
+            message: msg,
+            variant: type
         });
+        this.dispatchEvent(event);
     }
-    submitJS() {
-        submit().then(result=>{
-            if(result.get('error')){
-                this.showToast(result.get('error'),"error");
-            }else{
-                this[NavigationMixin.Navigate]({
-                    type: 'standard__recordPage',
-                    attributes: {
-                        uri: result.get('uri'),
-                        Id: result.get('Id'),
-                        pageStatus: result.get('pageStatus'),
-                        submitFlag: result.get('submitFlag')
-                    }
-                }); 
-            }
+
+    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 productList = [];
+        products.forEach(product=>{
+            productList.push(product.LostProductss);
         });
-    }
-    get pageStatusIsCreateOrEdit() {
-        return this.pageStatus === 'Create' || this.pageStatus === 'Edit';
+        this.tableflag++;
+        return productList;
     }
 
     get isBrandCount2(){
@@ -166,6 +175,69 @@
         }
         return flag;
     }
+
+    get isView(){
+        if(this.pageStatus == 'View'){
+            return true;
+        }
+        return false;
+    }
+
+    get isEdit(){
+        if(this.pageStatus == 'Create' || this.pageStatus == 'Edit'){
+            return true;
+        }
+        return false;
+    }
+    
+    addBrandJs() {
+        getNewLostBrand({
+            lineNo: this.LostReport.LostBrands.length
+        }).then(result=>{
+            this.LostReport.LostBrands.push(result);
+        });
+    }
+    submitJs() {
+        console.log('1');
+        submit({
+            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);
+                });
+            }
+        }).catch(error=>{
+            console.log("error");
+            console.log(error);
+        });
+    }
+    
 
     deleteBrandJs(event){
         var str = event.target.name;
@@ -177,18 +249,13 @@
         var elements = this.template.querySelectorAll('[data-id="TotalAmount"]');
         var tempLostAmount = 0.0;
         elements.forEach(element => {
-            console.log(element.value);
             if(element.value != 0){
                 tempLostAmount = tempLostAmount + parseFloat(element.value);
             }
         });
         this.LostReport.lostReport.LostTotalAmount__c = tempLostAmount;
     }
-    setBrandName(brandNumber) {
-        setbrand().then(()=>{
-            this.clearBrandMannualName();
-        });
-    }
+    
     setBrandMannualName(event) {
         var index = event.target.name;
         const payload = event.detail.payload;
@@ -200,7 +267,9 @@
         }
     }
     setDefaultBrand(value,index){
-        this.LostReport.LostBrands[index].columns[0].value = value;
+        this.LostReport.LostBrands[index].LostProducts.forEach(product => {
+            product.LostProductss.LostBrandName__c = value;
+        });
     }
 
    
@@ -209,12 +278,21 @@
         if (value == '鍏朵粬') {
             var elements = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]');
             elements[index].disabled = false;
-            this.LostReport.LostBrands[index].columns[1].disable = true;
+            elements[index].required = true;
+            var elements1 = this.template.querySelectorAll('.LostProduct[data-id="' + index + '"]');
+                    elements1.forEach(element=>{
+                        element.value = '';
+                        element.disabled = true;
+                    });
         } else {
             var elements = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]');
+            this.brandFlag = false;
             elements[index].value = '';
             elements[index].disabled = true;
-            this.LostReport.LostBrands[index].columns[1].disable = false;
+            elements[index].required = false;
+            elements1.forEach(element=>{
+                element.disabled = false;
+            });
         }
     }
     cancel() {
@@ -226,134 +304,33 @@
                     actionName: 'view'
                 }
             });
-    
     }
-    showToast(msg,type) {
-        const event = new ShowToastEvent({
-            title: '',
-            message: msg,
-            variant: type
-        });
-        this.dispatchEvent(event);
-        this.dispatchEvent(new CloseActionScreenEvent());
-    }
+   
     saveBrandJs(event) {
-        var index = event.target.name;
-        var tables = this.template.querySelectorAll("c-lex-dynamic-table");
-            if(tables.length > 1){
-                if(index == "save"){
-                    for(let i=0;i < table.length;i++){
-                        var products = this.LostReport.LostBrands[i].LostProducts;
-                        var table = tables[i];
-                        if(table!=undefined){
-                            var records = table.retrieveRecords();
-                            for(let j=0;j<records.length - 1;j++){
-                                products.push(JSON.parse(JSON.stringify(products[0])));
-                            }
-                            for(let j=0;j<records.length;j++){
-                                products[j].LostProductss.LostBrandName__c = records[j].LostBrandName__c;
-                                products[j].LostProductss.Quantity__c = records[j].Quantity__c;
-                                products[j].LostProductss.LostProductMannual__c = records[j].LostProductMannual__c;
-                                products[j].LostProductss.ProductClass__c = records[j].ProductClass__c;
-                                products[j].LostProductss.ProductCategory__c = records[j].ProductCategory__c;
-                                products[j].LostProductss.LostProduct__c = records[j].LostProduct__c;
-                            }
-                        }
-                    }
-                }else{
-                    var products = this.LostReport.LostBrands[index].LostProducts;
-                    var table = tables[index];
-                    if(table!=undefined){
-                        var records = table.retrieveRecords();
-                        for(let i=0;i<records.length - 1;i++){
-                            products.push(JSON.parse(JSON.stringify(products[0])));
-                        }
-                        for(let i=0;i<records.length;i++){
-                            products[i].LostProductss.LostBrandName__c = records[i].LostBrandName__c;
-                            products[i].LostProductss.Quantity__c = records[i].Quantity__c;
-                            products[i].LostProductss.LostProductMannual__c = records[i].LostProductMannual__c;
-                            products[i].LostProductss.ProductClass__c = records[i].ProductClass__c;
-                            products[i].LostProductss.ProductCategory__c = records[i].ProductCategory__c;
-                            products[i].LostProductss.LostProduct__c = records[i].LostProduct__c;
-                        }
-                    }
-                }
-            }else{
-                var products = this.LostReport.LostBrands[0].LostProducts;
-                var table = tables[0];
-                if(table!=undefined){
-                    var records = table.retrieveRecords();
-                    console.log(JSON.stringify(records));
-                    if(records.length > 1){
-                        for(let i=0;i<records.length - 1;i++){
-                            products.push(JSON.parse(JSON.stringify(products[0])));
-                        }
-                    }
-                    for(let i=0;i<records.length;i++){
-                        products[i].LostProductss.LostBrandName__c = records[i].LostBrandName__c;
-                        products[i].LostProductss.Quantity__c = records[i].Quantity__c;
-                        products[i].LostProductss.LostProductMannual__c = records[i].LostProductMannual__c;
-                        products[i].LostProductss.ProductClass__c = records[i].ProductClass__c;
-                        products[i].LostProductss.ProductCategory__c = records[i].ProductCategory__c;
-                        products[i].LostProductss.LostProduct__c = records[i].LostProduct__c;
-                    }
-                }
-            }
         this.dataCheck();
         if(!this.flag){
             return;
         }
         dataEntry({
-            report1 : JSON.stringify(this.LostReport)
-        }).then(result=>{
-            if(result){
-                this.showToast(result,"error")
-            }
-        }).catch(error=>{
-            console.log("error");
-            console.log(error);
-        });
-         
+                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);
+            });
     }
-    handleLostTypeChange(event){
-        var value = event.target.value;
-        this.LostReport.lostReport.LostType__c = value;
+
+    editJs(){
+        this.pageStatus = 'Edit';
     }
     
-    handleLostReasonMainChange(event){
-        var index = event.target.name;
-        var value = event.target.value;
-        this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c = value;
-    }
-
-    handleLostReasonSubChange(event){
-        var index = event.target.name;
-        var value = event.target.value;
-        this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c = value;
-    }
-
-    handleLostByCompanyMannualChange(event){
-        var index = event.target.name;
-        var value = event.target.value;
-        this.LostReport.LostBrands[index].lostBrand.Lost_By_Company_Mannual__c = value;
-    }
-
-    handleLostPriceOutChange(event){
-        var index = event.target.name;
-        var value = event.target.value;
-        this.LostReport.LostBrands[index].lostBrand.LostPrice__c = value;
-        this.setLostTotalAmount();
-    }
-    handleAgencyOutChange(event){
-        var index = event.target.name;
-        var value = event.target.value;
-        this.LostReport.LostBrands[index].lostBrand.Agency__c = value;
-    }
-    handleAgencyMannualOutChange(event){
-        var index = event.target.name;
-        var value = event.target.value;
-        this.LostReport.LostBrands[index].lostBrand.AgencyMannual__c = value;
-    }
     dataCheck(){
         this.flag = true;
         if(this.LostReport.lostReport.LostType__c == undefined || this.isBlank(this.LostReport.lostReport.LostType__c))
@@ -439,4 +416,129 @@
     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;
+        var deleteButtons = this.template.querySelectorAll('.deleteButton[data-id="' + index1 + '"]');
+        if(deleteButtons.length == 1){
+            return;
+        }
+        this.LostReport.LostBrands[index1].LostProducts.splice(index2,1);
+    }
+
+    handleLostTypeChange(event){
+        var value = event.target.value;
+        this.LostReport.lostReport.LostType__c = value;
+    }
+    
+    handleLostReasonMainChange(event){
+        var index = event.target.name;
+        var value = event.target.value;
+        this.LostReport.LostBrands[index].lostBrand.Lost_reason_main__c = value;
+    }
+
+    handleLostReasonSubChange(event){
+        var index = event.target.name;
+        var value = event.target.value;
+        this.LostReport.LostBrands[index].lostBrand.Lost_Reason_Sub__c = value;
+    }
+
+    handleLostByCompanyMannualChange(event){
+        var index = event.target.name;
+        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 + '"]');
+            if(value == '' || value == null){
+                elements.forEach(element=>{
+                    element.value = '';
+                    element.disabled = true;
+                });
+            }else{
+                elements.forEach(element=>{
+                    element.disabled = false;
+                });
+            }
+    }
+
+    handleLostPriceOutChange(event){
+        var index = event.target.name;
+        var value = event.target.value;
+        this.LostReport.LostBrands[index].lostBrand.LostPrice__c = value;
+        this.setLostTotalAmount();
+    }
+    handleAgencyOutChange(event){
+        var index = event.target.name;
+        var value = event.target.value;
+        this.LostReport.LostBrands[index].lostBrand.Agency__c = value;
+    }
+    handleAgencyMannualOutChange(event){
+        var index = event.target.name;
+        var value = event.target.value;
+        this.LostReport.LostBrands[index].lostBrand.AgencyMannual__c = value;
+    }
+    handleLostBrandNameChange(event){
+        var index1 = event.target.title;
+        var index2 = event.target.name;
+        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostBrandName__c = event.target.value;
+    }
+    handleLostProductChange(event){
+        var index1 = event.target.title;
+        var index2 = event.target.name;
+        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProduct__c = event.target.value;
+    }
+    handleQuantityChange(event){
+        var index1 = event.target.title;
+        var index2 = event.target.name;
+        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.Quantity__c = event.target.value;
+    }
+    handleLostProductMannualChange(event){
+        var index1 = event.target.title;
+        var index2 = event.target.name;
+        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.LostProductMannual__c = event.target.value;
+    }
+    handleProductClassChange(event){
+        var index1 = event.target.title;
+        var index2 = event.target.name;
+        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.ProductClass__c = event.target.value;
+        var val = event.target.value;
+        if(val == ''){
+            var temps1 =this.template.querySelectorAll('.ProductCategory[data-id="'+ index1 +'"]');
+            temps1[index2].readOnly = true;
+            temps1[index2].value = '';
+        }else{
+            var temps1 =this.template.querySelectorAll('.ProductCategory[data-id="'+ index1 +'"]');
+            temps1[index2].readOnly = false;
+            this.LostReport.LostBrands[index1].LostProducts[index2].productOptions = this.productOptionsList[val];
+        }
+       
+    }
+
+    handleProductCategoryChange(event){
+        var index1 = event.target.title;
+        var index2 = event.target.name;
+        var val = event.target.value;
+        var categorys = this.template.querySelectorAll('.ProductCategory');
+        var flag = false;
+        categorys.forEach(category=>{
+            if(category.value == '瓒呭0涓绘満'){
+                flag = true;
+            }
+        });
+        if(flag){
+            this.LostReport.lostReport.InclusionUltrasound__c = '1';
+        }else{
+            this.LostReport.lostReport.InclusionUltrasound__c = '0';
+        }
+        this.LostReport.LostBrands[index1].LostProducts[index2].LostProductss.ProductCategory__c = val;
+    }
+    
 }
\ No newline at end of file

--
Gitblit v1.9.1