83 lines
2.2 KiB
Vue
83 lines
2.2 KiB
Vue
<template>
|
|
<section class="matters-config">
|
|
<ai-list v-if="!showDetail">
|
|
<template #title>
|
|
<ai-title title="事项配置" :isShowBottomBorder="false"></ai-title>
|
|
</template>
|
|
<template slot="tabs">
|
|
<el-tabs class="tabs-page" v-model="currIndex">
|
|
<el-tab-pane v-for="(tab,i) in tabs" :key="i" :label="tab.label" :name="String(i)">
|
|
<component :is="tab.comp" v-if="currIndex==i" :ref="currIndex" :instance="instance" :dict="dict"
|
|
:permissions="permissions" @goPage="goPage" :tab="currentTab"/>
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
</template>
|
|
</ai-list>
|
|
<component v-else :is="currentComp" :instance="instance" :dict="dict"
|
|
:processType="currentTab.value" :row="row"></component>
|
|
|
|
</section>
|
|
</template>
|
|
|
|
<script>
|
|
import addConfig from './components/addConfig'
|
|
import configList from "./components/configList";
|
|
import guidance from "./components/guidance";
|
|
|
|
export default {
|
|
name: "AppMattersConfig",
|
|
label: '事项配置',
|
|
components: {addConfig,guidance},
|
|
props: {
|
|
instance: Function,
|
|
dict: Object,
|
|
permissions: Function
|
|
},
|
|
data() {
|
|
return {
|
|
currIndex: "0",
|
|
row: {},
|
|
currentComp: "",
|
|
}
|
|
},
|
|
computed: {
|
|
tabs() {
|
|
return [
|
|
{label: "网上办事", name: "configList", value: "0", comp: configList, detail: addConfig, permission: ""},
|
|
{label: "办事指南", name: "configList", value: "2", comp: configList, detail: guidance, permission: ""},
|
|
]
|
|
},
|
|
currentTab() {
|
|
return this.tabs?.[this.currIndex] || {}
|
|
},
|
|
showDetail() {
|
|
return !!this.$route.query?.id || !!this.$route.query?.processType
|
|
}
|
|
},
|
|
methods: {
|
|
goPage(params) {
|
|
this.row = params.row
|
|
this.currentComp = params.comp
|
|
this.$router.push({query: {processType: this.currentTab.value}})
|
|
}
|
|
},
|
|
created() {
|
|
this.$router.push({query: {}});
|
|
this.$dict.load("hbDepartment", 'sex', 'nation', 'marital', 'native_place', 'education', 'candidateApproverType', 'scopeCandidates', 'nodeType')
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.matters-config {
|
|
height: 100%;
|
|
background: #f3f6f9;
|
|
overflow: auto;
|
|
|
|
.iconfont {
|
|
user-select: none;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
</style>
|