Files
scrq-hd/.svn/pristine/fb/fb2f9f9a0c8cf5ff1a568dec1899f3590ea443df.svn-base
2025-07-03 10:34:04 +08:00

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>