Installation

Basic Installation

Steps to be followed for getting started with the template:

There are followings basics packages you should install before going further.

  1. Open terminal or CMD and go the root directory of the template
  2. Run in terminal or CMD: npm install
  3. To Run project on Local environment run: npm run serve
  4. Then visit: http://localhost:8080

Development to production

Here is the steps of production:

  1. If you can deploy in subdirectory first you can copy and rename the following file .env.example to .env and set the production path by VUE_BASE_URL="" this key
  2. To Deploy project on server create production build by running: npm run build
  3. This will generate /dist folder in project root directory you'll have to upload these file using a FTP on your server
  4. Now that you have followed these steps your basic installation is complete and ready to flaunt your site to the world.

Folder Structure

Here is the general structure of the template:


findash-vue
| - public
   | - img
     - favicon.ico
     - index.html

| - src
  | - assets
    | - css
    | - fonts
    | - images
    | - js
    | - scss

    | - components
        | - findash

    | - config
        | - findash

    | - FackApi
        | - findash

    | - layouts
        | - AuthLayouts
            | - AuthLayouts1.vue
            | - DarkAuthLayouts1.vue
          - BlankLayout.vue
          - DarkBlankLayout.vue
          - Layout1.vue
          - DarkLayout1.vue

    | - plugins
        | - bootstrap-vue.js
        | - copy-clipboard.js
        | - datatable.js
        | - flatpicker.js
        | - global.js
        | - index.js
        | - validator.js
        | - vue-grid.js
        | - vue-select.js
    | - router
    | - store
    | - views
      - App.vue
      - main.js
      - registerServiceWorker.js
  - .browserslistrc
  - .editorconfig
  - .eslintrc.js
  - .eslintignore.js
  - .gitignore
  - babel.config.js
  - .env.example
  - package.json
  - README.md
  - vue.config.js
                                

FinDash custom components structure

Here is the general structure of the FinDash custom components:


<!-- FinDash components -->

| - components
    | - findash
        | - breadcrumbs
            - BreadCrumb.vue
        | - cards
            | - iq-card.vue
        | - chart
            | - AmChart.vue
            | - ApexChart.vue
            | - HighChart.vue
            | - MapAmChart.vue
            | - MorrisChart.vue
        | - footer
            | - FooterStyle1.vue
        | - lottie
            | - Lottie.vue
        | - loader
            | - Loader.vue
        | - menus
            | - ListStyle1.vue
        | - navbars
            | - NavBarStyle1.vue
        | - NotFound
            | - NoResults.vue
        | - rightsidebar
            | - RightSideBarStyle1.vue
        | - sidebar
            | - SideBarStyle1.vue
        | - slider
            | - Slick.vue
        | - search
            | - GlobalSearch.vue
        | - tab
            | - tab-nav.vue
            | - tab-nav-item.vue
            | - tab-content.vue
            | - tab-content-item.vue
        | - timeline
            | - TimeLine.vue
        | - treeview
            | - TreeView.vue
                                

For Favicon icon

Set favicon for replace favicon.ico and restart server

For Logo

Go to layout folder and change logo in layout1.vue src -> layouts -> layout1.vue . Replace "logo.png" with your own logo image URL.


| - findash-vue
    | - layouts
        | - Layout1.vue

<SideBarStyle1 :items="verticalMenu" :horizontal="horizontal" @toggle="sidebarMini" />
<!-- TOP Nav Bar -->
<NavBarStyle1 title="Dashboard" :homeURL="{ name: 'dashboard1.home' }" :logo="logo"/>
<script>
  import SideBarItems from '../FackApi/json/SideBar'
  import logoImg from '../assets/images/logo.png'
    data () {
        return {
          sidebar: SideBarItems,
          userProfile: profile,
          logo: logoImg
        }
      }
</script>

Layout Configure

Here is the layout and routing configure


 | - layouts
   | - AuthLayouts
     | - AuthLayouts1.vue
     | - DarkAuthLayouts1.vue
    - BlankLayout.vue
    - DarkBlankLayout.vue
    - Layout1.vue
    - DarkLayout1.vue
| - router
    | - index.js
                                

Router url configure


// Set Layout in this route
const routes = [
  {
    path: '/pages',
    name: 'pages',
    component: Default,
    children: pagesChildRoutes('default')
  }
]

// Set View in this function
const pagesChildRoutes = (prop) => [
  {
    path: 'maintenance',
    name: prop + '.maintenance',
    component: Maintenance
  }
]
                                

Sidebar & Header

Here is the sidebar object example just you can copy and past and rename then title and icon.


[
    {
    "title": "Profile",
    "name": "Profile",
    "is_heading": false,
    "is_active": false,
    "link": {
        "name": "profile.profile"
    },
    "class_name": "",
    "is_icon_class": true,
    "icon": "las la-user"
    }
]
                                

Sidebar based on json and check the file in spacific path ./src/FackApi/json/SideBar.json and import or add your array to sidebar key.


<SideBarStyle1 :items="sidebar" :logo="logo" />

<NavBarStyle1 title="Dashboard" :homeURL="{ name: 'dashboard1.home' }" :logo="logo">
    <template v-slot:right>
        add your items
    </template>
</NavBarStyle1>

 <FooterStyle1>
  <template v-slot:left>
    <li class="list-inline-item"><a href="#">Privacy Policy</a></li>
    <li class="list-inline-item"><a href="#">Terms of Use</a></li>
  </template>
  <template v-slot:right>
    Copyright 2020 <a href="#">FinDash</a> All Rights Reserved.
  </template>
</FooterStyle1>
                                        

