Ver Fonte

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

guhongwei há 4 anos atrás
pai
commit
49210de4bf

+ 5 - 0
src/router/index.js

@@ -59,6 +59,11 @@ export default new Router({
           component: () => import('../views/adminCenter/adminMeet/detail.vue'),
           meta: { title: '专家会审记录' },
         },
+        {
+          path: '/adminMeet/file',
+          component: () => import('../views/adminCenter/adminMeet/file.vue'),
+          meta: { title: '会审文件确认' },
+        },
         {
           path: '/adminMeet/expert',
           component: () => import('../views/adminCenter/adminMeet/expert.vue'),

+ 75 - 0
src/views/adminCenter/adminMeet/file.vue

@@ -0,0 +1,75 @@
+<template>
+  <div id="file">
+    <el-button type="primary" @click="handleDown">pdf</el-button>
+    <el-row>
+      <el-col :span="24" style="text-align:center;font-size:32px;margin-bottom:30px;">
+        {{ getProp('basic.achieve_name') }}
+      </el-col>
+    </el-row>
+    <div id="demo">
+      <page6></page6>
+      <page5></page5>
+      <expertList :list="expertList"></expertList>
+    </div>
+  </div>
+</template>
+
+<script>
+const _ = require('lodash');
+import page5 from '@common/template/page5.vue';
+import page6 from '@common/template/page6.vue';
+import expertList from '@common/template/expertList.vue';
+import htmlToPdf from '@/unit/htmlToPdf.js';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: achieveApply } = createNamespacedHelpers('achieveApply');
+const { mapActions: achieveApplyExpert } = createNamespacedHelpers('achieveApplyExpert');
+export default {
+  name: 'file',
+  props: {},
+  components: { expertList, page5, page6 },
+  data: function() {
+    return {
+      info: {},
+      expertList: [],
+    };
+  },
+  created() {
+    this.init();
+  },
+  methods: {
+    ...achieveApply(['fetch']),
+    ...achieveApplyExpert(['query']),
+    async init() {
+      const apply = await this.fetch(this.id);
+      if (this.$checkRes(apply)) {
+        this.$set(this, `info`, apply.data);
+      }
+      const experts = await this.query({ apply_id: this.info.id, type: '2', expert: true });
+      if (this.$checkRes(experts)) {
+        this.$set(this, `expertList`, experts.data);
+      }
+    },
+    // 证书下载
+    handleDown() {
+      htmlToPdf.downloadPDF(document.querySelector('#demo'), this.info.basic.achieve_name);
+    },
+    getProp(prop) {
+      return _.get(this.info, prop);
+    },
+  },
+  computed: {
+    ...mapState(['user', 'menuParams']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+    id() {
+      return this.$route.query.id;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped></style>

+ 18 - 12
src/views/adminCenter/adminMeet/index.vue

@@ -3,21 +3,20 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-col :span="24" class="down">
-          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @change="toChange" @view="toView" @edit="toEdit"></data-table>
+          <data-table
+            :fields="fields"
+            :opera="opera"
+            :data="list"
+            :total="total"
+            @query="search"
+            @change="toChange"
+            @view="toView"
+            @edit="toEdit"
+            @doc="toDoc"
+          ></data-table>
         </el-col>
       </el-col>
     </el-row>
-    <!-- <el-dialog title="选择会审专家" width="40%" :visible.sync="dialog" @closed="handleClose" :destroy-on-close="true">
-      <data-form :data="form" :fields="formfields" :rules="rules" @save="toSave">
-        <template #custom="{item,form}">
-          <template v-if="item.model == 'expert'">
-            <el-select v-model="form.expert" filterable multiple collapse-tags placeholder="请选择">
-              <el-option v-for="(i, index) in expertList" :key="index" :label="i.name" :value="i.id"></el-option>
-            </el-select>
-          </template>
-        </template>
-      </data-form>
-    </el-dialog> -->
     <el-dialog title="会审总结" width="40%" :visible.sync="sumDialog" @closed="handleClose" :destroy-on-close="true">
       <data-form :data="sumForm" :fields="sumfields" :rules="{}" @save="sumSave">
         <template #radios="{item}">
@@ -63,6 +62,10 @@ export default {
           label: '会审总结',
           method: 'edit',
         },
+        {
+          label: '会审文件下载',
+          method: 'doc',
+        },
       ],
       fields: [
         { label: '成果编号', prop: 'basic.achieve_num', filter: 'input', showTip: true },
@@ -144,6 +147,9 @@ export default {
         this.handleClose();
       }
     },
+    toDoc({ data }) {
+      this.$router.push({ path: '/adminMeet/file', query: { id: data.id } });
+    },
   },
   computed: {
     ...mapState(['user']),