guhongwei 4 years ago
parent
commit
4890aebca5

+ 8 - 1
src/views/adminCenter/adminCate/dataInfo.vue

@@ -90,7 +90,11 @@ export default {
     },
     // 返回
     back() {
-      this.$router.push({ path: '/adminCate' });
+      if (this.type == '5') {
+        this.$router.push({ path: '/adminCate' });
+      } else if (this.type == '6') {
+        this.$router.push({ path: '/adminHaveCert' });
+      }
     },
   },
   computed: {
@@ -98,6 +102,9 @@ export default {
     id() {
       return this.$route.query.id;
     },
+    type() {
+      return this.$route.query.type;
+    },
   },
   metaInfo() {
     return { title: this.$route.meta.title };

+ 2 - 2
src/views/adminCenter/adminCate/index.vue

@@ -3,7 +3,7 @@
     <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" @file="toFile" @load="toLoad" @ @cert="toCert"></data-table>
+          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @file="toFile" @load="toLoad" @cert="toCert"></data-table>
         </el-col>
       </el-col>
     </el-row>
@@ -149,7 +149,7 @@ export default {
     },
     // 资料预览
     toLoad({ data }) {
-      this.$router.push({ path: '/adminCate/dataInfo', query: { id: data.id } });
+      this.$router.push({ path: '/adminCate/dataInfo', query: { id: data.id, type: '5' } });
     },
   },
   computed: {

+ 2 - 2
src/views/adminCenter/adminCate/infoParts/thr.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="main">
         <el-col :span="24" class="top" id="demo">
           <el-col :span="24" class="title">
-            二.研究(或开发,转化,实施,建设)内容和技术(或创新点)
+            七.评价专家组名单
           </el-col>
           <el-col :span="24" class="info">
-            {{ form.brief.field }}
+            信息
           </el-col>
         </el-col>
       </el-col>

+ 9 - 1
src/views/adminCenter/adminHaveCert/index.vue

@@ -3,7 +3,7 @@
     <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" @cert="toCert"></data-table>
+          <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @cert="toCert" @load="toLoad"></data-table>
         </el-col>
       </el-col>
     </el-row>
@@ -27,6 +27,10 @@ export default {
   data: function() {
     return {
       opera: [
+        {
+          label: '资料查看',
+          method: 'load',
+        },
         {
           label: '证书查看',
           method: 'cert',
@@ -59,6 +63,10 @@ export default {
     toCert({ data }) {
       this.$router.push({ path: '/userCommon/certDetail', query: { id: data.id } });
     },
+    // 资料预览
+    toLoad({ data }) {
+      this.$router.push({ path: '/adminCate/dataInfo', query: { id: data.id, type: '6' } });
+    },
   },
   computed: {
     ...mapState(['user']),

+ 78 - 0
src/views/adminCenter/adminMeet/file copy.vue

@@ -0,0 +1,78 @@
+<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">
+      <el-col :span="24" class="info">
+        <page5></page5>
+        <!-- <page6></page6> -->
+        <!-- <page5></page5>
+        <expertList :list="expertList"></expertList> -->
+      </el-col>
+    </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: { page5 },
+  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>

+ 84 - 33
src/views/adminCenter/adminMeet/file.vue

@@ -1,24 +1,34 @@
 <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 :span="24" class="main">
+        <el-col :span="24" class="top">
+          <el-button type="primary" size="mini" @click="download">PDF下载</el-button>
+          <el-button type="primary" size="mini" @click="back">返回</el-button>
+        </el-col>
+        <el-col :span="24" class="down">
+          <div id="demo">
+            <el-col :span="24" class="common one">
+              <one></one>
+            </el-col>
+            <el-col :span="24" class="common two">
+              <two :form="form"></two>
+            </el-col>
+            <el-col :span="24" class="common thr">
+              <thr :list="expertList"></thr>
+            </el-col>
+          </div>
+        </el-col>
       </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 one from './file/one.vue';
+import two from './file/two.vue';
+import thr from './file/thr.vue';
 import htmlToPdf from '@/unit/htmlToPdf.js';
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: achieveApply } = createNamespacedHelpers('achieveApply');
@@ -26,42 +36,43 @@ const { mapActions: achieveApplyExpert } = createNamespacedHelpers('achieveApply
 export default {
   name: 'file',
   props: {},
-  components: { expertList, page5, page6 },
+  components: { one, two, thr },
   data: function() {
     return {
-      info: {},
+      form: { basic: {} },
       expertList: [],
     };
   },
-  created() {
-    this.init();
+  async created() {
+    await this.search();
   },
   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);
+    async search() {
+      if (this.id) {
+        let res = await this.fetch(this.id);
+        if (this.$checkRes(res)) {
+          this.$set(this, 'form', res.data);
+        }
+        const experts = await this.query({ apply_id: this.form.id, type: '2', expert: true });
+        if (this.$checkRes(experts)) {
+          this.$set(this, `expertList`, experts.data);
+          console.log(this.expertList);
+        }
       }
     },
-    // 证书下载
-    handleDown() {
-      htmlToPdf.downloadPDF(document.querySelector('#demo'), this.info.basic.achieve_name);
+    // PDF下载
+    download() {
+      htmlToPdf.downloadPDF(document.querySelector('#demo'), '测试');
     },
-    getProp(prop) {
-      return _.get(this.info, prop);
+    // 返回
+    back() {
+      this.$router.push({ path: '/adminMeet' });
     },
   },
   computed: {
-    ...mapState(['user', 'menuParams']),
-    pageTitle() {
-      return `${this.$route.meta.title}`;
-    },
+    ...mapState(['user']),
     id() {
       return this.$route.query.id;
     },
@@ -69,7 +80,47 @@ export default {
   metaInfo() {
     return { title: this.$route.meta.title };
   },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.main {
+  .top {
+    text-align: center;
+    margin: 0 0 15px 0;
+  }
+  .down {
+    padding: 0 20%;
+    #demo {
+      width: 100%;
+      height: 4167px;
+      border: 1px solid #ff0000;
+      .one {
+        height: 1389px;
+        padding: 50px 30px;
+      }
+      .two {
+        height: 1387px;
+        padding: 50px 30px;
+      }
+      .thr {
+        height: 1390px;
+        padding: 60px 30px;
+      }
+    }
+  }
+}
+.common {
+  width: 100%;
+  height: 1388px;
+  border-bottom: 1px solid #666666;
+  padding: 40px 20px;
+}
+</style>

+ 88 - 0
src/views/adminCenter/adminMeet/file/one.vue

@@ -0,0 +1,88 @@
+<template>
+  <div id="one">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="top">
+          <el-col :span="24" class="title">
+            五.现场测试(检测,测产)意见
+          </el-col>
+          <el-col :span="24" class="info">
+            <el-col :span="24" class="sign">
+              <p>测试组长签字:</p>
+              <p>评价专家组长签字:</p>
+              <p><span>年</span><span>月</span><span>日</span></p>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="downText">
+            (加盖吉林省科技成果评价专用章有效)
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'one',
+  props: {
+    form: { type: Object },
+  },
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {},
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .top {
+    height: 1290px;
+    .title {
+      font-size: 20px;
+      font-family: monospace;
+      margin: 0 0 10px 0;
+      color: #000;
+      font-weight: bold;
+      padding: 0 0 0 20px;
+    }
+    .info {
+      height: 1220px;
+      border: 2px solid #000;
+      position: relative;
+      .sign {
+        position: absolute;
+        bottom: 0;
+        height: 250px;
+        p {
+          padding: 15px 40%;
+        }
+        p:last-child {
+          padding: 30px 25%;
+          text-align: right;
+          span {
+            padding: 0 20px;
+          }
+        }
+      }
+    }
+    .downText {
+      height: 40px;
+      line-height: 30px;
+      text-align: right;
+      padding: 0 100px;
+    }
+  }
+}
+</style>

+ 120 - 0
src/views/adminCenter/adminMeet/file/thr.vue

@@ -0,0 +1,120 @@
+<template>
+  <div id="one">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="top">
+          <el-col :span="24" class="title">
+            七.评价专家组名单
+          </el-col>
+          <el-col :span="24" class="info">
+            <el-col :span="24" class="table">
+              <el-table :data="dataList" border style="width: 100%">
+                <el-table-column type="index" label="序号" width="50" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="expert_id.group_zw" label="评价专家组职务" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="expert_id.expert_name" label="姓名" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="expert_id.company" label="工作单位" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="expert_id.major" label="所学专业" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="expert_id.now_major" label="现从事专业" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="expert_id.zw" label="职务" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="expert_id.zc" label="职称" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="expert_id." label="签名" align="center" show-overflow-tooltip> </el-table-column>
+              </el-table>
+            </el-col>
+            <el-col :span="24" class="downText">
+              (加盖吉林省科技成果评价专用章有效)
+            </el-col>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'one',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {
+    getProp(data, prop) {
+      return _.get(data, prop);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    dataList() {
+      let dup = _.cloneDeep(_.get(this, 'list', []));
+      while (dup.length < 10) {
+        dup.push({});
+      }
+      return dup;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {},
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .top {
+    height: 1290px;
+    .title {
+      font-size: 20px;
+      font-family: monospace;
+      margin: 0 0 10px 0;
+      color: #000;
+      font-weight: bold;
+      padding: 0 0 0 20px;
+    }
+    .info {
+      height: 1260px;
+      border: 2px solid #000;
+      position: relative;
+      .table {
+        /deep/.el-table--border th {
+          border-right: 1px solid #000;
+        }
+        /deep/.el-table thead {
+          color: #000;
+        }
+        /deep/.el-table .cell {
+          color: #000;
+        }
+        /deep/.el-table--border,
+        .el-table--group {
+          border: 1px solid #000;
+        }
+        /deep/.el-table td,
+        .el-table th.is-leaf {
+          border-bottom: 1px solid #000;
+        }
+        /deep/.el-table td,
+        .el-table th.is-leaf,
+        .el-table--border,
+        .el-table--group {
+          border-color: #000000;
+        }
+        /deep/.el-table__header {
+          border-bottom: 1px solid #000;
+        }
+      }
+      .downText {
+        height: 40px;
+        line-height: 30px;
+        text-align: right;
+        padding: 0 100px;
+      }
+    }
+  }
+}
+</style>

+ 118 - 0
src/views/adminCenter/adminMeet/file/two.vue

@@ -0,0 +1,118 @@
+<template>
+  <div id="one">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="top">
+          <el-col :span="24" class="title">
+            六.评价意见
+          </el-col>
+          <el-col :span="24" class="info">
+            <el-col :span="24" class="message">
+              <p>
+                <span>{{ getDate('yyyy') }}</span
+                >年<span>{{ getDate('MM') }}</span
+                >月<span>{{ getDate('DD') }}</span
+                >日,吉林省发明协会组织专家对<span>{{ form.basic.apply_company }}</span
+                >单位(<span>{{ form.basic.apply_personal }}</span
+                >申请人)完成的科技成果《<span>{{ form.basic.achieve_name }}</span
+                >》进行评价。专家组听取了申请单位(申请人)所做的技术总结报告,审查了提供的相关资料,(进行了现场测试,现场考察),经质疑和讨论,形成如下评价意见:
+              </p>
+            </el-col>
+            <el-col :span="24" class="sign">
+              <p>测试组长签字:</p>
+              <p>评价专家组长签字:</p>
+              <p><span>年</span><span>月</span><span>日</span></p>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="downText">
+            (加盖吉林省科技成果评价专用章有效)
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+const moment = require('moment');
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'one',
+  props: {
+    form: { type: Object },
+  },
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {
+    getDate(date) {
+      if (date == 'yyyy') {
+        return moment().format('YYYY');
+      } else if (date == 'MM') {
+        return moment().format('MM');
+      } else if (date == 'DD') {
+        return moment().format('DD');
+      }
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {},
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .top {
+    height: 1290px;
+    .title {
+      font-size: 20px;
+      font-family: monospace;
+      margin: 0 0 10px 0;
+      color: #000;
+      font-weight: bold;
+      padding: 0 0 0 20px;
+    }
+    .info {
+      height: 1220px;
+      border: 2px solid #000;
+      position: relative;
+      .message {
+        padding: 10px;
+        p {
+          font-size: 20px;
+          line-height: 40px;
+          text-indent: 2rem;
+        }
+      }
+      .sign {
+        position: absolute;
+        bottom: 0;
+        height: 250px;
+        p {
+          padding: 15px 40%;
+        }
+        p:last-child {
+          padding: 30px 25%;
+          text-align: right;
+          span {
+            padding: 0 20px;
+          }
+        }
+      }
+    }
+    .downText {
+      height: 40px;
+      line-height: 30px;
+      text-align: right;
+      padding: 0 100px;
+    }
+  }
+}
+</style>