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