Регистрация  |  Вход

Простой вопрос по автосохранении в таблице

Привет.
У меня есть таблица лидов с колонками NAME TITLE и PHONE. Мне нужно сделать инпуты для TITLE и PHONE чтобы прямо в них получать, сохранять и изменять инфу. Пользователь не должен использовать для сохранения кнопку. В инпутах одновременно надо и получать лиды из базы и изменять их с сохранением. Как можно это реализовать?

<template>
<lightning-card title="Leads">
<lightning-layout>
<lightning-layout-item>


<lightning-record-edit-form object-api-name="Lead">


<lightning-input-field field-name={Name}></lightning-input-field>
<lightning-input-field field-name={Title}></lightning-input-field>
<lightning-input-field field-name={Phone}></lightning-input-field>


<!-- <lightning-input-field field-name="Title"> </lightning-input-field>
<lightning-input-field field-name="Title"> </lightning-input-field> -->


</lightning-record-edit-form>

<!-- <lightning-layout-item size="12" padding="around-small">
<lightning-datatable key-field="id" data={leads} columns={columns}></lightning-datatable>
</lightning-layout-item> -->
</lightning-layout-item>
</lightning-layout>
</lightning-card>
</template>

import { LightningElement, wire} from 'lwc';
import getLeads from '@salesforce/apex/Qqq.getLeads';
import NAME_FIELD from '@salesforce/schema/Lead.Title';
import TITLE_FIELD from '@salesforce/schema/Lead.Title';
import PHONE_FIELD from '@salesforce/schema/Lead.Phone';

// const columns = [
// { label: 'Name', fieldName: 'recordLink', type: 'url',
// typeAttributes: {label: {fieldName: "LeadName"}, tooltip: "Name", linkify: true} },
// { label: 'Title', fieldName: 'Title', type: 'text', editable: true },
// { label: 'Phone', fieldName: 'Phone', type: 'text', editable: true }
// ];

export default class LeadTable extends LightningElement {

leadTitle = NAME_FIELD;
leadTitle = TITLE_FIELD;
leadPhone = PHONE_FIELD;

// columns = columns;
// leads;

@wire(getLeads)
wiredLeads(value) {
const {error, data} = value;
if (data) {
let leadData = JSON.parse(JSON.stringify(data));
leadData.forEach(record => {
record.recordLink = "/" + record.Id;
record.LeadName = record.Name;
});
this.leads = leadData;
} else if (error) {
this.error = error;
}
}
}

public with sharing class ProjectThree {
@AuraEnabled(cacheable=true)
public static List<Lead> getLeads() {
List<Lead> leads = [
SELECT Id, Name, Title, Phone
FROM Lead
WHERE Name Like 'Lisa%'
Limit 3
];
System.debug('leads = ' + leads);
return leads;
}
}
Привет.
У меня есть таблица лидов с колонками NAME TITLE и PHONE. Мне нужно сделать инпуты для TITLE и PHONE чтобы прямо в них получать, сохранять и изменять инфу. Пользователь не должен использовать для сохранения кнопку. В инпутах одновременно надо и получать лиды из базы и изменять их с сохранением. Как можно это реализовать?

<template>
    <lightning-card title="Leads">
        <lightning-layout>
            <lightning-layout-item>


            <lightning-record-edit-form object-api-name="Lead">


               <lightning-input-field field-name={Name}></lightning-input-field>
               <lightning-input-field field-name={Title}></lightning-input-field> 
               <lightning-input-field field-name={Phone}></lightning-input-field>


                <!-- <lightning-input-field field-name="Title"> </lightning-input-field>
                <lightning-input-field field-name="Title"> </lightning-input-field> -->
               

            </lightning-record-edit-form>
            
            <!-- <lightning-layout-item size="12" padding="around-small">
                <lightning-datatable key-field="id" data={leads} columns={columns}></lightning-datatable>
            </lightning-layout-item> -->
        </lightning-layout-item>
        </lightning-layout>
    </lightning-card>
</template>

import { LightningElement, wire} from 'lwc';
import getLeads from '@salesforce/apex/Qqq.getLeads';
import NAME_FIELD from '@salesforce/schema/Lead.Title';
import TITLE_FIELD from '@salesforce/schema/Lead.Title';
import PHONE_FIELD from '@salesforce/schema/Lead.Phone';

// const columns = [
//     { label: 'Name', fieldName: 'recordLink', type: 'url',
//         typeAttributes: {label: {fieldName: "LeadName"}, tooltip: "Name", linkify: true} },
//     { label: 'Title', fieldName: 'Title', type: 'text', editable: true },
//     { label: 'Phone', fieldName: 'Phone', type: 'text', editable: true }    
// ];

export default class LeadTable extends LightningElement {

    leadTitle = NAME_FIELD;
    leadTitle = TITLE_FIELD;
    leadPhone = PHONE_FIELD;

    // columns = columns;
    // leads;
   
    @wire(getLeads)
    wiredLeads(value) {
        const {error, data} = value;
        if (data) {
            let leadData = JSON.parse(JSON.stringify(data));  
            leadData.forEach(record => {
                record.recordLink = "/" + record.Id;  
                record.LeadName = record.Name;
            });  
            this.leads = leadData;
        } else if (error) {
            this.error = error;
        }
    }
}

public with sharing class ProjectThree {
    @AuraEnabled(cacheable=true)
    public static List<Lead> getLeads() {
        List<Lead> leads = [
            SELECT Id, Name, Title, Phone
            FROM Lead         
            WHERE Name Like 'Lisa%'
            Limit 3
        ];
        System.debug('leads = ' + leads);
        return leads;		        
    }   
}