From 03f01ce3cd914880401e4635901ce6a58668416f Mon Sep 17 00:00:00 2001
From: 19626 <1962676589@qq.com>
Date: 星期三, 17 五月 2023 09:10:33 +0800
Subject: [PATCH] 失单报告编辑页面
---
force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.html | 29 +
force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js | 8
force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.html | 49 ++
force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.js-meta.xml | 15
force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js | 534 ++++++++++++++++---------
force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.html | 28 +
force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.js | 52 ++
force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.html | 43 ++
force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.js | 68 +++
force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.js | 53 ++
force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.js-meta.xml | 15
force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.js-meta.xml | 14
force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.js | 84 ++++
force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html | 192 +++-----
force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.html | 4
force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.js-meta.xml | 15
force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css | 37 +
17 files changed, 924 insertions(+), 316 deletions(-)
diff --git a/force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.html b/force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.html
new file mode 100644
index 0000000..f0b0696
--- /dev/null
+++ b/force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.html
@@ -0,0 +1,43 @@
+<!--
+ * @Description:
+ * @version:
+ * @Author: chen jing wu
+ * @Date: 2023-04-27 11:23:11
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-05-08 11:29:27
+-->
+<template>
+ <lightning-card>
+ <!-- <lightning-button slot="actions" variant="brand" label="Add Row" onclick={addRow}></lightning-button> -->
+ <div class="slds-card__body slds-card__body_inner">
+ <table class="slds-table slds-table_bordered slds-table_cell-buffer slds-var-m-bottom_large">
+ <thead>
+ <tr class="slds-text-title_caps">
+ <template for:each={columns} for:item="column">
+ <th key={column.apiName}><div class="slds-truncate">{column.label}</div></th>
+ </template>
+ </tr>
+ </thead>
+ <tbody>
+ <template for:each={rows} for:item="row" for:index="index">
+ <tr class="inputRows" key={row.uuid}>
+ <template for:each={columns} for:item="column">
+ <td key={column.apiName}>
+ <c-lex-input-pick-list-cell class="fields" field-type={column.fieldType} record={row} field={column.apiName} object-name={column.objectName} value={column.value} read-only={column.readOnly} required={column.required}></c-lex-input-pick-list-cell>
+ <c-lex-input-table-cell class="fields" field-type={column.fieldType} record={row} field={column.apiName} required={column.required}></c-lex-input-table-cell>
+ <c-lex-input-lookup-cell class="fields" field-type={column.fieldType} field-name={column.apiName} record={row} api-name={column.objectName} disable={column.disable} required={column.required}></c-lex-input-lookup-cell>
+ </td>
+ </template>
+ <td>
+ <lightning-button-icon icon-name="utility:add" value={index} variant="bare" onclick={addRow}></lightning-button-icon>
+ </td>
+ <td>
+ <lightning-button-icon icon-name="utility:delete" value={index} variant="bare" onclick={removeRow}></lightning-button-icon>
+ </td>
+ </tr>
+ </template>
+ </tbody>
+ </table>
+ </div>
+ </lightning-card>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.js b/force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.js
new file mode 100644
index 0000000..009485e
--- /dev/null
+++ b/force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.js
@@ -0,0 +1,68 @@
+/*
+ * @Description:
+ * @version:
+ * @Author: chen jing wu
+ * @Date: 2023-04-27 11:23:11
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-05-15 15:37:57
+ */
+import { LightningElement, track, api,wire } from 'lwc';
+export default class LexDynamicTable extends LightningElement {
+ @api columnList;
+ @api title;
+ @track columns;
+ @track objectApiName;
+ @track pickListvalues;
+ @track rows = [{ uuid: this.createUUID()}];
+ connectedCallback() {
+ let cleanedColumnList = this.columnList[0] === '\\' ? this.columnList.substring(1) : this.columnList;
+ if(cleanedColumnList)
+ {
+ this.columns = cleanedColumnList;
+ }
+ }
+
+ createUUID() {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+ var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
+ return v.toString(16);
+ });
+ }
+
+ @api
+ retrieveRecords() {
+ let rows = Array.from(this.template.querySelectorAll(".inputRows") );
+ var records=[];
+ rows.map(row => {
+ let texts = Array.from(row.querySelectorAll(".fields"));
+ if(texts)
+ {
+ var textVal=this.fieldValues(texts);
+ records=[...records,textVal];
+ }
+ });
+ return records;
+ }
+ fieldValues(cells)
+ {
+ return cells.reduce((record, cell) => {
+ let inputVal = cell.inputValue();
+ if(inputVal.value!=undefined)
+ {
+ record[inputVal.field] = inputVal.value;
+ }
+ return record;
+ }, {});
+ }
+ removeRow(event) {
+ const list = this.template.querySelectorAll(['lightning-button-icon']);
+ if(list.length / 2 == 1){
+ return;
+ }
+ this.rows.splice(event.target.value, 1);
+ }
+
+ addRow() {
+ this.rows.push({ uuid: this.createUUID()});
+ }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.js-meta.xml b/force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.js-meta.xml
new file mode 100644
index 0000000..2ba8956
--- /dev/null
+++ b/force-app/main/default/lwc/lexDynamicTable/lexDynamicTable.js-meta.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+ <apiVersion>49.0</apiVersion>
+ <description>Dynamic Table</description>
+ <isExposed>true</isExposed>
+ <masterLabel>Dynamic Table</masterLabel>
+ <targets>
+ <target>lightningCommunity__Page</target>
+ <target>lightningCommunity__Default</target>
+ <target>lightning__RecordPage</target>
+ <target>lightning__AppPage</target>
+ <target>lightning__HomePage</target>
+ </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.html b/force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.html
new file mode 100644
index 0000000..138a232
--- /dev/null
+++ b/force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.html
@@ -0,0 +1,29 @@
+<!--
+ * @Description:
+ * @version:
+ * @Author: chen jing wu
+ * @Date: 2023-04-27 11:38:36
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-05-08 10:13:58
+-->
+<template>
+ <template if:true={isLookup}>
+ <lightning-record-edit-form
+ object-api-name={apiName}
+ record-id=''
+ >
+ <!-- <template if:true={isDisable}>
+ <lightning-input-field field-name={fieldName} onclick={handleinputChange} variant="label-hidden" disabled="true"> </lightning-input-field>
+ </template>
+ <template if:false={isDisable}>
+ <lightning-input-field field-name={fieldName} onclick={handleinputChange} variant="label-hidden"> </lightning-input-field>
+ </template> -->
+ <template if:true={isRequired}>
+ <lightning-input-field field-name={fieldName} onclick={handleinputChange} variant="label-hidden" disabled={isDisable} required> </lightning-input-field>
+ </template>
+ <template if:false={isRequired}>
+ <lightning-input-field field-name={fieldName} onclick={handleinputChange} variant="label-hidden" disabled={isDisable}> </lightning-input-field>
+ </template>
+ </lightning-record-edit-form>
+ </template>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.js b/force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.js
new file mode 100644
index 0000000..a6eafdb
--- /dev/null
+++ b/force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.js
@@ -0,0 +1,53 @@
+/*
+ * @Description:
+ * @version:
+ * @Author: chen jing wu
+ * @Date: 2023-04-27 11:38:36
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-05-08 10:25:31
+ */
+import { LightningElement, api } from 'lwc';
+export default class LexInputLookupCell extends LightningElement {
+ @api record;
+ @api fieldName;
+ @api apiName;
+ @api type;
+ @api fieldType;
+ @api disable;
+ @api required;
+ value;
+ label;
+ connectedCallback() {
+ this.value = this.record[this.fieldName];
+ this.label = this.fieldName;
+ }
+ get isRequired(){
+ return this.required;
+ }
+
+ handleInputChange(event) {
+ this.value = event.target.value;
+ }
+ get isDisable(){
+ if(this.disable == true){
+ return true;
+ }else{
+ return false;
+ }
+ }
+ getSearchResult(){
+
+ }
+
+ @api
+ inputValue() {
+ return { value : this.value, field: this.field };
+ }
+ get isLookup() {
+ if(this.fieldType)
+ {
+ return this.fieldType.toLowerCase()=='lookup';
+ }
+ return false;
+ }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.js-meta.xml b/force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.js-meta.xml
new file mode 100644
index 0000000..f57dafd
--- /dev/null
+++ b/force-app/main/default/lwc/lexInputLookupCell/lexInputLookupCell.js-meta.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+ <apiVersion>49.0</apiVersion>
+ <description>Lookup Component</description>
+ <isExposed>true</isExposed>
+ <masterLabel>Lookup Component</masterLabel>
+ <targets>
+ <target>lightningCommunity__Page</target>
+ <target>lightningCommunity__Default</target>
+ <target>lightning__RecordPage</target>
+ <target>lightning__AppPage</target>
+ <target>lightning__HomePage</target>
+ <target>lightning__FlowScreen</target>
+ </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.html b/force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.html
new file mode 100644
index 0000000..edcca5c
--- /dev/null
+++ b/force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.html
@@ -0,0 +1,49 @@
+<!--
+ * @Description:
+ * @version:
+ * @Author: chen jing wu
+ * @Date: 2023-04-27 11:15:23
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-05-08 11:04:56
+-->
+<template>
+ <template if:true={isPickList}>
+ <!-- <template if:true={isReadOnly}>
+ <lightning-combobox
+ name="progress"
+ variant="label-hidden"
+ value={value}
+ placeholder={value}
+ options={options}
+ onchange={handleChange} readonly="true"></lightning-combobox>
+ </template>
+ <template if:false={isReadOnly}>
+ <lightning-combobox
+ name="progress"
+ variant="label-hidden"
+ value={value}
+ placeholder="--鏃�--"
+ options={options}
+ onchange={handleChange} ></lightning-combobox>
+ </template> -->
+ <template if:true={isRequired}>
+ <lightning-combobox
+ name="progress"
+ variant="label-hidden"
+ value={value}
+ placeholder="--鏃�--"
+ options={options}
+ onchange={handleChange} readonly={isReadOnly} required></lightning-combobox>
+ </template>
+ <template if:false={isRequired}>
+ <lightning-combobox
+ name="progress"
+ variant="label-hidden"
+ value={value}
+ placeholder="--鏃�--"
+ options={options}
+ onchange={handleChange} readonly={isReadOnly}></lightning-combobox>
+ </template>
+
+ </template>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.js b/force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.js
new file mode 100644
index 0000000..4081d4d
--- /dev/null
+++ b/force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.js
@@ -0,0 +1,84 @@
+/*
+ * @Description:
+ * @version:
+ * @Author: chen jing wu
+ * @Date: 2023-04-27 11:15:23
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-05-08 11:39:23
+ */
+import { LightningElement, track,wire, api } from 'lwc';
+import getPickList from '@salesforce/apex/lexPCLLostReportLwcController.getPickList';
+import searchBrands from '@salesforce/apex/lexPCLLostReportLwcController.searchBrands';
+export default class LexInputPickListCell extends LightningElement {
+ @track options=[];
+ @api value;
+ @api record;
+ @api field;
+ @api fieldType;
+ @api objectName;
+ @api readOnly;
+ @api required;
+ value1;
+ label;
+ connectedCallback() {
+ this.value1 = this.record[this.field];
+ this.label = this.field;
+ if(this.objectName!==undefined && this.isPickList)
+ {
+ if(this.label!= 'LostBrandName__c'){
+ this.getPicklist(this.objectName,this.field);
+ }else{
+ this.getSearchBrands();
+ }
+ }
+ }
+ get isRequired(){
+ return this.required;
+ }
+ getSearchBrands(){
+ searchBrands().then(result=>{
+ this.options = JSON.parse(result);
+ });
+ }
+
+ getPicklist(obj,field)
+ {
+ getPickList({ objectName : obj, fieldName :field})
+ .then(result => {
+ if(result)
+ {
+ for(let i=0; i<result.length; i++) {
+ console.log('id=' + result[i]);
+ this.options = [...this.options ,{value: result[i] , label: result[i]}];
+ }
+ this.error = undefined;
+ }
+ })
+ .catch(error => {
+ this.message = undefined;
+ this.error = error;
+ });
+ }
+ handleChange(event) {
+ this.value = event.target.value;
+ }
+ get isPickList() {
+ if(this.fieldType)
+ {
+ return this.fieldType.toLowerCase()=='picklist';
+ }
+ return false;
+ }
+ get isReadOnly(){
+ if(this.readOnly == true){
+ return true;
+ }else{
+ return false;
+ }
+ }
+
+ @api
+ inputValue() {
+ return { value : this.value, field: this.field };
+ }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.js-meta.xml b/force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.js-meta.xml
new file mode 100644
index 0000000..053f85f
--- /dev/null
+++ b/force-app/main/default/lwc/lexInputPickListCell/lexInputPickListCell.js-meta.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+ <apiVersion>49.0</apiVersion>
+ <description>PickList Component</description>
+ <isExposed>true</isExposed>
+ <masterLabel>PickList Component</masterLabel>
+ <targets>
+ <target>lightningCommunity__Page</target>
+ <target>lightningCommunity__Default</target>
+ <target>lightning__RecordPage</target>
+ <target>lightning__AppPage</target>
+ <target>lightning__HomePage</target>
+ <target>lightning__FlowScreen</target>
+ </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.html b/force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.html
new file mode 100644
index 0000000..5c2dd36
--- /dev/null
+++ b/force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.html
@@ -0,0 +1,28 @@
+<!--
+ * @Description:
+ * @version:
+ * @Author: chen jing wu
+ * @Date: 2023-04-27 11:12:28
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-05-08 11:43:29
+-->
+<template>
+ <template if:true={isText}>
+ <!-- <lightning-input type={type} variant="label-hidden" label={field} name={field} value={value} onchange={handleInputChange}></lightning-input> -->
+ <template if:true={isRequired}>
+ <lightning-input type={type} variant="label-hidden" label={field} name={field} value={value} onchange={handleInputChange} required></lightning-input>
+ </template>
+ <template if:false={isRequired}>
+ <lightning-input type={type} variant="label-hidden" label={field} name={field} value={value} onchange={handleInputChange}></lightning-input>
+ </template>
+ </template>
+ <template if:true={isNumber}>
+ <!-- <lightning-input type={type} variant="label-hidden" label={field} name={field} value={value} onchange={handleInputChange}></lightning-input> -->
+ <template if:true={isRequired}>
+ <lightning-input type={type} variant="label-hidden" label={field} name={field} value={value} onchange={handleInputChange} required></lightning-input>
+ </template>
+ <template if:false={isRequired}>
+ <lightning-input type={type} variant="label-hidden" label={field} name={field} value={value} onchange={handleInputChange}></lightning-input>
+ </template>
+ </template>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.js b/force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.js
new file mode 100644
index 0000000..b2527b8
--- /dev/null
+++ b/force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.js
@@ -0,0 +1,52 @@
+/*
+ * @Description:
+ * @version:
+ * @Author: chen jing wu
+ * @Date: 2023-04-27 11:12:28
+ * @LastEditors: chen jing wu
+ * @LastEditTime: 2023-05-08 11:46:35
+ */
+import { LightningElement, api } from 'lwc';
+
+export default class LexInputTableCell extends LightningElement {
+ @api record;
+ @api field;
+ @api fieldType;
+ @api type;
+ @api required;
+ value;
+ label;
+ connectedCallback() {
+ this.value = this.record[this.field];
+ this.label = this.field;
+ this.type='text';
+ }
+ get isRequired(){
+ return this.required;
+ }
+
+ handleInputChange(event) {
+ this.value = event.target.value;
+ }
+
+ @api
+ inputValue() {
+ return { value : this.value, field: this.field };
+ }
+ get isText() {
+ if(this.fieldType)
+ {
+ this.type = 'text';
+ return this.fieldType.toLowerCase()=='text';
+ }
+ return false;
+ }
+ get isNumber(){
+ if(this.fieldType)
+ {
+ this.type = 'number';
+ return this.fieldType.toLowerCase()=='number';
+ }
+ return false;
+ }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.js-meta.xml b/force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.js-meta.xml
new file mode 100644
index 0000000..c607bfb
--- /dev/null
+++ b/force-app/main/default/lwc/lexInputTableCell/lexInputTableCell.js-meta.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+ <apiVersion>49.0</apiVersion>
+ <description>Input Cell component</description>
+ <isExposed>true</isExposed>
+ <masterLabel>Input Cell component</masterLabel>
+ <targets>
+ <target>lightningCommunity__Page</target>
+ <target>lightningCommunity__Default</target>
+ <target>lightning__RecordPage</target>
+ <target>lightning__AppPage</target>
+ <target>lightning__HomePage</target>
+ <target>lightning__FlowScreen</target>
+ </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css
index 7ee9e0b..8e59af1 100644
--- a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css
+++ b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.css
@@ -18,4 +18,39 @@
.slds-form-element__label {
width: 144px;
margin-right: -5rem;
-}
\ No newline at end of file
+
+}
+.myinitDiv{
+
+}
+.card{
+
+}
+
+.my-addbutton{
+ -webkit-text-size-adjust: 100%;
+ font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';
+ line-height: normal;
+ color: rgb(3, 45, 96);
+ -webkit-tap-highlight-color: transparent;
+ border-spacing: 0;
+ border-collapse: separate;
+ font-size: 13px;
+ white-space: normal;
+ box-sizing: border-box;
+ border: 0;
+}
+
+.container {
+ display: flex;
+ justify-content: space-between; /* 璁剧疆瀛愬厓绱犻棿鐨勯棿璺� */
+ }
+
+ .item {
+ flex: 1; /* 璁剧疆瀛愬厓绱犵殑浼哥缉姣斾緥锛屽钩鍒嗗墿浣欑┖闂� /
+ max-width: 100%; / 闃叉瀛愬厓绱犳孩鍑哄鍣� */
+ }
+
+ .text-container p:first-line {
+ background-color: rgb(243, 243, 243);
+ }
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html
index d048f51..2b13db8 100644
--- a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html
+++ b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.html
@@ -4,154 +4,102 @@
* @Author: chen jing wu
* @Date: 2023-04-20 17:16:48
* @LastEditors: chen jing wu
- * @LastEditTime: 2023-04-26 14:07:51
+ * @LastEditTime: 2023-05-16 11:41:50
-->
<template>
- <lightning-card variant="Narrow">
- <!-- <lightning-input onchange={initAll}></lightning-input> -->
+ <lightning-card id="my-element" class="card" variant="Narrow" data-id="my-card">
<div style="padding: 0 20px">
<lightning-layout>
<lightning-layout-item>
<div class="mainTitle" style="padding: 10px 3px;font-weight: bold;">澶卞崟鎶ュ憡缂栬緫椤甸潰</div>
</lightning-layout-item>
- <div class="slds-align_absolute-center">
- <lightning-layout-item size="12">
+ <div style="margin-left: 550px;">
+ <lightning-layout-item size="12">
<lightning-button label="杩藉姞鍝佺墝" onclick={addBrandJs}></lightning-button>
- <lightning-button label="淇濆瓨" onclick={saveJs}></lightning-button>
+ <lightning-button name="save" label="淇濆瓨" onclick={saveBrandJs}></lightning-button>
<lightning-button label="杩斿洖璇环" onclick={cancel}></lightning-button>
</lightning-layout-item>
</div>
- <!-- <lightning-layout-item flexibility="auto" padding="around-small">
- <lightning-button label="淇濆瓨" onclick={saveJs}></lightning-button>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="around-small">
- <lightning-button label="杩斿洖璇环" onclick={cancel}></lightning-button>
- </lightning-layout-item> -->
</lightning-layout>
<div style="margin-top: 5px">
<lightning-layout>
<lightning-layout-item size="2" padding="around-small">
- <!-- <div class="combobox-container">
- <label for="losttype">澶卞崟绫诲瀷:</label>
- <lightning-combobox id="losttype" name="progress" value={lostReportObj.RecordType} options={RecordTypeOptions}
- onchange={handleStatus1Change} class="searchField" style="width: 71.33px; height: 32px;">
- </lightning-combobox>
- </div> -->
<div class="slds-form_horizontal my-combobox">
<label class="slds-form-element__label">澶卞崟绫诲瀷锛�</label>
- <lightning-combobox name="progress" value="澶卞崟" options={RecordTypeOptions}
- onchange={handleStatus1Change} class="searchField" style="width: 71.33px; height: 32px;">
+ <lightning-combobox name="progress" value={LostReport.lostReport.LostType__c} options={RecordTypeOptions}
+ onchange={handleLostTypeChange} class="searchField" required>
</lightning-combobox>
</div>
</lightning-layout-item>
<lightning-layout-item size="3" padding="around-small">
- <div style="padding: 10px 3px;font: 16px;">澶卞崟鎬婚噾棰濓紙鍏冿級:</div>
- <!-- <lightning-output-field>{LostReport.lostReport.LostTotalAmount__c}</lightning-output-field> -->
- <lightning-output-field>0</lightning-output-field>
+ <div style="padding: 10px 3px;font: 16px;">澶卞崟鎬婚噾棰濓紙鍏冿級:{LostReport.lostReport.LostTotalAmount__c}</div>
</lightning-layout-item>
<lightning-layout-item size="3" padding="around-small">
- <div style="padding: 10px 3px;font: 16px;">鐘舵��:</div>
- <!-- <lightning-output-field>{LostReport.lostReport.Report_Status__c}</lightning-output-field> -->
+ <div style="padding: 10px 3px;font: 16px;">鐘舵��:{LostReport.lostReport.Report_Status__c}</div>
</lightning-layout-item>
</lightning-layout>
- <lightning-accordion allow-multiple-sections-open>
- <lightning-accordion-section name="澶卞崟鍝佺墝" label="澶卞崟鍝佺墝">
- <lightning-layout>
- <lightning-layout-item size="4" padding="around-small">
- <c-multi-select-combobox multis-select="true" options={brandOptions} selected-value= "asd" label="澶卞崟鍝佺墝: "></c-multi-select-combobox>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="around-small">
- <lightning-combobox name="progress" label="澶卞崟鍘熷洜锛堜富锛�:" value="" options={status1Options}
- onchange={handleStatus1Change} class="searchField"></lightning-combobox>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="around-small">
- <lightning-combobox name="progress" label="澶卞崟鍘熷洜锛堟锛�:" value="" options={status1Options}
- onchange={handleStatus1Change} class="searchField"></lightning-combobox>
- </lightning-layout-item>
- </lightning-layout>
- <lightning-layout>
- <lightning-layout-item size="4" padding="horizontal-small">
- <lightning-input value="" type="text" label="澶卞崟鍝佺墝锛堟墜鍔級: " class="searchField" onchange={handleRepairNameChange}></lightning-input>
- </lightning-layout-item>
- <lightning-layout-item size="4" padding="horizontal-small">
- <lightning-input value="" type="text" label="澶卞崟閲戦锛堝厓锛�: " class="searchField" onchange={handleRepairNameChange}></lightning-input>
- </lightning-layout-item>
- <lightning-layout-item size="4" padding="horizontal-small">
- <lightning-record-edit-form
- object-api-name='PCLLostBrand__c'
- record-id=''
- >
- <lightning-input-field field-name='Agency__c' onclick={handleWinBidAgencyChange}> </lightning-input-field>
- </lightning-record-edit-form>
- </lightning-layout-item>
- </lightning-layout>
- <lightning-layout>
- <lightning-layout-item size="4" padding="horizontal-small">
- <lightning-input value="" type="text" label="涓爣缁忛攢鍟嗭紙鎵嬪姩锛�:" class="searchField" onchange={handleRepairNameChange}></lightning-input>
- </lightning-layout-item>
- </lightning-layout>
- <lightning-layout style="background-color: rgb(243, 243, 243)">
- <div></div>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <div>澶卞崟鍝佺墝</div>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <div>澶卞崟瀵规墜鍨嬪彿</div>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <div>澶卞崟鏁伴噺</div>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <div>澶卞崟瀵规墜鍨嬪彿(鎵嬪姩)</div>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <div>澶卞崟浜у搧绫诲埆</div>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <div>澶卞崟浜у搧鍖哄垎</div>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <div>+</div>
- </lightning-layout-item>
- </lightning-layout>
- <lightning-layout>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <lightning-combobox name="progress" value="" options={status1Options}
- onchange={handleStatus1Change} class="searchField"></lightning-combobox>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <lightning-record-edit-form
- object-api-name='PCLLostProduct__c'
- record-id=''
- >
- <lightning-input-field field-name='LostProduct__c' onclick={handleWinBidAgencyChange}> </lightning-input-field>
- </lightning-record-edit-form>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <lightning-input value="" type="text" class="searchField" onchange={handleRepairNameChange}></lightning-input>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <lightning-input value="" type="text" class="searchField" onchange={handleRepairNameChange}></lightning-input>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <lightning-combobox name="progress" value="" options={status1Options}
- onchange={handleStatus1Change} class="searchField"></lightning-combobox>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <lightning-combobox name="progress" value="" options={status1Options}
- onchange={handleStatus1Change} class="searchField"></lightning-combobox>
- </lightning-layout-item>
- <lightning-layout-item flexibility="auto" padding="horizontal-small">
- <lightning-button
- label="Add Contact"
- variant="brand"
- onclick={handleAddClick}>
- </lightning-button>
- </lightning-layout-item>
- </lightning-layout>
- </lightning-accordion-section>
+ <lightning-accordion allow-multiple-sections-open class="myAccordion">
+ <template for:each={LostReport.LostBrands} for:item="brand" for:index="i">
+ <li key={brand.index}>
+ <lightning-accordion-section class="text-container" data-id={i} name="澶卞崟鍝佺墝" label="澶卞崟鍝佺墝">
+ <lightning-button name={i} label="淇濆瓨" onclick={saveBrandJs}></lightning-button>
+ <lightning-button name={i} label="鍒犻櫎" onclick={deleteBrandJs} disabled={isBrandCount2}></lightning-button>
+ <lightning-layout>
+ <lightning-layout-item size="4" padding="around-small">
+ <c-multi-select-combobox name={i} onselect={setBrandMannualName} data-id="Lost_By_Company" class="mycombobox" options={brandOptions} selected-value={reasonValue} label="澶卞崟鍝佺墝: " required></c-multi-select-combobox>
+ </lightning-layout-item>
+ <lightning-layout-item flexibility="auto" padding="around-small">
+ <lightning-combobox name={i} label="澶卞崟鍘熷洜锛堜富锛�:" value="" options={columns2}
+ onchange={handleLostReasonMainChange} class="searchField" required></lightning-combobox>
+ </lightning-layout-item>
+ <lightning-layout-item flexibility="auto" padding="around-small">
+ <lightning-combobox name={i} label="澶卞崟鍘熷洜锛堟锛�:" value="" options={columns2}
+ onchange={handleLostReasonSubChange} class="searchField"></lightning-combobox>
+ </lightning-layout-item>
+ </lightning-layout>
+ <lightning-layout>
+ <lightning-layout-item size="4" padding="horizontal-small">
+ <lightning-input name={i} data-id="Lost_By_Company_Mannual" value="" type="text" label="澶卞崟鍝佺墝锛堟墜鍔級: " class="searchField" onchange={handleLostByCompanyMannualChange}></lightning-input>
+ </lightning-layout-item>
+ <lightning-layout-item size="4" padding="horizontal-small">
+ <lightning-input data-id="TotalAmount" name={i} value="" type="number" label="澶卞崟閲戦锛堝厓锛�: " class="searchField" onchange={handleLostPriceOutChange} required></lightning-input>
+ </lightning-layout-item>
+ <lightning-layout-item size="4" padding="horizontal-small">
+ <lightning-record-edit-form
+ object-api-name='PCLLostBrand__c'
+ record-id=''
+ >
+ <lightning-input-field name={i} field-name='Agency__c' onchange={handleAgencyOutChange} required> </lightning-input-field>
+ </lightning-record-edit-form>
+ </lightning-layout-item>
+ </lightning-layout>
+ <lightning-layout>
+ <lightning-layout-item size="4" padding="horizontal-small">
+ <lightning-input name={i} value="" type="text" label="涓爣缁忛攢鍟嗭紙鎵嬪姩锛�:" class="searchField" onchange={handleAgencyMannualOutChange}></lightning-input>
+ </lightning-layout-item>
+ </lightning-layout>
+ <lightning-layout>
+ <lightning-layout-item flexibility="auto" padding="around-small">
+ <template if:true={isInit}>
+ <c-lex-dynamic-table name={i} column-list={brand.columns} onchange={setProductClass}>
+ </c-lex-dynamic-table>
+ </template>
+ </lightning-layout-item>
+ </lightning-layout>
+ </lightning-accordion-section>
+ </li>
+ </template>
</lightning-accordion>
+ <lightning-layout style="margin-top: 20px;">
+ <div class="slds-align_absolute-center">
+ <lightning-layout-item size="12">
+ <lightning-button label="杩藉姞鍝佺墝" onclick={addBrandJs}></lightning-button>
+ <lightning-button name="save" label="淇濆瓨" onclick={saveBrandJs}></lightning-button>
+ <lightning-button label="杩斿洖璇环" onclick={cancel}></lightning-button>
+ </lightning-layout-item>
+ </div>
+ </lightning-layout>
</div>
- </div>
+ </div>
</lightning-card>
</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
index 05d8284..900eb15 100644
--- a/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
+++ b/force-app/main/default/lwc/lexPCLLostReportPage/lexPCLLostReportPage.js
@@ -4,89 +4,105 @@
* @Author: chen jing wu
* @Date: 2023-04-20 15:04:03
* @LastEditors: chen jing wu
- * @LastEditTime: 2023-04-26 11:45:00
+ * @LastEditTime: 2023-05-16 11:43:27
*/
-/*
- * @Description:
- * @version:
- * @Author: chen jing wu
- * @Date: 2023-04-20 15:04:03
- * @LastEditors: chen jing wu
- * @LastEditTime: 2023-04-20 17:11:01
- */
-const columns = [
- {
- label: '澶卞崟鍝佺墝',
- fieldName: 'LostBrandName__c',
- type: 'list',
- editable: true
- },
- {
- label: '澶卞崟瀵规墜鍨嬪彿',
- fieldName: 'LostProductName__c',
- type: 'text',
- editable: true
- },
- {
- label: '澶卞崟鏁伴噺',
- fieldName: 'Quantity__c',
- type: 'number',
- editable: true
- },
- {
- label: '澶卞崟瀵规墜鍨嬪彿锛堟墜鍔級',
- fieldName: 'LostProductMannual__c',
- type: 'text',
- editable: true
- },
- {
- label: '澶卞崟浜у搧绫诲埆',
- fieldName: 'ProductClass__c',
- type: 'list',
- editable: true
- },
- {
- label: '澶卞崟浜у搧鍖哄垎',
- fieldName: 'ProductCategory__c',
- type: 'list',
- editable: true
- }
- // ...
- ];
+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 dataEntry from '@salesforce/apex/lexPCLLostReportLwcController.dataEntry';
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 initForApex from '@salesforce/apex/lexPCLLostReportLwcController.initForApex';
import multiSelectCombobox from 'c/multiSelectCombobox'
+import lexMultiSelectCombobox from 'c/lexmultiSelectCombobox';
import searchBrands from '@salesforce/apex/lexPCLLostReportLwcController.searchBrands';
-export default class LexPCLLostReportPage extends LightningElement {
- @api oppId = '0061000001R2xjWAAR';
- @api lostReportId;
- @api pageStatus = 'Create';
- @api lostType = '澶卞崟';
- @api submitFlag;
- searchResult;
- LostReport;
- brandCount;
- brandOptions = [];
- connectedCallback() {
- this.initAll();
+import getNewLostBrand from '@salesforce/apex/lexPCLLostReportLwcController.getNewLostBrand';
+import { NavigationMixin } from 'lightning/navigation';
+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 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}
+ ];
+ 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;
+ }else{
+ this.showToast(result.message,"error");
+ }
+ }else{
+ this.LostReport = result.LostReport;
+ this.LostReport.lostReport.LostTotalAmount__c = 0.0;
+ this.LostReport.LostBrands[0].columns = JSON.parse(JSON.stringify(this.columns));
+ }
+ }).catch(error=>{
+ console.log("error");
+ console.log(error);
+ });
searchBrands().then(result=>{
this.brandOptions = JSON.parse(result);
- console.log(this.brandOptions);
- const multiCombobox = this.template.querySelector('c-multi-select-combobox');
- multiCombobox.refreshOptions(this.brandOptions);
+ const multiComboboxs = this.template.querySelectorAll('c-multi-select-combobox');
+ multiComboboxs.forEach(multiCombobox=>{
+ 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: '澶卞崟' },
@@ -106,80 +122,20 @@
}
}
}
- // 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");
- // }
- // });
- // });
- // }
-
- initAll(){
- console.log(this.oppId);
- console.log(this.lostReportId);
- console.log(this.pageStatus);
- console.log(this.lostType);
- console.log(this.submitFlag);
- 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");
- }
- });
- });
+ 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);
}
- saveJs() {
- save().then(result=>{
- if(result){
- this.showToast(result,"success");
- this.clearBrandMannualName();
- }
- })
- }
addBrandJs() {
- addBrand().then(()=>{
+ 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() {
@@ -199,81 +155,78 @@
}
});
}
- addProductJs(number) {
- addProduct().then(()=>{
- });
- }
- 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);
+ }
// add tcm 20211118 end
setLostTotalAmount() {
- //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;
- }
- }
+ 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);
}
- totalAmount.innerHTML = toNumComma(tempLostAmount);
- totalAmountHidden.value = tempLostAmount;
- }
- //console.log('setLostTotalAmount end');
+ });
+ this.LostReport.lostReport.LostTotalAmount__c = tempLostAmount;
}
setBrandName(brandNumber) {
setbrand().then(()=>{
this.clearBrandMannualName();
});
}
- setBrandMannualName(brandNumber) {
- setbrandmannual().then(()=>{
- });
+ 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.setDefaultBrand(payload.value,index);
+ this.clearBrandMannualName(payload.value,index);
+ }
}
+ setDefaultBrand(value,index){
+ this.LostReport.LostBrands[index].columns[0].value = value;
+ }
+
+
// 澶卞崟鍝佺墝涓嶇瓑浜庡叾浠栨椂,澶卞崟鍝佺墝锛堟墜鍔級娓呯┖骞朵笖涓嶅厑璁稿~鍐�,澶卞崟鍝佺墝绛変簬鍏朵粬鏃�,澶卞崟瀵规墜鍨嬪彿涓嶅彲鐢� thh 2022-01-13 start
- clearBrandMannualName(){
- if (this.template.querySelector('[id$="Lost_By_CompanyOut"]').value === '鍏朵粬') {
- this.template.querySelector('[id$="LostProduct"]').setAttribute('disabled', true);
+ 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 {
- this.template.querySelector('[id$="Lost_By_Company_MannualOut:Lost_By_Company_Mannual"]').value = '';
- this.template.querySelector('[id$="Lost_By_Company_MannualOut:Lost_By_Company_Mannual"]').setAttribute('disabled', true);
+ 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
- this[NavigationMixin.Navigate]({
- type: 'standard__recordPage',
- attributes: {
- recordId: this.oppId,
- actionName: 'view'
- }
- });
+ this[NavigationMixin.Navigate]({
+ type: 'standard__recordPage',
+ attributes: {
+ recordId: this.oppId,
+ actionName: 'view'
+ }
+ });
+
}
showToast(msg,type) {
const event = new ShowToastEvent({
@@ -284,5 +237,206 @@
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);
+ });
+
+ }
+ 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;
+ }
+
+ 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))
+ {
+ this.flag = false;
+ this.showToast('蹇呴』濉啓澶卞崟绫诲瀷锛�','error');
+
+ }
+ this.LostReport.LostBrands.forEach(tempLostBrand=>{
+ if(tempLostBrand.lostBrand.Lost_By_Company__c == undefined || this.isBlank(tempLostBrand.lostBrand.Lost_By_Company__c)) {
+ this.flag = false;
+ this.showToast('璇峰~鍐欏け鍗曞搧鐗岋紒','error');
+
+ }// fy SWAG-CCC6F6 start
+ else if(tempLostBrand.lostBrand.Lost_By_Company__c == '鍏朵粬' && (tempLostBrand.lostBrand.Lost_By_Company_Mannual__c == undefined || this.isBlank(tempLostBrand.lostBrand.Lost_By_Company_Mannual__c))){
+ this.flag = false;
+ this.showToast('璇峰~鍐欏け鍗曞搧鐗岋紙鎵嬪姩锛夛紒','error');
+
+ }// fy SWAG-CCC6F6 end
+ if(tempLostBrand.lostBrand.LostPrice__c == undefined || this.isBlank(tempLostBrand.lostBrand.LostPrice__c)) {
+ this.flag = false;
+ this.showToast('澶卞崟閲戦蹇呭~锛�','error');
+
+ }
+ if(tempLostBrand.lostBrand.Lost_reason_main__c == undefined || this.isBlank(tempLostBrand.lostBrand.Lost_reason_main__c)) {
+ this.flag = false;
+ this.showToast('澶卞崟鐞嗙敱(涓�)蹇呭~锛�','error');
+
+ }
+ if(tempLostBrand.lostBrand.Agency__c == undefined || this.isBlank(tempLostBrand.lostBrand.Agency__c)) {
+ this.flag= false;
+ this.showToast('涓爣缁忛攢鍟嗗繀濉紒','error');
+
+ }
+ // 妫�鏌ユ槸鍚︽湁瓒呰繃1涓湁鏁扮殑浜у搧
+ var productCount = 0;
+ tempLostBrand.LostProducts.forEach(temlostProduct=>{
+ if ((temlostProduct.LostProductss.LostProduct__c != undefined && !this.isBlank(temlostProduct.LostProductss.LostProduct__c)) || (temlostProduct.LostProductss.LostProductMannual__c != undefined && !this.isBlank(temlostProduct.LostProductss.LostProductMannual__c))) {
+ productCount ++;
+ }
+ // update tcm 20211123 start
+ if(((temlostProduct.LostProductss.LostProduct__c!= undefined && !this.isBlank(temlostProduct.LostProductss.LostProduct__c)) || (temlostProduct.LostProductss.LostProductMannual__c!=undefined && !this.isBlank(temlostProduct.LostProductss.LostProductMannual__c)))&&(temlostProduct.LostProductss.Quantity__c==undefined || this.isBlank(temlostProduct.LostProductss.Quantity__c) || temlostProduct.LostProductss.Quantity__c ==0)) {
+ this.flag = false;
+ this.showToast('璇峰~鍐欏け鍗曟暟閲忥紒','error');
+
+ }
+ if(((temlostProduct.LostProductss.LostProduct__c!=undefined && !this.isBlank(temlostProduct.LostProductss.LostProduct__c)) || (temlostProduct.LostProductss.LostProductMannual__c!=undefined && !this.isBlank(temlostProduct.LostProductss.LostProductMannual__c)))&&(temlostProduct.LostProductss.ProductCategory__c==undefined || this.isBlank(temlostProduct.LostProductss.ProductCategory__c))) {
+ this.flag = false;
+ if (temlostProduct.LostProductss.ProductClass__c==undefined || this.isBlank(temlostProduct.LostProductss.ProductClass__c)) {
+ this.showToast('澶卞崟浜у搧绫诲埆蹇呭~锛�','error');
+ this.showToast('澶卞崟浜у搧蹇呭~锛�','error');
+ }else {
+ this.showToast('澶卞崟浜у搧蹇呭~锛�','error');
+ }
+
+ }
+ // 褰撳け鍗曞搧鐗屽悕涓哄叾浠栨椂,鎶ラ敊瀛楁涓哄け鍗曞鎵嬪瀷鍙凤紙鎵嬪姩锛� thh 2022-01-17 start
+ if (((temlostProduct.LostProductss.LostProduct__c==undefined || this.isBlank(temlostProduct.LostProductss.LostProduct__c)) && (temlostProduct.LostProductss.LostProductMannual__c==undefined || this.isBlank(temlostProduct.LostProductss.LostProductMannual__c)))&&((temlostProduct.LostProductss.ProductCategory__c!=undefined && !this.isBlank(temlostProduct.LostProductss.ProductCategory__c))||(temlostProduct.LostProductss.Quantity__c!=undefined && !this.isBlank(temlostProduct.LostProductss.Quantity__c)))) {
+ this.flag = false;
+ if(tempLostBrand.lostBrand.Lost_By_Company__c != '鍏朵粬'){
+ this.showToast('澶卞崟瀵规墜鍨嬪彿鎴栧け鍗曞鎵嬪瀷鍙凤紙鎵嬪姩锛夊繀濉紒','error');
+ } else{
+ this.showToast('澶卞崟瀵规墜鍨嬪彿鎴栧け鍗曞鎵嬪瀷鍙凤紙鎵嬪姩锛夊繀濉紒','error');
+ }
+
+ }
+ // 褰撳け鍗曞搧鐗屽悕涓哄叾浠栨椂,鎶ラ敊瀛楁涓哄け鍗曞鎵嬪瀷鍙凤紙鎵嬪姩锛� thh 2022-01-17 end
+ // update tcm 20211123 end
+ });
+ // 褰撳け鍗曞搧鐗屽悕涓哄叾浠栨椂,鎶ラ敊瀛楁涓哄け鍗曞鎵嬪瀷鍙凤紙鎵嬪姩锛� thh 2022-01-17 start
+ if (productCount == 0 && (tempLostBrand.LostProducts != undefined && !this.isBlank(tempLostBrand.LostProducts)) && tempLostBrand.LostProducts.length > 0) {
+ this.flag = false;
+ if(tempLostBrand.lostBrand.Lost_By_Company__c != '鍏朵粬'){
+ this.showToast('鑷冲皯褰曞叆1鏉″け鍗曞鎵嬪瀷鍙蜂俊鎭紒','error');
+ }else{
+ this.showToast('鑷冲皯褰曞叆1鏉″け鍗曞鎵嬪瀷鍙蜂俊鎭紒','error');
+ }
+
+ }
+ // 褰撳け鍗曞搧鐗屽悕涓哄叾浠栨椂,鎶ラ敊瀛楁涓哄け鍗曞鎵嬪瀷鍙凤紙鎵嬪姩锛� thh 2022-01-17 end
+ });
+ }
+ isBlank(str) {
+ return /^\s*$/.test(str);
+ }
}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.html b/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.html
index de0e5d5..cd541e0 100644
--- a/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.html
+++ b/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.html
@@ -4,7 +4,7 @@
* @Author: chen jing wu
* @Date: 2023-04-25 17:41:26
* @LastEditors: chen jing wu
- * @LastEditTime: 2023-04-25 17:45:57
+ * @LastEditTime: 2023-05-04 13:56:11
-->
<!-- Code by CafeForce || www.cafeforce.com || support@cafeforce.com || Mandatory Header -->
@@ -18,7 +18,7 @@
<div class="slds-combobox slds-dropdown-trigger slds-dropdown-trigger_click slds-is-open" aria-expanded="true" aria-haspopup="listbox" role="combobox">
<!-- Search Input -->
<div class="slds-combobox__form-element slds-input-has-icon slds-input-has-icon_right" role="none">
- <lightning-input disabled={disabled} class="inputBox" placeholder="Select an Option" onblur={blurEvent} onclick={showOptions} onkeyup={filterOptions} value={searchString} auto-complete="off" variant="label-hidden" id="combobox-id-1" ></lightning-input>
+ <lightning-input data-id="myinput" disabled={disabled} class="inputBox" placeholder="--鏃�--" onblur={blurEvent} onclick={showOptions} onkeyup={filterOptions} value={searchString} auto-complete="off" variant="label-hidden" id="combobox-id-1" required={isRequired}></lightning-input>
<lightning-icon class="slds-input__icon" icon-name="utility:down" size="x-small" alternative-text="search"></lightning-icon>
</div>
<!-- Dropdown List -->
diff --git a/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js b/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js
index 67085ff..2ee7314 100644
--- a/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js
+++ b/force-app/main/default/lwc/multiSelectCombobox/multiSelectCombobox.js
@@ -10,13 +10,14 @@
@api minChar = 2;
@api disabled = false;
@api multiSelect = false;
+ @api myValue;
+ @api required;
@track value;
@track values = [];
@track optionData;
@track searchString;
@track message;
@track showDropdown = false;
-
connectedCallback() {
this.showDropdown = false;
var optionData = this.options ? (JSON.parse(JSON.stringify(this.options))) : null;
@@ -45,6 +46,10 @@
this.value = value;
this.values = values;
this.optionData = optionData;
+ }
+
+ get isRequired() {
+ return this.required;
}
filterOptions(event) {
@@ -77,6 +82,7 @@
selectItem(event) {
var selectedVal = event.currentTarget.dataset.id;
+ this.myValue = selectedVal;
if(selectedVal) {
var count = 0;
var options = JSON.parse(JSON.stringify(this.optionData));
--
Gitblit v1.9.1