Ich habe eine Dropdown-Liste, die den Status des Tages anzeigt: entweder schließen oder öffnen, auswählbar aus einer Dropdown-Liste. Wenn der Status ist nah , mag ich die offenen und Schließzeitpunkte innerhalb dieses bestimmten Feldsatzes kollabieren und verstecken.
Hier ist mein Code:
<fieldset name="monday_timings">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="collapsible" xsi:type="boolean">true</item>
<item name="label" xsi:type="string" translate="true">Monday Timings</item>
<item name="sortOrder" xsi:type="number">501</item>
</item>
</argument>
<field name="monday_status">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">NameSpace\ModuleName\Model\Timetable\Source\IsSpecial</item>
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Monday Status</item>
<item name="visible" xsi:type="boolean">true</item>
<item name="dataType" xsi:type="string">number</item>
<item name="formElement" xsi:type="string">select</item>
<item name="source" xsi:type="string">item</item>
<item name="dataScope" xsi:type="string">monday_status</item>
<item name="sortOrder" xsi:type="number">19</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="monday_open_time">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">Timepicker</item>
<item name="label" xsi:type="string" translate="true">Start Time</item>
<item name="formElement" xsi:type="string">date</item>
<item name="source" xsi:type="string">date</item>
<item name="sortOrder" xsi:type="number">101</item>
<item name="dataScope" xsi:type="string">monday_open_time</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
<item name="options" xsi:type="array">
<item name="dateFormat" xsi:type="string">yyyy-MM-dd</item>
<item name="timeFormat" xsi:type="string">hh:mm:ss</item>
<item name="showsTime" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="monday_close_time">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">Timepicker</item>
<item name="label" xsi:type="string" translate="true">End Time</item>
<item name="formElement" xsi:type="string">date</item>
<item name="source" xsi:type="string">date</item>
<item name="sortOrder" xsi:type="number">105</item>
<item name="dataScope" xsi:type="string">monday_close_time</item>
<item name="validation" xsi:type="array">
<item name="required-entry" xsi:type="boolean">true</item>
</item>
<item name="options" xsi:type="array">
<item name="dateFormat" xsi:type="string">yyyy-MM-dd</item>
<item name="timeFormat" xsi:type="string">hh:mm:ss</item>
<item name="showsTime" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="monday_break_time">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">Timepicker</item>
<item name="label" xsi:type="string" translate="true">Break Time</item>
<item name="formElement" xsi:type="string">date</item>
<item name="source" xsi:type="string">date</item>
<item name="sortOrder" xsi:type="number">103</item>
<item name="dataScope" xsi:type="string">monday_break_time</item>
<item name="options" xsi:type="array">
<item name="dateFormat" xsi:type="string">yyyy-MM-dd</item>
<item name="timeFormat" xsi:type="string">hh:mm:ss</item>
<item name="showsTime" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
<field name="monday_offbreak_time">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">Timepicker</item>
<item name="label" xsi:type="string" translate="true">End Break</item>
<item name="formElement" xsi:type="string">date</item>
<item name="source" xsi:type="string">date</item>
<item name="sortOrder" xsi:type="number">104</item>
<item name="dataScope" xsi:type="string">monday_offbreak_time</item>
<item name="options" xsi:type="array">
<item name="dateFormat" xsi:type="string">yyyy-MM-dd</item>
<item name="timeFormat" xsi:type="string">hh:mm:ss</item>
<item name="showsTime" xsi:type="boolean">true</item>
</item>
</item>
</argument>
</field>
</fieldset>
Wie kann dies erreicht werden, wäre jede Hilfe dankbar. Vielen Dank im Voraus für jede Hilfe.
Es ist auch in der UI-Komponente mit dem möglich
<switcherConfig>
. Sie können das Magento-Verkaufsregelmodul aus der UI-Komponentendatei referenzieren. Ich hatte die gleiche Anforderung und habe dies mithilfe des folgenden Codes getan.Hier
<target>
ist deinform_datacomponent_name.section_name.field_name
.quelle
$fieldset->addField()
(in meinem Block stattdessen)?Sie müssen keine zusätzlichen Standard-UI-Komponenten ausführen, um diese Funktionalität zu erhalten.
Sie müssen nur
field
Ihr Formular zuweisennamespace
, das war's!.quelle
Es funktioniert fast super. Das einzige Problem ist, dass beim Bearbeiten von Elementen keine erwarteten Felder angezeigt werden, da das Skript zu früh ausgeführt wird.
setTimeout behebt das Problem:
quelle
Ich habe Himanshus Antwort ausprobiert, aber es hat bei mir nicht funktioniert, aber diese hat funktioniert:
Hoffe das hilft jedem!
quelle