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