华西海圻ELN前端工程
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

197 lines
5.0 KiB

<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-row>
<el-col :span="24">
<el-form-item :label="$t('page.business.study.studyFormPlan.syjj')">
{{ studyInfo.remark }}
</el-form-item>
</el-col>
<el-col>
<el-button type="primary" @click="sdsy" v-hasPermi="['business:study:sd']" v-if="(studyInfo.leader==id || checkRole(['TFM'])) && studyInfo.status!=5">{{ $t('page.business.study.studyFormPlan.sdsy') }}</el-button>
</el-col>
</el-row>
</el-form>
<div class="syxx-operate" style="margin-top: 10px;">
<div class="operate-img"></div>
<div class="operate-left">{{ $t('page.business.study.studyFormPlan.syxkxx') }}</div>
</div>
<div style="display: flex;">
<div style="margin-right: 30px;" v-for="(item, index) in subjectList" :key="index">
{{ item.deptName }}{{ item.leaderName }}
</div>
</div>
</div>
<div class="syxx-content">
<jhbdList :study="studyInfo" @showDetail="showDetailCallback" />
</div>
<Sign ref="syxxSignRef" @callback="doSign" />
</div>
</template>
<script>
import { checkPermi, checkRole } from "@/utils/permission";
import Sign from './sign.vue'
import jhbdList from './jhbdList.vue'
import { study_info,study_checkSd,study_sd } from "@/api/business/study/study"
import { studySubject_listByStudyId } from '@/api/business/study/studySubject'
import { mapGetters } from 'vuex'
export default {
name: 'StudyTbbd',
props: {
study: {
type: Object,
default: () => {
return {}
}
}
},
watch: {
study: {
immediate: true,
deep:true,
handler(v) {
this.studyId = v.id
this.getStudyInfo()
}
},
},
components: { jhbdList,Sign },
computed: {
...mapGetters([
'id'
]),
},
data() {
return {
showDetail: false,
studyId: '',
studyInfo:{},
subjectList: []
}
},
created() {
},
methods: {
checkPermi,
checkRole,
getstudySubject() {
studySubject_listByStudyId({ studyId: this.studyId }).then(response => {
this.subjectList = response.data;
}).finally(() => {
this.$modal.closeLoading()
})
},
getStudyInfo() {
this.$modal.loading()
study_info({ id: this.studyId }).then(response => {
this.studyInfo = response.data
this.getstudySubject()
}).finally(() => {
this.$modal.closeLoading()
})
},
sdsy() {
this.$modal.loading()
study_checkSd({
study:{id:this.studyId},
}).then(() => {
this.$refs.syxxSignRef.show(this.$t('page.business.study.study.sdsy'),'锁定试验')
}).finally(() => {
this.$modal.closeLoading()
})
},
doSign(val){
this.doSd(val)
},
doSd(sign){
this.$modal.loading()
study_sd({
study:{id:this.studyId},
sign:sign
}).then(() => {
this.$refs.syxxSignRef.cancel()
this.getStudyInfo()
}).finally(() => {
this.$modal.closeLoading()
})
},
showDetailCallback(val) {
this.showDetail = val
this.$emit('showDetail', val)
}
}
}
</script>
<style lang="scss" scoped>
.study-syxx {
.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>