2
0
mirror of https://github.com/frappe/books.git synced 2025-01-25 08:08:37 +00:00
books/src/pages/GetStarted.vue
2019-12-23 18:21:04 +05:30

199 lines
5.5 KiB
Vue

<template>
<div class="flex flex-col overflow-y-hidden">
<PageHeader>
<h1 slot="title" class="text-2xl font-bold">
{{ _('Setup your workspace') }}
</h1>
</PageHeader>
<div class="px-8">
<div class="mt-4 border-t"></div>
</div>
<div class="px-8 flex-1 overflow-y-auto">
<div class="my-6" v-for="section in sections" :key="section.label">
<h2 class="font-medium">{{ section.label }}</h2>
<div class="mt-4 flex -mx-2">
<div
class="w-1/3 px-2"
v-for="item in section.items"
:key="item.label"
>
<div
class="flex flex-col justify-between border rounded-lg p-6 h-full hover:shadow-md cursor-pointer"
@mouseenter="() => (item.showActions = true)"
@mouseleave="() => (item.showActions = false)"
>
<div>
<component
v-show="!item.showActions"
:is="getIconComponent(item.icon)"
class="mb-4"
/>
<h3 class="font-medium">{{ item.label }}</h3>
<p class="mt-2 text-sm text-gray-800">
{{ item.description }}
</p>
</div>
<div class="mt-2 flex" v-show="item.showActions">
<Button class="leading-tight" type="primary">
<span class="text-white text-base">
{{ _('Setup') }}
</span>
</Button>
<Button class="ml-4 leading-tight">
<span class="text-base">
{{ _('Documentation') }}
</span>
</Button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import PageHeader from '@/components/PageHeader';
import Icon from '@/components/Icon';
import Button from '@/components/Button';
export default {
name: 'GetStarted',
components: {
PageHeader,
Button
},
data() {
return {
sections: [
{
label: 'Organisation',
items: [
{
label: 'General',
icon: 'general',
description:
'Setup your company information, email, country and fiscal year',
showActions: false
},
{
label: 'System',
icon: 'general',
description:
'Setup system defaults like date format and currency precision',
showActions: false
},
{
label: 'Invoice',
icon: 'invoice',
description:
'Customize your invoices by adding a logo and company address',
showActions: false
}
]
},
{
label: 'Accounts',
items: [
{
label: 'Review Accounts',
icon: 'review-ac',
description:
'Review your chart of accounts, add any account or tax heads as needed',
showActions: false
},
{
label: 'Opening Balances',
icon: 'opening-ac',
description:
'Setup your opening balances before performing any accounting entries',
showActions: false
},
{
label: 'Add Taxes',
icon: 'percentage',
description:
'Setup your tax templates for your sales or purchase transactions',
showActions: false
}
]
},
{
label: 'Sales',
items: [
{
label: 'Add Items',
icon: 'item',
description:
'Add products or services that you sell to your customers',
showActions: false
},
{
label: 'Add Customers',
icon: 'customer',
description: 'Add a few customers to create your first invoice',
showActions: false
},
{
label: 'Create Invoice',
icon: 'sales-invoice',
description:
'Create your first invoice and mail it to your customer',
showActions: false
}
]
},
{
label: 'Purchase',
items: [
{
label: 'Add Items',
icon: 'item',
description:
'Add products or services that you buy from your suppliers',
showActions: false
},
{
label: 'Add Suppliers',
icon: 'supplier',
description: 'Add a few suppliers to create your first bill',
showActions: false
},
{
label: 'Create Bill',
icon: 'purchase-invoice',
description:
'Create your first bill and mail it to your supplier',
showActions: false
}
]
}
]
};
},
methods: {
getIconComponent(name) {
return {
name,
render(h) {
return h(Icon, {
props: Object.assign(
{
name,
size: '18'
},
this.$attrs
)
});
}
};
}
}
};
</script>