/* * @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()}); } }