Magento 2 모달 버튼으로 카테고리 트리 렌더러 입력 추가


13

uicomponent 양식을 사용하여 사용자 정의 양식의 카테고리 입력을 배치하려고합니다.

여기에 이미지 설명을 입력하십시오

드롭 다운을 만들 수 있지만 버튼을 만들고 새 모달을 열려면 어떻게해야합니까?

uicomponent를 사용하여 버튼 을 만들고 모달 수 있습니까? 내가 버튼을 원하는 대신새로운 카테고리 I 추가 할 제품 선택 버튼을 하고 쇼에 추가 할 목록 에서 제품을 선택 그리드의 종류.

카테고리 입력을 작성하기위한 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수업을 보도록 권유 할 수 있습니다 . 카테고리 트리 선택기를 제품 추가 / 편집 화면에 추가하는 것입니다. 어쩌면 당신은 거기에 무엇이 있는지 이해하는 데 더 운이 좋을 것입니다.
Marius

@Marius Ya 같은 것을 보는 것이 최선의 방법이라고 생각합니다.
Priyank

나는 수정자를 추가하는 것이 제품 형태에만 사용되며 약 3 일 동안 커스텀 모델을 추가하는 것이 매우 어렵다고 생각합니다. 난 그냥 잘못된 UI 구성 요소 이름을 얻을 : 'category_mapping_form'
Priyank

선택한 옵션은 어떻게 작동합니까?
Amrit Pal Singh

답변:


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
내 관심사는 내가 어떻게 나무를 만들어야 하는가가 아니다. 내 질문은 스크린 샷과 같이 드롭 다운 옆에 버튼을 만들고 모달을 열고 제품 목록을 표시하는 것입니다.
Priyank

이에 서 선택한 옵션을 얻는 방법은 무엇입니까?
Amrit Pal Singh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.