Skip to content
This repository was archived by the owner on Mar 30, 2019. It is now read-only.

Alguns refatoramentos #16

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions components/@mixins/MixinNavigationTabs.js

This file was deleted.

13 changes: 0 additions & 13 deletions components/@mixins/MixinNavigationWizard.js

This file was deleted.

7 changes: 6 additions & 1 deletion components/button/AppButton.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<template>
<q-btn :icon="inherit" v-bind="{color, round, outline, flat, small}" :class="{'raised': raised, 'rotate': rotate}"
<q-btn :icon="inherit" v-bind="{color, round, outline, flat, small, 'disabled': disable}"
:class="{'raised': raised, 'rotate': rotate}"
@click="$emit('click')">
<span v-if="label" v-html="label"></span>
<q-icon v-else :name="icon"></q-icon>
Expand All @@ -20,6 +21,10 @@
type: String,
default: () => ''
},
disable: {
type: Boolean,
default: () => false
},
permission: {
default: () => 0
},
Expand Down
8 changes: 2 additions & 6 deletions components/crud/Form.vue → components/crud/AppCrudForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,10 @@

<script type="text/javascript">
import AppForm from 'genesis/components/form/AppForm.vue'
import AppWizard from 'genesis/components/form/AppWizard.vue'
import AppFormWizard from 'genesis/components/form/AppFormWizard.vue'
import AppFormTabs from 'genesis/components/form/AppFormTabs.vue'
import AppButtonBar from 'genesis/components/button/AppButtonBar.vue'
import MixinNavigation from 'genesis/components/@mixins/MixinNavigation'
import MixinNavigationWizard from 'genesis/components/@mixins/MixinNavigationWizard'
import MixinNavigationTabs from 'genesis/components/@mixins/MixinNavigationTabs'
import { MixinComputed, MixinData, MixinMethods, MixinProps } from './model'
import { MixinForm } from './model/form'

Expand All @@ -54,13 +52,11 @@
MixinMethods,
MixinProps,
MixinNavigation,
MixinNavigationWizard,
MixinNavigationTabs,
MixinForm
],
name: 'app-crud-form',
components: {
AppForm, AppFormTabs, AppWizard, AppButtonBar
AppForm, AppFormTabs, AppFormWizard, AppButtonBar
}
}
export default AppCrudForm
Expand Down
12 changes: 8 additions & 4 deletions components/crud/Grid.vue → components/crud/AppCrudGrid.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@

<slot v-if="top" name="top">
<app-grid-toolbar
v-bind="{handler, direction, page, pages, limit, total, paginate, buttons: buttons.top, toolbar: toolbar.pagination.top}"
@change-page="changePage" @change-limit="changeLimit" :class='toolbar.pagination.top.className'/>
v-bind="{handler, direction, page, pages, limit, total, paginate, buttons: buttons.top,
toolbar: $g.get(toolbar, 'pagination.top')}"
@change-page="changePage" @change-limit="changeLimit"
:class='$g.get(toolbar, "pagination.top.className")'/>
</slot>
<hr v-if="top">

Expand All @@ -20,8 +22,10 @@

<slot v-if="bottom" name="bottom">
<app-grid-toolbar
v-bind="{handler, direction, page, pages, limit, total, paginate, buttons: buttons.bottom, toolbar: toolbar.pagination.bottom}"
@change-page="changePage" @change-limit="changeLimit" :class='toolbar.pagination.bottom.className'/>
v-bind="{handler, direction, page, pages, limit, total, paginate, buttons: buttons.bottom,
toolbar: $g.get(toolbar, 'toolbar.pagination.bottom')}"
@change-page="changePage" @change-limit="changeLimit"
:class='$g.get(toolbar, "pagination.bottom.className")'/>
</slot>

