fix: removed typescript for now
This commit is contained in:
parent
2cd47e6631
commit
6d867d2d75
@ -185,12 +185,11 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup>
|
||||||
import GridRowFieldsModal from '@/components/Controls/GridRowFieldsModal.vue'
|
import GridRowFieldsModal from '@/components/Controls/GridRowFieldsModal.vue'
|
||||||
import GridRowModal from '@/components/Controls/GridRowModal.vue'
|
import GridRowModal from '@/components/Controls/GridRowModal.vue'
|
||||||
import EditIcon from '@/components/Icons/EditIcon.vue'
|
import EditIcon from '@/components/Icons/EditIcon.vue'
|
||||||
import Link from '@/components/Controls/Link.vue'
|
import Link from '@/components/Controls/Link.vue'
|
||||||
import { GridRow } from '@/types/controls'
|
|
||||||
import { getRandom, getFormat } from '@/utils'
|
import { getRandom, getFormat } from '@/utils'
|
||||||
import { getMeta } from '@/stores/meta'
|
import { getMeta } from '@/stores/meta'
|
||||||
import {
|
import {
|
||||||
@ -203,19 +202,22 @@ import {
|
|||||||
import Draggable from 'vuedraggable'
|
import Draggable from 'vuedraggable'
|
||||||
import { ref, reactive, computed, PropType } from 'vue'
|
import { ref, reactive, computed, PropType } from 'vue'
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps({
|
||||||
label?: string
|
label: {
|
||||||
doctype: string
|
type: String,
|
||||||
}>()
|
default: '',
|
||||||
|
},
|
||||||
|
doctype: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
const { getGridSettings, getFields } = getMeta(props.doctype)
|
const { getGridSettings, getFields } = getMeta(props.doctype)
|
||||||
|
|
||||||
const rows = defineModel({
|
const rows = defineModel()
|
||||||
type: Array as PropType<GridRow[]>,
|
|
||||||
default: () => [],
|
|
||||||
})
|
|
||||||
const showRowList = ref(new Array(rows.value.length).fill(false))
|
const showRowList = ref(new Array(rows.value.length).fill(false))
|
||||||
const selectedRows = reactive(new Set<string>())
|
const selectedRows = reactive(new Set())
|
||||||
|
|
||||||
const showGridRowFieldsModal = ref(false)
|
const showGridRowFieldsModal = ref(false)
|
||||||
|
|
||||||
@ -258,15 +260,15 @@ const allRowsSelected = computed(() => {
|
|||||||
|
|
||||||
const showDeleteBtn = computed(() => selectedRows.size > 0)
|
const showDeleteBtn = computed(() => selectedRows.size > 0)
|
||||||
|
|
||||||
const toggleSelectAllRows = (iSelected: boolean) => {
|
const toggleSelectAllRows = (iSelected) => {
|
||||||
if (iSelected) {
|
if (iSelected) {
|
||||||
rows.value.forEach((row: GridRow) => selectedRows.add(row.name))
|
rows.value.forEach((row) => selectedRows.add(row.name))
|
||||||
} else {
|
} else {
|
||||||
selectedRows.clear()
|
selectedRows.clear()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const toggleSelectRow = (row: GridRow) => {
|
const toggleSelectRow = (row) => {
|
||||||
if (selectedRows.has(row.name)) {
|
if (selectedRows.has(row.name)) {
|
||||||
selectedRows.delete(row.name)
|
selectedRows.delete(row.name)
|
||||||
} else {
|
} else {
|
||||||
@ -275,7 +277,7 @@ const toggleSelectRow = (row: GridRow) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const addRow = () => {
|
const addRow = () => {
|
||||||
const newRow = {} as GridRow
|
const newRow = {}
|
||||||
fields.value?.forEach((field) => {
|
fields.value?.forEach((field) => {
|
||||||
if (field.type === 'Check') newRow[field.name] = false
|
if (field.type === 'Check') newRow[field.name] = false
|
||||||
else newRow[field.name] = ''
|
else newRow[field.name] = ''
|
||||||
|
|||||||
@ -1,49 +0,0 @@
|
|||||||
export type FieldTypes =
|
|
||||||
| 'Data'
|
|
||||||
| 'Int'
|
|
||||||
| 'Float'
|
|
||||||
| 'Currency'
|
|
||||||
| 'Check'
|
|
||||||
| 'Text'
|
|
||||||
| 'Small Text'
|
|
||||||
| 'Long Text'
|
|
||||||
| 'Code'
|
|
||||||
| 'Text Editor'
|
|
||||||
| 'Date'
|
|
||||||
| 'Datetime'
|
|
||||||
| 'Time'
|
|
||||||
| 'HTML'
|
|
||||||
| 'Image'
|
|
||||||
| 'Attach'
|
|
||||||
| 'Select'
|
|
||||||
| 'Read Only'
|
|
||||||
| 'Section Break'
|
|
||||||
| 'Column Break'
|
|
||||||
| 'Table'
|
|
||||||
| 'Button'
|
|
||||||
| 'Link'
|
|
||||||
| 'Dynamic Link'
|
|
||||||
| 'Password'
|
|
||||||
| 'Signature'
|
|
||||||
| 'Color'
|
|
||||||
| 'Barcode'
|
|
||||||
| 'Geolocation'
|
|
||||||
| 'Duration'
|
|
||||||
| 'Percent'
|
|
||||||
| 'Rating'
|
|
||||||
| 'Icon'
|
|
||||||
|
|
||||||
// Grid / Child Table
|
|
||||||
export interface GridColumn {
|
|
||||||
label: string
|
|
||||||
fieldname: string
|
|
||||||
fieldtype: FieldTypes
|
|
||||||
options?: string | string[]
|
|
||||||
width?: number
|
|
||||||
onChange?: (value: string, index: number) => void
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface GridRow {
|
|
||||||
name: string
|
|
||||||
[fieldname: string]: string | number | boolean
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user