168 lines
4.9 KiB
Plaintext
168 lines
4.9 KiB
Plaintext
<template>
|
|
<a-tabs v-model="tabActive"
|
|
:type="element.options.type ? 'card' : 'line'"
|
|
:tab-position="element.options.tabPosition"
|
|
:class="{
|
|
[element.options.customClass]: element.options.customClass?true: false
|
|
}"
|
|
style="margin-bottom: 18px;"
|
|
v-if="display[element.model]"
|
|
>
|
|
<a-tab-pane
|
|
:key="item.name"
|
|
:tab="item.label"
|
|
:name="item.name"
|
|
v-for="item in element.tabs"
|
|
>
|
|
<template v-for="tab in item.list">
|
|
<generate-col-item
|
|
v-if="tab.type == 'grid'"
|
|
:key="tab.key"
|
|
:model="dataModels"
|
|
:rules="rules"
|
|
:element="tab"
|
|
:remote="remote"
|
|
:blanks="blanks"
|
|
:display="display"
|
|
:edit="edit"
|
|
:remote-option="remoteOption"
|
|
:platform="platform"
|
|
:preview="preview"
|
|
:container-key="containerKey"
|
|
:data-source-value="dataSourceValue"
|
|
:event-function="eventFunction"
|
|
:print-read="printRead"
|
|
>
|
|
<template v-slot:[blank.name]="scope" v-for="blank in blanks">
|
|
<slot :name="blank.name" :model="scope.model"></slot>
|
|
</template>
|
|
</generate-col-item>
|
|
|
|
<generate-report
|
|
v-else-if="tab.type == 'report'"
|
|
:key="tab.key"
|
|
:model="dataModels"
|
|
:rules="rules"
|
|
:element="tab"
|
|
:remote="remote"
|
|
:blanks="blanks"
|
|
:display="display"
|
|
:edit="edit"
|
|
:remote-option="remoteOption"
|
|
:platform="platform"
|
|
:preview="preview"
|
|
:container-key="containerKey"
|
|
:data-source-value="dataSourceValue"
|
|
:event-function="eventFunction"
|
|
:print-read="printRead"
|
|
>
|
|
<template v-slot:[blank.name]="scope" v-for="blank in blanks">
|
|
<slot :name="blank.name" :model="scope.model"></slot>
|
|
</template>
|
|
</generate-report>
|
|
|
|
<generate-inline
|
|
v-else-if="tab.type == 'inline'"
|
|
:key="tab.key"
|
|
:model="dataModels"
|
|
:rules="rules"
|
|
:element="tab"
|
|
:remote="remote"
|
|
:blanks="blanks"
|
|
:display="display"
|
|
:edit="edit"
|
|
:remote-option="remoteOption"
|
|
:platform="platform"
|
|
:preview="preview"
|
|
:container-key="containerKey"
|
|
:data-source-value="dataSourceValue"
|
|
:event-function="eventFunction"
|
|
:print-read="printRead"
|
|
>
|
|
<template v-slot:[blank.name]="scope" v-for="blank in blanks">
|
|
<slot :name="blank.name" :model="scope.model"></slot>
|
|
</template>
|
|
</generate-inline>
|
|
|
|
<generate-tab-item
|
|
v-else-if="tab.type == 'tabs'"
|
|
:key="tab.key"
|
|
:model="dataModels"
|
|
:rules="rules"
|
|
:element="tab"
|
|
:remote="remote"
|
|
:blanks="blanks"
|
|
:display="display"
|
|
:edit="edit"
|
|
:remote-option="remoteOption"
|
|
:platform="platform"
|
|
:preview="preview"
|
|
:container-key="containerKey"
|
|
:data-source-value="dataSourceValue"
|
|
:event-function="eventFunction"
|
|
:print-read="printRead"
|
|
>
|
|
<template v-slot:[blank.name]="scope" v-for="blank in blanks">
|
|
<slot :name="blank.name" :model="scope.model"></slot>
|
|
</template>
|
|
</generate-tab-item>
|
|
|
|
<generate-form-item
|
|
v-else
|
|
:key="tab.key"
|
|
:models="dataModels"
|
|
:rules="rules"
|
|
:widget="tab"
|
|
:remote="remote"
|
|
:blanks="blanks"
|
|
:display="display"
|
|
:edit="edit"
|
|
:remote-option="remoteOption"
|
|
:platform="platform"
|
|
:preview="preview"
|
|
:container-key="containerKey"
|
|
:data-source-value="dataSourceValue"
|
|
:event-function="eventFunction"
|
|
:print-read="printRead"
|
|
>
|
|
<template v-slot:[blank.name]="scope" v-for="blank in blanks">
|
|
<slot :name="blank.name" :model="scope.model"></slot>
|
|
</template>
|
|
</generate-form-item>
|
|
</template>
|
|
</a-tab-pane>
|
|
</a-tabs>
|
|
</template>
|
|
|
|
<script>
|
|
import GenerateFormItem from './GenerateFormItem'
|
|
import GenerateInline from './GenereteInline'
|
|
|
|
export default {
|
|
name: 'generate-tab-item',
|
|
components: {
|
|
GenerateFormItem,
|
|
GenerateInline,
|
|
GenerateColItem : () => import('./GenerateColItem.vue'),
|
|
GenerateReport: () => import('./GenerateReport.vue')
|
|
},
|
|
props: ['element', 'model', 'rules', 'remote', 'blanks', 'display', 'edit', 'remoteOption', 'platform', 'preview', 'containerKey', 'dataSourceValue', 'eventFunction', 'printRead'],
|
|
data () {
|
|
return {
|
|
dataModels: this.model,
|
|
tabActive: this.element.tabs.length ? this.element.tabs[0].name : '',
|
|
}
|
|
},
|
|
methods: {
|
|
},
|
|
watch: {
|
|
model: {
|
|
deep: true,
|
|
handler (val) {
|
|
this.dataModels = this.model
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|