|
@@ -0,0 +1,137 @@
|
|
|
+<template>
|
|
|
+ <div id="index">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24" class="main">
|
|
|
+ <el-col :span="24" class="down">
|
|
|
+ <el-tabs v-model="active" type="card">
|
|
|
+ <el-tab-pane label="(一)基本信息" name="first">
|
|
|
+ <basic :info="form.basic"></basic>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="(二)内容简介" name="second">
|
|
|
+ <brief :info="form.brief"></brief>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="(三)主研人员名单" name="third">
|
|
|
+ <research :list="form.research"></research>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="(四)评价委托方提供资料清单" name="fourth">
|
|
|
+ <detailed :linkInfo="form.datalist"></detailed>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="(五)资料审核提交" name="fiveth">
|
|
|
+ <el-col :span="24" class="fiveth">
|
|
|
+ <el-form :model="verify" :rules="rules" ref="form" label-width="100px">
|
|
|
+ <el-form-item label="审核评分" prop="score">
|
|
|
+ <el-input-number v-model="verify.score" :min="0" :max="10" label="请打分"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="审核建议" prop="content">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入审核建议"
|
|
|
+ v-model="verify.content"
|
|
|
+ maxlength="200"
|
|
|
+ :autosize="{ minRows: 4, maxRows: 6 }"
|
|
|
+ show-word-limit
|
|
|
+ >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-col :span="24" class="btn">
|
|
|
+ <el-button type="primary" size="mini" @click="onSubmit('form')">提交审核</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ </el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import basic from '@/views/adminCenter/adminExamine/parts/basic.vue';
|
|
|
+import brief from '@/views/adminCenter/adminExamine/parts/brief.vue';
|
|
|
+import research from '@/views/adminCenter/adminExamine/parts/research.vue';
|
|
|
+import detailed from '@/views/adminCenter/adminExamine/parts/detailed.vue';
|
|
|
+import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const { mapActions: achieveApply } = createNamespacedHelpers('achieveApply');
|
|
|
+const { mapActions: achieveExpert } = createNamespacedHelpers('achieveExpert');
|
|
|
+export default {
|
|
|
+ name: 'index',
|
|
|
+ props: {},
|
|
|
+ components: { basic, brief, research, detailed },
|
|
|
+ data: function() {
|
|
|
+ return {
|
|
|
+ active: 'first',
|
|
|
+ form: {
|
|
|
+ basic: {},
|
|
|
+ brief: {},
|
|
|
+ research: [],
|
|
|
+ datalist: {},
|
|
|
+ status: undefined,
|
|
|
+ },
|
|
|
+ verify: {},
|
|
|
+ rules: {
|
|
|
+ score: [{ required: true, message: '请输入审核评分', trigger: 'blur' }],
|
|
|
+ content: [{ required: true, message: '请输入审核意见', trigger: 'change' }],
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.search();
|
|
|
+ this.toGetExpert();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ ...achieveApply({ getApply: 'fetch' }),
|
|
|
+ ...achieveExpert(['fetch', 'update']),
|
|
|
+ async search() {
|
|
|
+ const res = await this.getApply(this.user.apply_id);
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, 'form', res.data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async toGetExpert() {
|
|
|
+ const res = await this.fetch(this.user._id);
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ const verify = _.get(res.data, 'verify', { score: 0 });
|
|
|
+ this.$set(this, 'verify', verify);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onSubmit(formName) {
|
|
|
+ this.$refs[formName].validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ this.toVerify();
|
|
|
+ } else {
|
|
|
+ console.log('error submit!!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ async toVerify() {
|
|
|
+ const verify = _.cloneDeep(this.verify);
|
|
|
+ const res = await this.update({ id: this.user.id, verify });
|
|
|
+ this.$checkRes(res, '审核成功', res.errmsg || '审核失败');
|
|
|
+ },
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState(['user', 'menuParams']),
|
|
|
+ pageTitle() {
|
|
|
+ return `${this.$route.meta.title}`;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ metaInfo() {
|
|
|
+ return { title: this.$route.meta.title };
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped>
|
|
|
+.main {
|
|
|
+ .down {
|
|
|
+ .fiveth {
|
|
|
+ padding: 0 20%;
|
|
|
+ .btn {
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|