<slot name="footer"/>
Expand Down
10 changes: 5 additions & 5 deletions components/crud/components/grid/AppGridToolbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@
<template>
<div class="form app-grid-toolbar">
<template v-if="paginate">
<div v-if="toolbar.elementsPaginate.pagination.show"
:class="['field', toolbar.elementsPaginate.pagination.className ]"
<div v-if="$g.get(toolbar, 'elementsPaginate.pagination.show')"
:class="['field', $g.get(toolbar, 'elementsPaginate.pagination.className')]"
class="app-grid-pagination">
<q-pagination v-model="pagination" v-bind="{max}" @input="emitPagination(pagination)"/>
</div>
<div v-if="toolbar.elementsPaginate.select.show"
:class="['field', toolbar.elementsPaginate.select.className ]">
:class="['field', $g.get(toolbar, 'elementsPaginate.select.className')]">
<q-select v-model="select" v-bind="{options}" @input="emitSelect(select)"></q-select>
</div>
<div v-if="toolbar.elementsPaginate.info.show"
:class="['field', toolbar.elementsPaginate.info.className ]"
<div v-if="$g.get(toolbar, 'elementsPaginate.info.show')"
:class="['field', $g.get(toolbar, 'elementsPaginate.info.className')]"
class="app-grid-info">
<div v-if="counter.total">{{ counter.start }} - {{ counter.end }} de {{ counter.total }}</div>
<div v-else class="counter">Exibindo {{ counter.end }} registros</div>
Expand Down
6 changes: 6 additions & 0 deletions components/fields/abstract.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,12 @@ export default {
*/
classNames () {
const classNames = []
if (this.className.length) {
classNames.push(this.className)
}
if (this.inline) {
classNames.push('field-inline')
}
const width = 'field has-' + String(this.inline ? '100' : this.width)
classNames.push(width)
classNames.push(this.$options.name)
Expand Down
14 changes: 1 addition & 13 deletions components/form/AppForm.vue
Original file line number Diff line number Diff line change
@@ -1,18 +1,6 @@
<template>
<div class="app-form">

<div v-if="tabs.length" class="tabs">
<q-tabs v-model="tabSeletecd" inverted>
<q-tab v-for="tab in tabs" :key="tab.name" slot="title" v-bind="tab"/>
</q-tabs>
<div class="tab-content form" v-for="tab in tabs" v-show="tab.name === tabSeletecd">
<component v-for="schema in components[tab.name]" :key="schema.field" :is="schema.component"
v-bind="schema" v-model="record[schema.field]"
@input="formInput(schema.field, arguments)" @event="formEvent"></component>
</div>
</div>

<div v-else class="form">
<div class="form">
<component v-for="schema in schemas" :key="schema.field" :is="schema.component"
v-bind="schema" v-model="record[schema.field]"
@input="formInput(schema.field, arguments)" @event="formEvent"></component>
Expand Down
21 changes: 9 additions & 12 deletions components/form/AppFormTabs.vue
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
<template>
<div class="app-form">

<div class="tabs">
<q-tabs v-model="tabSeletecd" inverted>
<q-tab v-for="tab in tabs" :key="tab.name" slot="title" v-bind="tab"/>
</q-tabs>
<div class="tab-content form" v-for="tab in tabs" v-show="tab.name === tabSeletecd">
<component v-for="schema in components[tab.name]" :key="schema.field" :is="schema.component"
v-bind="schema" v-model="record[schema.field]"
@input="formInput(schema.field, arguments)" @event="formEvent"></component>
</div>
<div class="app-form-tabs">
<q-tabs v-model="tabSeletecd" inverted>
<q-tab v-for="tab in tabs" :key="tab.name" slot="title" v-bind="tab"/>
</q-tabs>
<div class="tab-content form" v-for="tab in tabs" v-show="tab.name === tabSeletecd">
<component v-for="schema in componentsForTabs[tab.name]" :key="schema.field" :is="schema.component"
v-bind="schema" v-model="record[schema.field]"
@input="formInput(schema.field, arguments)" @event="formEvent"></component>
</div>
</div>
</template>
Expand All @@ -18,7 +15,7 @@
import appForm from './AppForm'

export default {
name: 'app-tabs',
name: 'app-form-tabs',
extends: appForm,
created () {
this.tabSeletecd = this.tab
Expand Down
63 changes: 63 additions & 0 deletions components/form/AppFormWizard.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<template>
<div class="app-form-wizard">
<q-stepper v-model="currentStep" ref="stepper">
<q-step v-for="(step, index) in steps" :name="step.name" :order="index"
:key="step.name" :title="step.title" :subtitle="step.subtitle" :icon="step.icon">
<div class="form">
<component v-for="schema in componentsForWizard[step.name]" :key="schema.field" :is="schema.component"
v-bind="schema" v-model="record[schema.field]"
@input="formInput(schema.field, arguments)" @event="formEvent"></component>
</div>
<q-stepper-navigation v-if="$g.get(step, 'navigation.show')">
<q-btn v-bind="$g.get(step, 'navigation.props')"
:disable="$g.get(step, 'navigation.back') === ''"
@click="currentStep = $g.get(step, 'navigation.back')">Voltar</q-btn>
<q-btn v-bind="$g.get(step, 'navigation.props')"
:disable="$g.get(step, 'navigation.next') === ''"
@click="currentStep = step.navigation.next">Avançar</q-btn>
</q-stepper-navigation>
</q-step>
<!--<q-stepper-navigation>
<q-btn flat @click="$refs.stepper.previous()">Back</q-btn>
<q-btn @click="$refs.stepper.next()">Next</q-btn>
</q-stepper-navigation>-->
</q-stepper>
</div>
</template>

<script type="text/javascript">
import appForm from './AppForm'

export default {
name: 'app-form-wizard',
extends: appForm,
methods: {
nextStep () {
this.$refs.stepper.next()
},
previousStep () {
this.$refs.stepper.previous()
}
},
created () {
this.currentStep = this.step
if (!this.currentStep) {
this.currentStep = (Array.isArray(this.steps) && this.step[0]) ? this.step[0].name : ''
}
if (this.$route.query.step) {
this.currentStep = this.$route.query.step
}
}
}
</script>

<style lang="stylus" rel="stylesheet/stylus">
.q-stepper
box-shadow none
.q-stepper-header
box-shadow none
.q-stepper-step
.q-stepper-step-content
.q-stepper-step-inner
padding 10px 3px !important
</style>
50 changes: 0 additions & 50 deletions components/form/AppWizard.vue

This file was deleted.

3 changes: 2 additions & 1 deletion components/form/model/mixins/MixinData.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export default {
data: () => ({
components: {},
componentsForWizard: {},
componentsForTabs: {},
schemas: {},
record: {},
tabSeletecd: '',
Expand Down
12 changes: 8 additions & 4 deletions components/form/model/mixins/MixinMethods.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,18 +52,22 @@ export default {
/**
*/
updateComponents () {
const components = {}
const componentsForTabs = {}
if (this.tabs.length) {
this.tabs.forEach(tab => {
components[tab.name] = this.fields.filter(field => field.tab === tab.name).reduce(arrayToObject, {})
componentsForTabs[tab.name] = this.fields
.filter(field => field.tab === tab.name).reduce(arrayToObject, {})
})
}
const componentsForWizard = {}
if (this.steps.length) {
this.steps.forEach(step => {
components[step.name] = this.fields.filter(field => field.step === step.name).reduce(arrayToObject, {})
componentsForWizard[step.name] = this.fields
.filter(field => field.step === step.name).reduce(arrayToObject, {})
})
}
this.components = components
this.componentsForTabs = componentsForTabs
this.componentsForWizard = componentsForWizard
},
/**
*/
Expand Down
28 changes: 21 additions & 7 deletions infra/services/http/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,30 @@ import { loading } from 'genesis/support/message'

import configure from './configure'

/**
* @type {Object}
*/
const HEADERS = {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
}

/**
* @param {string} baseURL
* @param {Object} headers
* @return {AxiosInstance}
*/
export const create = (baseURL = '', headers = {}) => {
return axios.create({
baseURL: baseURL || URL_API,
headers: Object.assign({}, HEADERS, headers)
})
}

/**
* @type {Axios}
*/
export const http = axios.create({
baseURL: URL_API,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
export const http = create()

/**
* @returns {Axios}
Expand Down