<template>
|
|
<div class="study-syxx">
|
|
<div class="syxx-top" v-show="!showDetail" style="margin-bottom: 10px;">
|
|
<div class="syxx-operate">
|
|
<div class="operate-img"></div>
|
|
<div class="operate-left">{{ $t('page.business.study.studyFormPlan.syxx') }}</div>
|
|
</div>
|
|
<el-form ref="form" label-width="90px">
|
|
<el-row>
|
|
<el-col :span="6">
|
|
<el-form-item :label="$t('page.business.study.studyFormPlan.symc')">
|
|
{{ studyInfo.name }}
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="6">
|
|
<el-form-item :label="$t('page.business.study.studyFormPlan.sybh')">
|
|
{{ studyInfo.sn }}
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="6">
|
|
<el-form-item :label="$t('page.business.study.studyFormPlan.syfzr')">
|
|
{{ studyInfo.leaderName }}
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="6">
|
|
<el-form-item :label="$t('page.business.study.studyFormPlan.cjsj')">
|
|
{{ studyInfo.createTime }}
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
</div>
|
|
<div class="syxx-content">
|
|
<div class="search-box" v-show="!showDetail">
|
|
<div class="search-item" :class="active === item.key ? 'active' : ''" v-for="(item, index) in tabList"
|
|
:key="index" @click="changeTab(item)">
|
|
{{ item.name }}
|
|
</div>
|
|
</div>
|
|
<div class="content-box">
|
|
<gyzjList v-if="active === 'gyzjlb'" :study="studyInfo" @showDetail="showDetailCallback" />
|
|
<mjyList v-if="active === 'mjylb'" :study="studyInfo" @showDetail="showDetailCallback"/>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { checkPermi, checkRole } from "@/utils/permission";
|
|
import { study_info } from "@/api/business/study/study"
|
|
import gyzjList from './wzlb/gyzjList.vue'
|
|
import mjyList from './wzlb/mjyList.vue'
|
|
export default {
|
|
name: 'StudyWzlb',
|
|
props: {
|
|
study: {
|
|
type: Object,
|
|
default: () => {
|
|
return {}
|
|
}
|
|
}
|
|
},
|
|
watch: {
|
|
study: {
|
|
immediate: true,
|
|
handler(v) {
|
|
this.studyId = v.id
|
|
this.getStudyInfo()
|
|
}
|
|
},
|
|
},
|
|
components: {gyzjList,mjyList},
|
|
data() {
|
|
return {
|
|
showDetail: false,
|
|
studyId: '',
|
|
studyInfo: {},
|
|
tabList: [
|
|
{ key: 'sjlb', name: this.$t('page.business.study.studyEnter.sjlb') },
|
|
{ key: 'gsplb', name: this.$t('page.business.study.studyEnter.gsplb') },
|
|
{ key: 'gyzjlb', name: this.$t('page.business.study.studyEnter.gyzjlb') },
|
|
{ key: 'mjylb', name: this.$t('page.business.study.studyEnter.mjylb') },
|
|
{ key: 'xblb', name: this.$t('page.business.study.studyEnter.xblb') },
|
|
{ key: 'xjlb', name: this.$t('page.business.study.studyEnter.xjlb') }
|
|
],
|
|
active: 'sjlb',
|
|
}
|
|
},
|
|
created() {
|
|
},
|
|
methods: {
|
|
checkPermi,
|
|
checkRole,
|
|
getStudyInfo() {
|
|
this.$modal.loading()
|
|
study_info({ id: this.studyId }).then(response => {
|
|
this.studyInfo = response.data
|
|
this.$modal.closeLoading()
|
|
}).finally(() => {
|
|
this.$modal.closeLoading()
|
|
})
|
|
},
|
|
showDetailCallback(val) {
|
|
this.showDetail = val
|
|
this.$emit('showDetail', val)
|
|
},
|
|
changeTab(item) {
|
|
if (this.active !== item.key) {
|
|
this.active = item.key
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.study-syxx {
|
|
.search-box {
|
|
background: #fff;
|
|
padding: 0;
|
|
border-radius: 3px;
|
|
margin-bottom: 10px;
|
|
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
|
|
.search-item {
|
|
padding: 10px 20px;
|
|
font-size: 14px;
|
|
cursor: pointer;
|
|
|
|
&.active {
|
|
background: #1890ff;
|
|
color: #fff;
|
|
}
|
|
|
|
&:hover {
|
|
background: #46a6ff;
|
|
color: #fff;
|
|
}
|
|
|
|
&:first-child {
|
|
border-top-left-radius: 3px;
|
|
border-bottom-left-radius: 3px;
|
|
}
|
|
|
|
&:last-child {
|
|
border-top-right-radius: 3px;
|
|
border-bottom-right-radius: 3px;
|
|
}
|
|
}
|
|
}
|
|
.syxx-top {
|
|
background: #fff;
|
|
padding: 20px;
|
|
width: 100%;
|
|
|
|
.syxx-operate {
|
|
margin: 0px 0 10px 0;
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
color: #409eff;
|
|
|
|
.operate-img {
|
|
flex-shrink: 0;
|
|
height: 15px;
|
|
background: #409eff;
|
|
width: 3px;
|
|
}
|
|
|
|
.operate-left {
|
|
flex-shrink: 0;
|
|
font-weight: bold;
|
|
padding-left: 10px;
|
|
}
|
|
|
|
.operate-right {
|
|
flex-grow: 1;
|
|
text-align: right;
|
|
|
|
.operate-icon {
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.syxx-content {}
|
|
}
|
|
</style>
|