Magento 2 मोडल बटन के साथ श्रेणी ट्री रेंडरर इनपुट जोड़ें


13

मैं अपने कस्टम फॉर्म के लिए श्रेणी के इनपुट को uicomponent फॉर्म का उपयोग करने की कोशिश कर रहा हूं।

यहाँ छवि विवरण दर्ज करें

मैं ड्रॉपडाउन बनाने में सक्षम हूं लेकिन मैं बटन कैसे बना सकता हूं और इससे एक नया मोडल खोल सकता हूं?

क्या मैं uicomponent का उपयोग करके एक बटन बना सकता हूं और इससे एक मोडल खोल सकता हूं । मुझे नई श्रेणी के बजाय एक बटन चाहिए , मैं चुनिंदा उत्पादों का बटन जोड़ना चाहता हूं और ग्रिड में चयनित श्रेणियों से उत्पादों की सूची दिखाना चाहता हूं ।

यहाँ श्रेणी इनपुट बनाने के लिए 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>

जब तक मैं समझ सकता हूं कि वहां क्या है और शायद एक जवाब के साथ आता है, तो मैं आपको Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Categoriesकक्षा पर एक नज़र डालने की सलाह दे सकता हूं । यह वह है जो श्रेणी के पेड़ चयनकर्ता को उत्पाद जोड़ / संपादित स्क्रीन में जोड़ता है। हो सकता है कि आपकी समझ में अधिक भाग्य हो।
मारियस

@ मारी ये वही चीज़ देखती है जो इसे करने का सबसे अच्छा तरीका है।
प्रियांक

अरे मुझे लगता है कि मॉडिफ़ायर जोड़ना केवल उत्पाद रूप के लिए उपयोग किया जाता है और इसे कस्टम मॉडल के लिए जोड़ने में बहुत मुश्किल है लगभग 3 दिनों के लिए इसे देखने के बाद मैं पागल हो गया हूं। मुझे बस अमान्य UI घटक तत्व नाम मिलता है: 'category_mapping_form'
प्रियांक

चयनित विकल्प यहां कैसे काम कर रहे हैं?
अमृत ​​पाल सिंह

जवाबों:


3

मेरे साथ काम करने वाला यह कोड नीचे:

     <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>

यह परिणाम है:

डेमो

ध्यान दें: आइटम विकल्पों के साथ आपको xsi:type="object"इसके लिए एक वर्ग बदलना और घोषित करना चाहिए ।

मुझे आशा है कि यह मददगार था!


1
मेरी चिंता यह नहीं है कि मैं पेड़ कैसे बनाऊं। मेरा प्रश्न मेरे स्क्रीन शॉट में दिखाए गए ड्रॉप डाउन के बगल में एक बटन बनाने और उसमें से एक मोडल खोलने और उसमें उत्पादों की ग्रिड की सूची दिखाने के लिए है।
प्रियांक

इसमें चयनित विकल्प कैसे प्राप्त करें?
अमृत ​​पाल सिंह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.