/*
|
* @Description:
|
* @version:
|
* @Author: chen jing wu
|
* @Date: 2023-04-20 15:04:03
|
* @LastEditors: chen jing wu
|
* @LastEditTime: 2023-05-06 17:47:43
|
*/
|
// const columns=[
|
// { "label" : "失单品牌", "apiName" : "LostBrandName__c" ,"fieldType":"picklist","objectName":"PCLLostProduct__c", "readOnly":true,"value":"--无--"},
|
// { "label" : "失单对手型号", "apiName" : "LostProduct__c" ,"fieldType":"lookup","objectName":"PCLLostProduct__c","disable":"false"},
|
// { "label" : "失单数量", "apiName" : "Quantity__c","fieldType":"text","objectName":"PCLLostProduct__c" },
|
// { "label" : "失单对手型号(手动)", "apiName" : "LostProductMannual__c","fieldType":"text","objectName":"PCLLostProduct__c" },
|
// { "label" : "失单产品类别", "apiName" : "ProductClass__c","fieldType":"picklist","objectName":"PCLLostProduct__c" },
|
// { "label" : "失单产品区分", "apiName" : "ProductCategory__c","fieldType":"picklist","objectName":"PCLLostProduct__c" }
|
// ];
|
const columns2=[
|
{ label: '--无--', value: '' },
|
{ label: '无信息,跟进不及时', value: '无信息,跟进不及时' },
|
{ label: '价格', value: '价格' },
|
{ label: '医生偏好', value: '医生偏好' },
|
{ label: '服务不到位', value: '服务不到位' },
|
{ label: '行政决策', value: '行政决策' },
|
{ label: '竞品原有基础上增添设备', value: '竞品原有基础上增添设备' },
|
{ label: '渠道因素', value: '渠道因素' },
|
{ label: '某种产品缺失', value: '某种产品缺失' },
|
{ label: '采购平衡', value: '采购平衡' }
|
];
|
|
import { api, wire,track,LightningElement } from 'lwc';
|
import { CurrentPageReference } from "lightning/navigation";
|
import save from '@salesforce/apex/lexPCLLostReportLwcController.save';
|
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
|
import { loadStyle, loadScript } from 'lightning/platformResourceLoader';
|
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 getLostReport from '@salesforce/apex/lexPCLLostReportLwcController.getLostReport';
|
import searchProduct from '@salesforce/apex/lexPCLLostReportLwcController.searchProduct';
|
export default class LexPCLLostReportPage extends LightningElement {
|
|
|
@track records;
|
@api recordJson;
|
// @track columns=columns;
|
@track columns2=columns2;
|
@api reasonValue;
|
oppId = '0061000001R2xjWAAR';
|
lostReportId = '';
|
pageStatus = 'Create';
|
lostType = '失单';
|
submitFlag = '';
|
searchResult;
|
brandsCount = [""];
|
@track flag = true;
|
@track LostReport = {
|
LostBrands: [
|
],
|
lostReport: {}
|
};
|
@track brandOptions = [];
|
columns=[
|
{ "label" : "失单品牌", "apiName" : "LostBrandName__c" ,"fieldType":"picklist","objectName":"PCLLostProduct__c", "readOnly":true,"value":"--无--"},
|
{ "label" : "失单对手型号", "apiName" : "LostProduct__c" ,"fieldType":"lookup","objectName":"PCLLostProduct__c","disable":"false","searchfield":"'无'"},
|
{ "label" : "失单数量", "apiName" : "Quantity__c","fieldType":"text","objectName":"PCLLostProduct__c" },
|
{ "label" : "失单对手型号(手动)", "apiName" : "LostProductMannual__c","fieldType":"text","objectName":"PCLLostProduct__c" },
|
{ "label" : "失单产品类别", "apiName" : "ProductClass__c","fieldType":"picklist","objectName":"PCLLostProduct__c" },
|
{ "label" : "失单产品区分", "apiName" : "ProductCategory__c","fieldType":"picklist","objectName":"PCLLostProduct__c"}
|
];
|
connectedCallback(){
|
init({
|
oppId1: this.oppId,
|
lostReportId1: this.lostReportId,
|
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");
|
this.LostReport = result.LostReport;
|
console.log(this.LostReport);
|
}else{
|
console.log("211");
|
this.showToast(result.message,"error");
|
console.log("985");
|
}
|
}else{
|
this.LostReport = result.LostReport;
|
this.LostReport.lostReport.LostTotalAmount__c = 0.0;
|
this.LostReport.LostBrands[0].columns = JSON.parse(JSON.stringify(this.columns));
|
console.log("520");
|
}
|
console.log('success');
|
}).catch(error=>{
|
console.log("error");
|
console.log(error);
|
});
|
searchBrands().then(result=>{
|
console.log(result);
|
this.brandOptions = JSON.parse(result);
|
console.log(this.brandOptions);
|
// const div = this.template.querySelector('[data-Id="initDiv"]');
|
// console.log(success);
|
// div.classList.add("mynewclass");
|
console.log(this.LostReport);
|
const multiCombobox = this.template.querySelector('c-multi-select-combobox');
|
multiCombobox.refreshOptions(this.brandOptions);
|
}).catch(error=>{
|
console.log("error");
|
console.log(error);
|
});
|
}
|
|
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);
|
console.log(currentPageReference);
|
|
if (currentPageReference) {
|
const urlValue = currentPageReference.state.recordId;
|
if (urlValue) {
|
let str = `${urlValue}`;
|
console.log("str");
|
console.log(str);
|
this.oppId = str;
|
}
|
}
|
}
|
getBrandLabel(index){
|
return "失单品牌" + (this.LostReport.LostBrands[index].lineno + 1);
|
}
|
// connectedCallback(){
|
// this.initAll();
|
// }
|
|
|
// connectedCallback(){
|
// console.log("1");
|
// initForApex({
|
// oppId1: this.oppId,
|
// lostReportId1: this.lostReportId,
|
// pageStatus1: this.pageStatus,
|
// lostType1: this.lostType,
|
// submitFlag1: this.submitFlag
|
// }).then(()=>{
|
// console.log("2");
|
// init().then(result=>{
|
// console.log("3");
|
// console.log(result);
|
// if(result.message == '提交成功!'){
|
// this.showToast(result.message,"success");
|
// this.LostReport = result.LostReport;
|
// }else{
|
// console.log("211");
|
// this.showToast(result.message,"error");
|
// console.log("985");
|
// }
|
// });
|
// });
|
// }
|
|
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));
|
});
|
}
|
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')
|
}
|
});
|
}
|
});
|
}
|
addProductJs(number) {
|
|
}
|
RemoveJs(number) {
|
Remove().then(()=>{
|
});
|
}
|
// add tcm 20211118 start
|
searchJs(topNum, secondNum) {
|
search().then(()=>{
|
});
|
}
|
get pageStatusIsCreateOrEdit() {
|
return this.pageStatus === 'Create' || this.pageStatus === 'Edit';
|
}
|
|
get isBrandCount2(){
|
var flag = true;
|
if(this.LostReport.LostBrands.length > 1){
|
flag = false;
|
}
|
return flag;
|
}
|
|
deleteBrandJs(event){
|
var str = event.target.name;
|
this.columnsArrIndex = 0;
|
this.LostReport.LostBrands.splice(str,1);
|
console.log(this.LostReport);
|
}
|
|
getMutiboxName(index){
|
return `mutibox${index}`;
|
}
|
|
// add tcm 20211118 end
|
setLostTotalAmount() {
|
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;
|
|
// //console.log('setLostTotalAmount start:');
|
// var totalAmount = this.template.querySelector('[data-id="LostTotalAmount"]');
|
// var totalAmountHidden = this.template.querySelector('[data-id="LostTotalAmountHidden"]');
|
// var brandAmountObjects = this.template.querySelectorAll('[data-id="BrandContent:LostPriceOut"]');
|
// var brandCompanyObjects = this.template.querySelectorAll('[data-id="BrandContent:Lost_By_CompanyOut"]');
|
// if (!!totalAmount && !!totalAmountHidden) {
|
// var tempLostAmount = 0.0;
|
// var brandCount = parseInt(this.brandCount);
|
// //console.log(brandCount);
|
|
// for (var i = 0; i < brandCount; i++) {
|
// var brandAmountObject = brandAmountObjects[i];
|
// var brandCompanyObject = brandCompanyObjects[i];
|
|
// if (!!brandAmountObject && !!brandCompanyObject) {
|
// var brandCompanyText = brandCompanyObject.innerText;
|
// var brandCompanyValue = brandCompanyObject.value;
|
|
// if (!!brandCompanyText && brandCompanyText !== '--无--' && !!brandCompanyValue) {
|
// var brandAmount = parseFloat(brandAmountObject.value);
|
// tempLostAmount = tempLostAmount + brandAmount;
|
// }
|
// }
|
// }
|
// totalAmount.innerHTML = toNumComma(tempLostAmount);
|
// totalAmountHidden.value = tempLostAmount;
|
// }
|
// //console.log('setLostTotalAmount end');
|
}
|
setBrandName(brandNumber) {
|
setbrand().then(()=>{
|
this.clearBrandMannualName();
|
});
|
}
|
setBrandMannualName(event) {
|
var index = event.target.name;
|
const payload = event.detail.payload;
|
const payloadType = event.detail.payloadType;
|
this.LostReport.LostBrands[index].lostBrand.Lost_By_Company__c = payload.value;
|
if(payloadType === 'multi-select'){
|
this.setLostTotalAmount();
|
this.setDefaultBrand(payload.value,index);
|
this.clearBrandMannualName(payload.value,index);
|
}
|
}
|
setDefaultBrand(value,index){
|
console.log("123");
|
console.log(index);
|
this.LostReport.LostBrands[index].columns[0].value = value;
|
// this.columnsArr[index][0].value = value;
|
// this.columns[0].value = value;
|
}
|
|
|
// 失单品牌不等于其他时,失单品牌(手动)清空并且不允许填写,失单品牌等于其他时,失单对手型号不可用 thh 2022-01-13 start
|
clearBrandMannualName(value,index){
|
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;
|
} else {
|
var elements = this.template.querySelectorAll('[data-id="Lost_By_Company_Mannual"]');
|
elements[index].value = '';
|
elements[index].disabled = true;
|
this.LostReport.LostBrands[index].columns[1].disable = false;
|
}
|
}
|
cancel() {
|
// Navigate to the specified opportunity page using the NavigationMixin
|
console.log("321");
|
this[NavigationMixin.Navigate]({
|
type: 'standard__recordPage',
|
attributes: {
|
recordId: this.oppId,
|
actionName: 'view'
|
}
|
});
|
}
|
showToast(msg,type) {
|
const event = new ShowToastEvent({
|
title: '',
|
message: msg,
|
variant: type
|
});
|
this.dispatchEvent(event);
|
this.dispatchEvent(new CloseActionScreenEvent());
|
}
|
handleStatus1Change(){
|
|
}
|
handleBrandChange(value){
|
|
}
|
|
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.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.LostProductMannual__c = records[j].LostProductMannual__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.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.LostProductMannual__c = records[i].LostProductMannual__c;
|
}
|
}
|
}
|
}else{
|
var products = this.LostReport.LostBrands[0].LostProducts;
|
var table = tables[0];
|
if(table!=undefined){
|
var records = table.retrieveRecords();
|
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.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.LostProductMannual__c = records[i].LostProductMannual__c;
|
}
|
}
|
}
|
console.log("end");
|
console.log(this.LostReport);
|
this.dataCheck();
|
// save({
|
// LostReport: this.LostReport
|
// }).then(result=>{
|
// if(result){
|
// this.showToast(result,"success");
|
// }
|
// });
|
}
|
setProductClass(){
|
console.log("sss");
|
console.log(this.template.querySelector("c-lex-dynamic-table"));
|
console.log("ddd");
|
}
|
|
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;
|
}
|
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;
|
}
|
messageTest(){
|
const element = this.template.querySelector('lightning-button[name="mytest"]');
|
element.set
|
}
|
|
dataCheck(){
|
if(string.isBlank(LostReport.LostReport.LostType__c))
|
{
|
LostReport.LostReport.LostType__c.addError('必须填写失单类型!');
|
flag = false;
|
}
|
this.LostReport.LostBrands.forEach(tempLostBrand=>{
|
system.debug('aaaa1++'+tempLostBrand.lostBrand.Lost_By_Company_Mannual__c);
|
if(string.isblank(tempLostBrand.lostBrand.Lost_By_Company__c)) {
|
tempLostBrand.lostBrand.Lost_By_Company__c.addError('请填写失单品牌!');
|
this.flag = false;
|
}// fy SWAG-CCC6F6 start
|
else if('其他'.equals(tempLostBrand.lostBrand.Lost_By_Company__c)&&string.isblank(tempLostBrand.lostBrand.Lost_By_Company_Mannual__c)){
|
tempLostBrand.lostBrand.Lost_By_Company_Mannual__c.addError('请填写失单品牌(手动)!');
|
this.flag = false;
|
}// fy SWAG-CCC6F6 end
|
system.debug('aaaa2++'+tempLostBrand.lostBrand.Lost_By_Company_Mannual__c);
|
if(tempLostBrand.lostBrand.LostPrice__c == null) {
|
tempLostBrand.lostBrand.LostPrice__c.addError('失单金额必填!');
|
this.flag = false;
|
}
|
if(string.isblank(tempLostBrand.lostBrand.Lost_reason_main__c )) {
|
tempLostBrand.lostBrand.Lost_reason_main__c.addError('失单理由(主)必填!');
|
this.flag = false;
|
}
|
if(string.isblank(tempLostBrand.lostBrand.Agency__c )) {
|
tempLostBrand.lostBrand.Agency__c.addError('中标经销商必填!');
|
this.flag = false;
|
}
|
// 检查是否有超过1个有数的产品
|
var productCount = 0;
|
tempLostBrand.LostProducts.forEach(temlostProduct=>{
|
if (temlostProduct.LostProductss.LostProduct__c != null || temlostProduct.LostProductss.LostProductMannual__c != null) {
|
System.debug('失单型号' + temlostProduct.LostProductss.LostProduct__c);
|
System.debug('失单型号手动' + temlostProduct.LostProductss.LostProductMannual__c);
|
productCount ++;
|
}
|
// update tcm 20211123 start
|
if((temlostProduct.LostProductss.LostProduct__c!=null || temlostProduct.LostProductss.LostProductMannual__c!=null)&&(temlostProduct.LostProductss.Quantity__c==null || temlostProduct.LostProductss.Quantity__c ==0)) {
|
temlostProduct.LostProductss.Quantity__c.addError('请填写失单数量!');
|
this.flag = false;
|
}
|
if((temlostProduct.LostProductss.LostProduct__c!=null || temlostProduct.LostProductss.LostProductMannual__c!=null)&&temlostProduct.LostProductss.ProductCategory__c==null) {
|
if (temlostProduct.LostProductss.ProductClass__c==null) {
|
temlostProduct.LostProductss.ProductClass__c.addError('失单产品类别必填!');
|
temlostProduct.LostProductss.ProductCategory__c.addError('失单产品必填!');
|
}else {
|
temlostProduct.LostProductss.ProductCategory__c.addError('失单产品必填!');
|
}
|
this.flag = false;
|
}
|
// 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 start
|
if ((temlostProduct.LostProductss.LostProduct__c==null && temlostProduct.LostProductss.LostProductMannual__c==null)&&(temlostProduct.LostProductss.ProductCategory__c!=null||temlostProduct.LostProductss.Quantity__c!=null)) {
|
if(tempLostBrand.lostBrand.Lost_By_Company__c != '其他'){
|
temlostProduct.LostProductss.LostProduct__c.addError('失单对手型号或失单对手型号(手动)必填!');
|
} else{
|
temlostProduct.LostProductss.LostProductMannual__c.addError('失单对手型号或失单对手型号(手动)必填!');
|
}
|
this.flag = false;
|
}
|
// 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 end
|
// update tcm 20211123 end
|
});
|
// 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 start
|
if (productCount == 0 && tempLostBrand.LostProducts != null && tempLostBrand.LostProducts.length > 0) {
|
if(tempLostBrand.lostBrand.Lost_By_Company__c != '其他'){
|
tempLostBrand.LostProducts[0].LostProductss.LostProduct__c.addError('至少录入1条失单对手型号信息!');
|
}else{
|
tempLostBrand.LostProducts[0].LostProductss.LostProductMannual__c.addError('至少录入1条失单对手型号信息!');
|
}
|
this.flag = false;
|
}
|
// 当失单品牌名为其他时,报错字段为失单对手型号(手动) thh 2022-01-17 end
|
});
|
}
|
}
|