66 schemaName === 'Item' &&
77 (!isSelectionMode || (isSelectionMode && selectedItems.length === 0))
88 "
9+ @click =" toggleSelectionMode"
910 >
1011 {{ t`Select` }}
1112 </Button >
12- <Select
13+ <div
1314 v-if ="
1415 isSelectionMode && schemaName === 'Item' && selectedItems.length > 0
1516 "
16- :df =" {
17- fieldtype: 'Select',
18- fieldname: 'Create ',
19- label: 'Create Invoice',
20- options: actionOptions,
21- }"
22- :value =" selectedAction"
23- class =" w-40"
24- @change =" onActionChange"
25- />
17+ class =" relative"
18+ >
19+ <Button class =" w-40" @click =" toggleDropdown" > Create Invoice </Button >
20+ <div
21+ v-if =" showDropdown"
22+ class ="
23+ absolute
24+ top-full
25+ mt-1
26+ bg-white
27+ border border-gray-300
28+ rounded
29+ shadow-lg
30+ z-10
31+ w-40
32+ "
33+ >
34+ <div
35+ v-for =" option in actionOptions"
36+ :key =" option.value"
37+ class =" px-4 py-2 hover:bg-gray-100 cursor-pointer text-sm"
38+ @click =" createInvoice(option.value)"
39+ >
40+ {{ option.label }}
41+ </div >
42+ </div >
43+ </div >
2644 <Button ref =" exportButton" :icon =" false" @click =" openExportModal = true" >
2745 {{ t`Export` }}
2846 </Button >
@@ -73,7 +91,7 @@ import ExportWizard from 'src/components/ExportWizard.vue';
7391import FilterDropdown from ' src/components/FilterDropdown.vue' ;
7492import Modal from ' src/components/Modal.vue' ;
7593import PageHeader from ' src/components/PageHeader.vue' ;
76- import Select from ' src/components/Controls/Select.vue ' ;
94+
7795import { fyo } from ' src/initFyo' ;
7896import { shortcutsKey } from ' src/utils/injectionKeys' ;
7997import {
@@ -97,7 +115,6 @@ export default defineComponent({
97115 FilterDropdown ,
98116 Modal ,
99117 ExportWizard ,
100- Select ,
101118 },
102119 props: {
103120 schemaName: { type: String , required: true },
@@ -119,14 +136,14 @@ export default defineComponent({
119136 openExportModal: false ,
120137 listFilters: {},
121138 isSelectionMode: false ,
122- selectedAction: ' ' ,
139+ showDropdown: false ,
123140 selectedItems: [] as string [],
124141 } as {
125142 listConfig: undefined | ReturnType <typeof getListConfig >;
126143 openExportModal: boolean ;
127144 listFilters: QueryFilter ;
128145 isSelectionMode: boolean ;
129- selectedAction : string ;
146+ showDropdown : boolean ;
130147 selectedItems: string [];
131148 };
132149 },
@@ -209,12 +226,14 @@ export default defineComponent({
209226 toggleSelectionMode() {
210227 this .isSelectionMode = ! this .isSelectionMode ;
211228 if (! this .isSelectionMode ) {
212- this .selectedAction = ' ' ;
229+ this .showDropdown = false ;
213230 this .selectedItems = [];
214231 }
215232 },
216- async onActionChange(value : string ) {
217- this .selectedAction = value ;
233+ toggleDropdown() {
234+ this .showDropdown = ! this .showDropdown ;
235+ },
236+ async createInvoice(value : string ) {
218237 if (
219238 value === ModelNameEnum .SalesInvoice ||
220239 value === ModelNameEnum .PurchaseInvoice
@@ -237,6 +256,7 @@ export default defineComponent({
237256 await routeTo (route );
238257 this .selectedItems = [];
239258 this .isSelectionMode = false ;
259+ this .showDropdown = false ;
240260 }
241261 },
242262
0 commit comments