import SideBarItems from '../FackApi/json/SideBar'

data () {
    return {
      sidebar: SideBarItems
    }
}
                                        

Custom Components

Custom Card

We have build different types of custom card components. And these are the some prop and slots


<iq-card body-class="border text-center" class="bg-primary text-white">
 <template v-slot:headerTitle>
      <h4>Card Title</h4>
  </template>
  <template v-slot:body>
    <p >lorium ipsum</b-button>
  </template>
  <template v-slot:footer>
    <b-button variant="danger">Button</b-button>
  </template>
</iq-card>
                                    

Prop

Prop is set the attriblute for the component.

Name Detail
headerClass Class added in card header div
bodyClass Class added in card body div
footerClass Class added in card footer div

Slots

Slot is set of the content between opening and closing tag.

Name Detail
headerTitle For card top left icon or title
headerAction For card top right icon or title
body For card body to add with padding
default For without padding added content

Am Chart


    <AmChart :element="item.type" :type="item.type" :option="item.bodyData"/>
                                        
Prop

Prop is set the attriblute for the component.

Name Type Detail
element String element is identify the unique div element like id
type String Difftrent type of chart set by type
option Object Chart data and setting by option object
Types

Types of Am Chart

  1. Map

Tab

We have build custom tab components. And these are the some prop and slots

 
<tab-nav :tabs="true" id="myTab-1">
  <tab-nav-items :active="true" id="home-tab" ariaControls="home" role="tab" :ariaSelected="true" title="Home" />
  <tab-nav-items :active="false" id="profile-tab" ariaControls="profile" role="tab" :ariaSelected="false" title="Profile" />
  <tab-nav-items :active="false" id="contact-tab" ariaControls="contact" role="tab" :ariaSelected="false" title="Contact" />
</tab-nav>
<tab-content id="myTabContent">
  <tab-content-item :active="true" id="home" aria-labelled-by="home-tab">
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>
  </tab-content-item>
  <tab-content-item :active="false" id="profile" aria-labelled-by="profile-tab">
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>
  </tab-content-item>
  <tab-content-item :active="false" id="contact" aria-labelled-by="contact-tab">
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.</p>
  </tab-content-item>
</tab-content>
                                            

Tab Nav

Prop

Prop is set the attriblute for the component.

Name Type Detail
id String -
pills Boolean pills is style of nav tab and pass the boolean value
tabs Boolean tabs is style of nav tab and pass the boolean value
vertical Boolean vertical is list style of nav tab and pass the boolean value
align String align nav tabs right, left and center
Events

Events is any functionality want any change of tab

Name Detail
change on tab change call this event

Tab Item

Prop

Prop is set the attriblute for the component.

Name Type Detail
id String identify the tab content for navigate
active Boolean CSS class (or classes) to apply to the currently active tab
ariaControls String The aria-controls attribute creates a cause and effect relationship
ariaSelected Boolean This attribute is used with single-selection and multiple-selection widgets
dataToggle String The toggle tells Bootstrap what to do and the target tells
href String Set navigation link
title String Pass Title as a string or set html content via slot
liClass String -
Slots

Slot is set of the content between opening and closing tag.

Name Detail
title For tab nav item content any html content or image by using slot

Tab Content

Prop

Prop is set the attriblute for the component.

Name Type Detail
id String id for identify the tab content to nav tab

Tab Content Item

Prop

Prop is set the attriblute for the component.

Name Type Detail
id String identify the tab content for navigate
active Boolean CSS class (or classes) to apply to the currently active tab
ariaLabelledBy String Identifies the element (or elements) that labels the current element.

TimeLine

We have build timeline components. And these are the some prop


timelineItems: [
    {
      color: 'danger',
      title: 'Dev Meetup',
      right: '20 November 2019',
      description: 'Bonbon macaroon jelly <a href="">beans gummi</a> bears jelly lollipop apple',
      child: {
        type: 'img',
        items: [
          require('../../assets/images/user/05.jpg'),
          require('../../assets/images/user/06.jpg'),
          require('../../assets/images/user/07.jpg'),
          require('../../assets/images/user/08.jpg'),
          require('../../assets/images/user/09.jpg'),
          require('../../assets/images/user/10.jpg')
        ]
      }
    }
  ]

<TimeLine :items="timelineItems" />
                                            

Prop

Prop is set the attriblute for the component.

Name Type Detail
items Array Pass Array of Object to create time line

Silder

We have build timeline components. And these are the some prop and slots


<Slick>
  <div>
    <a href="javascript:void(0)" class="iq-booking-date">
      <div class="iq-booking-dot"></div>
        <h3>Slider Item</h3>
    </a>
  </div>
</Slick>
                                            

Prop

Prop is set the attriblute for the component.

Name Type Detail
sliderOption Object this prop has pass the slider setting object

Slots

Slot is set of the content between opening and closing tag.

Name Detail
default Pass slider item in default slot

Lottie

We have build lottie components. And these are the some prop


<lottie :option="require('../../assets/images/small/data')"></lottie>
                                            

Prop

Prop is set the attriblute for the component.

Name Type Detail
option Object Option pass the lottie animation json file to execute the svg image.

Bootstrap Components

Bootstrap has wonderfull documentation on the following components::

Vue Bootstrap for extra component https://bootstrap-vue.org/docs/components

Browser Support

Supports all major Browsers like Google Chrome, Mozilla Firefox, Safari, Opera, Internet Explorer 9 and above.

Change Log

Version 1.0

- Initial Release

Source & Credits

All images and videos are for preview purposes only and are not included in the download files. Images are of copyrights under Creative Commons CC0.


Images



Plugins



CSS & Fonts