guhongwei 4 年之前
父节点
当前提交
d08b8bb247
共有 3 个文件被更改,包括 384 次插入26 次删除
  1. 322 0
      src/views/service/index copy.vue
  2. 28 25
      src/views/service/index.vue
  3. 34 1
      src/views/service/parts/info.vue

+ 322 - 0
src/views/service/index copy.vue

@@ -0,0 +1,322 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="main">
+        <div class="w_1200">
+          <el-col :span="24" class="one">
+            <el-col :span="6" class="list" v-for="(item, index) in list" :key="index" @click.native="link(item)">
+              <el-col :span="24" class="name">
+                <i class="iconfont" :class="item.icon"></i>
+                <p>{{ item.name }}</p>
+              </el-col>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="common">
+            <el-col :span="24" class="common_1">
+              <!-- <top topText="科技项目评审" :userMore="false"></top> -->
+              <list type="1" :list="oneList" @detail="detail"></list>
+            </el-col>
+            <el-col :span="24" class="common_1">
+              <!-- <top topText="高企政策服务" :userMore="false"></top> -->
+              <list type="1" :list="twoList" @detail="detail"></list>
+            </el-col>
+            <el-col :span="24" class="common_1">
+              <!-- <top topText="高企申报服务" :userMore="false"></top> -->
+              <list type="1" :list="thrList" @detail="detail"></list>
+            </el-col>
+            <el-col :span="24" class="common_1">
+              <!-- <top topText="科技成果评价" :userMore="false"></top> -->
+              <list type="1" :list="fourList" @detail="detail"></list>
+            </el-col>
+            <el-col :span="24" class="common_1">
+              <!-- <top topText="专家智库" :userMore="false"></top> -->
+              <list type="1" :list="fiveList" @detail="detail"></list>
+            </el-col>
+            <el-col :span="24" class="common_1">
+              <!-- <top topText="企业管理" :userMore="false"></top> -->
+              <list type="1" :list="sixList" @detail="detail"></list>
+            </el-col>
+            <el-col :span="24" class="common_1">
+              <!-- <top topText="机构管理" :userMore="false"></top> -->
+              <list type="1" :list="sevenList" @detail="detail"></list>
+            </el-col>
+          </el-col>
+        </div>
+      </el-col>
+    </el-row>
+    <el-dialog :title="dialogTitle" class="dialog2" :visible.sync="dialog2" width="70%" :before-close="dialog2Colse">
+      <info :type="dialogType"></info>
+      <el-col :span="24" class="two">
+        <el-form :model="form2" :rules="rulesForm2" ref="form2" label-width="80px">
+          <el-form-item label="用户账号" prop="institution_code">
+            <el-input v-model="form2.institution_code" placeholder="请输入用户账号" maxlength="18"></el-input>
+          </el-form-item>
+          <el-form-item label="登录密码" prop="passwd">
+            <el-input v-model="form2.password" placeholder="请输入登录密码" type="password" show-password></el-input>
+          </el-form-item>
+          <el-col :span="24" class="btn">
+            <el-button type="primary" @click="onSubmit2('form2')">提交登录</el-button>
+          </el-col>
+        </el-form>
+      </el-col>
+    </el-dialog>
+    <el-dialog title="信息详情" class="dialog" :visible.sync="dialog" width="50%" :before-close="dialogColse">
+      <div>
+        <p>{{ info.title }}</p>
+        <p>
+          <span>信息来源:{{ info.origin }}</span>
+          <span>发布时间:{{ info.release_time }}</span>
+        </p>
+        <p v-if="info.image">
+          <img v-for="(item, index) in info.image" :key="index" :src="item.url" />
+        </p>
+        <p v-html="info.content"></p>
+        <el-link :underline="false" :href="getImage(info.fileUrl)">{{ getName(info.fileUrl) }}</el-link>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import top from './parts/top.vue';
+import list from './parts/list.vue';
+import info from './parts/info.vue';
+import { btnList } from './btnList.js';
+const { openColumn } = require('@common/dict/index');
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: organization } = createNamespacedHelpers('organization');
+const { mapActions: openinfo } = createNamespacedHelpers('openInfo');
+const _ = require('lodash');
+export default {
+  name: 'index',
+  props: {},
+  components: { list, info },
+  data: function () {
+    return {
+      list: btnList,
+      // 高企政策服务
+      dialog2: false,
+      form2: {},
+      rulesForm2: {
+        phone: [{ required: true, message: '请输入用户账号', trigger: 'blur' }],
+        password: [{ required: true, message: '请输入登录密码', trigger: 'blur' }],
+      },
+      dialogTitle: '高企政策服务',
+      dialogType: undefined,
+      // 下方列表
+      // 栏目列表
+      oneList: [],
+      twoList: [],
+      thrList: [],
+      fourList: [],
+      fiveList: [],
+      sixList: [],
+      sevenList: [],
+      // 信息详情
+      dialog: false,
+      info: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    ...organization(['orgLogin', 'fetch']),
+    ...openinfo(['query']),
+    link(data) {
+      const { type, name } = data;
+      if (type == '1') {
+        window.open('http://www.jlkjxm.com');
+      } else if (type == '2') {
+        this.dialog2 = true;
+        this.dialogTitle = name;
+        this.dialogType = type;
+      } else if (type == '3') {
+        this.dialog2 = true;
+        this.dialogTitle = name;
+        this.dialogType = type;
+      } else if (type == '4') {
+        window.open('http://broadcast.waityou24.cn/liveAchieve');
+      } else if (type == '5') {
+        this.$router.push({ path: '/service/register', query: { type: type } });
+      } else if (type == '6') {
+        this.$router.push({ path: '/service/register', query: { type: type } });
+      } else if (type == '7') {
+        this.$router.push({ path: '/service/register', query: { type: type } });
+      }
+    },
+    // 高企政策服务
+    dialog2Colse() {
+      this.dialog2 = false;
+    },
+    // 高企政策服务登录
+    onSubmit2(formName) {
+      this.$refs[formName].validate(async (valid) => {
+        if (valid) {
+          let data = this.form2;
+          const res = await this.orgLogin({ user: data });
+          if (this.$checkRes(res)) {
+            if (this.dialogType === '2') this.$router.push({ path: '/service/policy' });
+            if (this.dialogType === '3') this.$router.push({ path: '/service/ticket' });
+          }
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    // 查询列表信息
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      for (const val of openColumn) {
+        info.column_name = val.label;
+        let res = await this.query({ skip, limit: 6, ...info });
+        if (this.$checkRes(res)) {
+          this.$set(this, `${val.value}List`, res.data);
+        }
+      }
+    },
+    // 查看列表信息详情
+    detail(data) {
+      this.$set(this, `info`, data);
+      this.dialog = true;
+    },
+    getImage(data) {
+      if (_.map(data, 'url')[0]) {
+        return _.map(data, 'url')[0];
+      }
+    },
+    getName(data) {
+      if (_.map(data, 'name')[0]) {
+        return _.map(data, 'name')[0];
+      }
+    },
+    // 关闭信息查看
+    dialogColse() {
+      this.dialog = false;
+    },
+    // 查询企业详细信息
+    async searchCompany(data) {
+      let res = await this.fetch(data.user_id);
+      if (this.$checkRes(res)) {
+        data.company = res.data.name;
+        return data;
+      }
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  min-height: 500px;
+  margin: 20px 0 0 0;
+  .one {
+    margin: 0 0 20px 0;
+    .list {
+      width: 13.5%;
+      height: 130px;
+      margin: 0 10px 0px 0;
+      text-align: center;
+      padding: 20px 0;
+      border-radius: 5px;
+      box-shadow: 0 0 5px #409eff;
+      .name {
+        .iconfont {
+          font-size: 40px;
+        }
+        p {
+          font-size: 16px;
+          font-weight: bold;
+          margin: 10px 0 0 0;
+        }
+      }
+    }
+    .list:nth-child(7) {
+      margin: 0 0 0 0;
+    }
+    .list:hover {
+      cursor: pointer;
+      .name {
+        p {
+          color: #6495ed;
+        }
+      }
+    }
+  }
+  .common {
+    .common_1 {
+      min-height: 90px;
+      overflow: hidden;
+      box-shadow: 0 0 4px #409eff;
+      border-radius: 10px;
+      margin: 0 10px 10px 0;
+      padding: 10px;
+    }
+  }
+}
+.dialog2 {
+  .two {
+    height: 200px;
+    background: #fff;
+    padding: 0 20%;
+    .btn {
+      text-align: center;
+      padding: 10px 0;
+    }
+  }
+  /deep/.el-dialog__body {
+    padding: 0;
+  }
+}
+.dialog {
+  /deep/.el-dialog__body {
+    padding: 10px;
+  }
+  p:nth-child(1) {
+    font-size: 20px;
+    text-align: center;
+    color: #000;
+    margin: 0 0 10px 0;
+  }
+  p:nth-child(2) {
+    text-align: center;
+    margin: 0 0 10px 0;
+    span {
+      font-size: 16px;
+      padding: 0 10px;
+    }
+  }
+  p:nth-child(3) {
+    text-align: center;
+    img {
+      width: 49.4%;
+      height: 200px;
+      margin: 0 10px 10px 0;
+      border-radius: 10px;
+    }
+    img:nth-child(2n) {
+      margin: 0 0 10px 0;
+    }
+  }
+  p:nth-child(4) {
+    font-size: 16px;
+    margin: 0 0 10px 0;
+  }
+  .el-link {
+    font-size: 16px;
+  }
+}
+</style>

+ 28 - 25
src/views/service/index.vue

@@ -44,9 +44,23 @@
         </div>
       </el-col>
     </el-row>
+    <el-dialog title="信息详情" class="dialog" :visible.sync="dialog" width="50%" :before-close="dialogColse">
+      <div>
+        <p>{{ info.title }}</p>
+        <p>
+          <span>信息来源:{{ info.origin }}</span>
+          <span>发布时间:{{ info.release_time }}</span>
+        </p>
+        <p v-if="info.image">
+          <img v-for="(item, index) in info.image" :key="index" :src="item.url" />
+        </p>
+        <p v-html="info.content"></p>
+        <el-link :underline="false" :href="getImage(info.fileUrl)">{{ getName(info.fileUrl) }}</el-link>
+      </div>
+    </el-dialog>
     <el-dialog :title="dialogTitle" class="dialog2" :visible.sync="dialog2" width="70%" :before-close="dialog2Colse">
       <info :type="dialogType"></info>
-      <el-col :span="24" class="two">
+      <el-col :span="24" class="two" v-if="dialogType == '2' || dialogType == '3'">
         <el-form :model="form2" :rules="rulesForm2" ref="form2" label-width="80px">
           <el-form-item label="用户账号" prop="institution_code">
             <el-input v-model="form2.institution_code" placeholder="请输入用户账号" maxlength="18"></el-input>
@@ -60,20 +74,6 @@
         </el-form>
       </el-col>
     </el-dialog>
-    <el-dialog title="信息详情" class="dialog" :visible.sync="dialog" width="50%" :before-close="dialogColse">
-      <div>
-        <p>{{ info.title }}</p>
-        <p>
-          <span>信息来源:{{ info.origin }}</span>
-          <span>发布时间:{{ info.release_time }}</span>
-        </p>
-        <p v-if="info.image">
-          <img v-for="(item, index) in info.image" :key="index" :src="item.url" />
-        </p>
-        <p v-html="info.content"></p>
-        <el-link :underline="false" :href="getImage(info.fileUrl)">{{ getName(info.fileUrl) }}</el-link>
-      </div>
-    </el-dialog>
   </div>
 </template>
 
@@ -93,16 +93,8 @@ export default {
   components: { list, info },
   data: function () {
     return {
+      // 功能按钮
       list: btnList,
-      // 高企政策服务
-      dialog2: false,
-      form2: {},
-      rulesForm2: {
-        phone: [{ required: true, message: '请输入用户账号', trigger: 'blur' }],
-        password: [{ required: true, message: '请输入登录密码', trigger: 'blur' }],
-      },
-      dialogTitle: '高企政策服务',
-      dialogType: undefined,
       // 下方列表
       // 栏目列表
       oneList: [],
@@ -115,6 +107,15 @@ export default {
       // 信息详情
       dialog: false,
       info: {},
+      // 弹框
+      dialog2: false,
+      form2: {},
+      rulesForm2: {
+        phone: [{ required: true, message: '请输入用户账号', trigger: 'blur' }],
+        password: [{ required: true, message: '请输入登录密码', trigger: 'blur' }],
+      },
+      dialogTitle: '高企政策服务',
+      dialogType: undefined,
     };
   },
   async created() {
@@ -136,7 +137,9 @@ export default {
         this.dialogTitle = name;
         this.dialogType = type;
       } else if (type == '4') {
-        window.open('http://broadcast.waityou24.cn/liveAchieve');
+        this.dialog2 = true;
+        this.dialogTitle = name;
+        this.dialogType = type;
       } else if (type == '5') {
         this.$router.push({ path: '/service/register', query: { type: type } });
       } else if (type == '6') {

+ 34 - 1
src/views/service/parts/info.vue

@@ -33,6 +33,26 @@
             </el-steps>
           </el-col>
         </el-col>
+        <el-col :span="24" class="two thr" v-else-if="type == '4'">
+          <el-col :span="24" class="title"><span>服务描述</span></el-col>
+          <el-col :span="24" class="info">
+            这是科研成果管理的一项重要内容。这是一项政策性和技术性很强的工作。它直接关系到科研的发展方向和科研人员的积极性以及经济建设的发展。
+          </el-col>
+          <el-col :span="24" class="title"><span>服务流程</span></el-col>
+          <el-col :span="24" class="btn">
+            <el-steps :active="6" align-center>
+              <el-step title="申报信息填写" description="用户需按照信息提示谨慎填写信息,以免导致成果评价审核失败"></el-step>
+              <el-step title="申报信息形式审查" description="服务机构会根据用户填写信息,进行一次形式审查,并进行信息核实"></el-step>
+              <el-step title="申报信息专家初审" description="服务机构形式审查通过后,会安排专家进行线上查看信息,并进行打分和给出意见"></el-step>
+              <el-step title="申报信息专家会审" description="服务机构会安排专家进行现场审查,并进行打分和给出意见"></el-step>
+              <el-step title="证书发放" description="服务机构会进行信息归档,并进行最后的信息查看,信息齐全的成果申报,方可发放证书"></el-step>
+            </el-steps>
+          </el-col>
+          <el-col :span="24" class="thrBtn">
+            <el-button type="primary" size="" @click="addBtn">成果评价申报</el-button>
+            <el-button type="primary" size="" @click="loginBtn">成果评价系统登录</el-button>
+          </el-col>
+        </el-col>
       </el-col>
     </el-row>
   </div>
@@ -50,7 +70,14 @@ export default {
     return {};
   },
   created() {},
-  methods: {},
+  methods: {
+    addBtn() {
+      window.location.href = 'http://broadcast.waityou24.cn/liveAchieve/userDeclare';
+    },
+    loginBtn() {
+      window.location.href = 'http://broadcast.waityou24.cn/liveAchieve';
+    },
+  },
   computed: {
     ...mapState(['user']),
   },
@@ -131,5 +158,11 @@ export default {
       border-bottom: 1px dashed #ccc;
     }
   }
+  .thr {
+    .thrBtn {
+      text-align: center;
+      margin: 15px 0 0 0;
+    }
+  }
 }
 </style>