A sample project modlue is available with the script.
Here is sample code for listing projects:
<template>
<ListItem
:init-url="initUrl"
@setItems="setItems"
>
<ParentTransition appear :visibility="true">
<DataTable
:header="projects.headers"
:meta="projects.meta"
module="project"
>
<DataRow v-for="project in projects.data" :key="project.uuid">
<DataCell name="title">
{{ project.title }}
</DataCell>
<DataCell name="action">
<DropdownMenu>
<DropdownItem icon="fas fa-arrow-circle-right" @click="router.push({name: 'ProjectShow', params: {uuid: project.uuid}})">Show</DropdownItem>
</DropdownMenu>
</DataCell>
</DataRow>
</DataTable>
</ParentTransition>
</ListItem>
</template>
<script>
export default {
name: 'ProjectList'
}
</script>
<script setup>
import { reactive } from "vue"
import { useRouter } from "vue-router"
const router = useRouter()
const initUrl = "project/"
const projects = reactive({
data: []
})
const setItems = (data) => {
Object.assign(projects, data)
}
</script>
Here is a sample code for project form:
<template>
<FormAction
:init-url="initUrl"
:init-form="initForm"
:form="form"
redirect="Project"
>
<div class="grid grid-cols-2 gap-6">
<div class="col-span-2">
<BaseInput
type="text"
v-model="form.title"
name="title"
:label="Title"
v-model:error="formErrors.title"
/>
</div>
</div>
</FormAction>
</template>
<script>
export default {
name: 'ProjectForm'
}
</script>
<script setup>
import { reactive } from "vue";
import { getFormErrors } from "@core/helpers/action"
const initForm = {
title: "",
};
const initUrl = "project/"
const formErrors = getFormErrors(initUrl)
const form = reactive({ ...initForm });
</script>
To create a media upload button, use following code:
<MediaUpload
multiple
label="Upload File"
module="project"
:media="form.media"
@setHash="hash => form.mediaHash = hash"
@setToken="token => form.mediaToken = token"
/>
Subscribe & get latest updates from ScriptMint