Преглед на файлове

Merge branch 'master' of http://git.cc-lotus.info/live/web-achieve

guhongwei преди 4 години
родител
ревизия
8756b960c6
променени са 3 файла, в които са добавени 144 реда и са изтрити 1 реда
  1. 1 1
      src/components/common/Sidebar.vue
  2. 6 0
      src/router/index.js
  3. 137 0
      src/views/expertCenter/score/index.vue

+ 1 - 1
src/components/common/Sidebar.vue

@@ -97,7 +97,7 @@ export default {
         list.push(...data);
         this.$set(this, `items`, _.uniqBy(list, 'index'));
       } else if (user.role === '3') {
-        let data = [{ icon: 'el-icon-thumb', index: 'adminScore', title: '专家评分' }];
+        let data = [{ icon: 'el-icon-thumb', index: 'expertScore', title: '专家评分' }];
         list.push(...data);
         this.$set(this, `items`, _.uniqBy(list, 'index'));
       } else {

+ 6 - 0
src/router/index.js

@@ -119,6 +119,12 @@ export default new Router({
           component: () => import('../views/userCenter/userScore/expertExam.vue'),
           meta: { title: '待专家评分' },
         },
+        // 专家评分页面
+        {
+          path: '/expertScore',
+          component: () => import('../views/expertCenter/score/index.vue'),
+          meta: { title: '专家审评' },
+        },
         // 评分审核未通过
         {
           path: '/noExpertScore',

+ 137 - 0
src/views/expertCenter/score/index.vue

@@ -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>