Magento 2 Kategori Ekle Ağaçla Çalıştır Giriş Düğmesi


13

Ben uicomponent formu kullanarak benim özel formu için kategori girişi yerleştirmek çalışıyorum.

resim açıklamasını buraya girin

Açılır liste oluşturabiliyorum, ancak düğmeyi nasıl oluşturabilir ve ondan yeni bir mod açabilirim?

Uicomponent kullanarak bir düğme oluşturabilir ve ondan bir modal açabilir miyim . Bir düğmeyi istediğiniz yerine ait yeni bir kategori eklemek istiyorum seçme ürünler düğme ve gösteri eklemek istediğiniz listeyi ürünlerin seçilen ızgara kategoriler.

İşte kategori girişi oluşturmak için xml

<field name="parent">
    <argument name="data" xsi:type="array">
    <item name="options" xsi:type="object">Magento\Catalog\Ui\Component\Product\Form\Categories\Options</item>
     <item name="config" xsi:type="array">
          <item name="label" xsi:type="string" translate="true">Parent Category</item>
          <item name="componentType" xsi:type="string">field</item>
          <item name="formElement" xsi:type="string">select</item>
          <item name="component" xsi:type="string">Magento_Catalog/js/components/new-category</item>
           <item name="elementTmpl" xsi:type="string">ui/grid/filters/elements/ui-select</item>
           <item name="dataScope" xsi:type="string">data.parent</item>
           <item name="filterOptions" xsi:type="boolean">true</item>
           <item name="showCheckbox" xsi:type="boolean">false</item>
           <item name="disableLabel" xsi:type="boolean">true</item>
           <item name="multiple" xsi:type="boolean">false</item>
           <item name="levelsVisibility" xsi:type="number">1</item>
           <item name="sortOrder" xsi:type="number">20</item>
           <item name="required" xsi:type="boolean">true</item>
           <item name="validation" xsi:type="array">
                  <item name="required-entry" xsi:type="boolean">true</item>
            </item>
            <item name="listens" xsi:type="array">
                  <item name="${ $.namespace }.${ $.namespace }:responseData" xsi:type="string">setParsed</item>
             </item>
      </item>
     </argument>
</field>

Orada ne olduğunu anlayana ve belki de bir cevap bulana kadar Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Categoriessınıfa bir göz atmanızı tavsiye edebilirim . Kategori ağacı seçiciyi ürün ekleme / düzenleme ekranına ekleyen öğedir. Belki orada ne olduğunu anlamak için daha fazla şansınız var.
Marius

@Marius Ya aynı şeye bakarak bunu yapmanın en iyi yolu görünüyor.
Priyank

Hey, değiştirici eklemek sadece ürün formu için kullanıldığını ve yaklaşık 3 gün boyunca baktıktan sonra özel model için eklemek çok zor olduğunu düşünüyorum. Ben sadece Geçersiz UI Bileşen öğesi adı
alıyorum

Seçilen seçenekler burada nasıl çalışır?
Amrit Pal Singh

Yanıtlar:


3

Aşağıdaki kod benimle çalışıyor:

     <container>
        <argument name="data" xsi:type="array">
            <item name="config" xsi:type="array">
            <item name="formElement" xsi:type="string">container</item>
            <item name="component" xsi:type="string">Magento_Ui/js/form/components/group</item>
        </item>
        </argument>
        <field name="category_ids">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="filterOptions" xsi:type="boolean">true</item>
                    <item name="chipsEnabled" xsi:type="boolean">true</item>
                    <item name="label" xsi:type="string">Categories</item>
                    <item name="disableLabel" xsi:type="boolean">true</item>
                    <item name="component" xsi:type="string">Magento_Catalog/js/components/new-category</item>
                    <item name="formElement" xsi:type="string">select</item>
                    <item name="levelsVisibility" xsi:type="number">1</item>
                    <item name="elementTmpl" xsi:type="string">ui/grid/filters/elements/ui-select</item>
                    <item name="options" xsi:type="array">
                            <item name="0" xsi:type="array">
                                <item name="value" xsi:type="number">1</item>
                                <item name="label" xsi:type="string" translate="true">Category 1</item>
                                <item name="optgroup" xsi:type="array">
                                    <item name="0" xsi:type="array">
                                        <item name="value" xsi:type="number">2</item>
                                        <item name="is_active" xsi:type="boolean">true</item>
                                        <item name="label" xsi:type="string" translate="true">Category 1.1</item>
                                    </item>
                                </item>
                            </item>
                            <item name="1" xsi:type="array">
                                <item name="value" xsi:type="number">2</item>
                                <item name="is_active" xsi:type="boolean">true</item>
                                <item name="label" xsi:type="string" translate="true">Category 2</item>
                            </item>
                    </item>
                   <item name="config" xsi:type="array">
                       <item name="dataScope" xsi:type="string">category_ids</item>
                   </item>
                </item>
            </argument>
        </field>
    </container>

Bu sonuç:

gösteri

Not: Öğe seçenekleriyle xsi:type="object"bunun için bir Sınıf değiştirmeli ve bildirmelisiniz.

Umarım faydalı oldu!


1
endişem ağacı nasıl yaratmam gerektiği değil. Benim sorum ekran görüntümde gösterildiği gibi açılır kutunun yanında bir düğme oluşturmak ve ondan bir modal açmak ve içindeki ürün ızgarasının listesini göstermektir.
Priyank

Buradaki seçili seçenekler nasıl elde edilir?
Amrit Pal Singh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.