wuhongyu 5 سال پیش
والد
کامیت
56698e094b
5فایلهای تغییر یافته به همراه191 افزوده شده و 86 حذف شده
  1. 87 6
      package-lock.json
  2. 1 0
      package.json
  3. 4 2
      src/router/index.js
  4. 3 0
      src/store/user/mutations.js
  5. 96 78
      src/views/direct.vue

+ 87 - 6
package-lock.json

@@ -2613,6 +2613,11 @@
         "isarray": "^1.0.0"
       }
     },
+    "buffer-equal-constant-time": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npm.taobao.org/buffer-equal-constant-time/download/buffer-equal-constant-time-1.0.1.tgz",
+      "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
+    },
     "buffer-from": {
       "version": "1.1.1",
       "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz",
@@ -4236,6 +4241,14 @@
         "safer-buffer": "^2.1.0"
       }
     },
+    "ecdsa-sig-formatter": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npm.taobao.org/ecdsa-sig-formatter/download/ecdsa-sig-formatter-1.0.11.tgz",
+      "integrity": "sha1-rg8PothQRe8UqBfao86azQSJ5b8=",
+      "requires": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
     "ee-first": {
       "version": "1.1.1",
       "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
@@ -7048,6 +7061,23 @@
         "graceful-fs": "^4.1.6"
       }
     },
+    "jsonwebtoken": {
+      "version": "8.5.1",
+      "resolved": "https://registry.npm.taobao.org/jsonwebtoken/download/jsonwebtoken-8.5.1.tgz",
+      "integrity": "sha1-AOceC431TCEhofJhN98igGc7zA0=",
+      "requires": {
+        "jws": "^3.2.2",
+        "lodash.includes": "^4.3.0",
+        "lodash.isboolean": "^3.0.3",
+        "lodash.isinteger": "^4.0.4",
+        "lodash.isnumber": "^3.0.3",
+        "lodash.isplainobject": "^4.0.6",
+        "lodash.isstring": "^4.0.1",
+        "lodash.once": "^4.0.0",
+        "ms": "^2.1.1",
+        "semver": "^5.6.0"
+      }
+    },
     "jsprim": {
       "version": "1.4.1",
       "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
@@ -7060,6 +7090,25 @@
         "verror": "1.10.0"
       }
     },
+    "jwa": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npm.taobao.org/jwa/download/jwa-1.4.1.tgz?cache=0&sync_timestamp=1576560341481&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjwa%2Fdownload%2Fjwa-1.4.1.tgz",
+      "integrity": "sha1-dDwymFy56YZVUw1TZBtmyGRbA5o=",
+      "requires": {
+        "buffer-equal-constant-time": "1.0.1",
+        "ecdsa-sig-formatter": "1.0.11",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "jws": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npm.taobao.org/jws/download/jws-3.2.2.tgz",
+      "integrity": "sha1-ABCZ82OUaMlBQADpmZX6UvtHgwQ=",
+      "requires": {
+        "jwa": "^1.4.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
     "killable": {
       "version": "1.0.1",
       "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz",
@@ -7295,6 +7344,36 @@
       "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=",
       "dev": true
     },
+    "lodash.includes": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npm.taobao.org/lodash.includes/download/lodash.includes-4.3.0.tgz",
+      "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
+    },
+    "lodash.isboolean": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npm.taobao.org/lodash.isboolean/download/lodash.isboolean-3.0.3.tgz",
+      "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
+    },
+    "lodash.isinteger": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npm.taobao.org/lodash.isinteger/download/lodash.isinteger-4.0.4.tgz",
+      "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
+    },
+    "lodash.isnumber": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npm.taobao.org/lodash.isnumber/download/lodash.isnumber-3.0.3.tgz",
+      "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
+    },
+    "lodash.isplainobject": {
+      "version": "4.0.6",
+      "resolved": "https://registry.npm.taobao.org/lodash.isplainobject/download/lodash.isplainobject-4.0.6.tgz",
+      "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
+    },
+    "lodash.isstring": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npm.taobao.org/lodash.isstring/download/lodash.isstring-4.0.1.tgz",
+      "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
+    },
     "lodash.kebabcase": {
       "version": "4.1.1",
       "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz",
@@ -7313,6 +7392,11 @@
       "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
       "dev": true
     },
+    "lodash.once": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npm.taobao.org/lodash.once/download/lodash.once-4.1.1.tgz",
+      "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
+    },
     "lodash.transform": {
       "version": "4.6.0",
       "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz",
@@ -7727,8 +7811,7 @@
     "ms": {
       "version": "2.1.2",
       "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz",
-      "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=",
-      "dev": true
+      "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk="
     },
     "multicast-dns": {
       "version": "6.2.3",
@@ -9792,8 +9875,7 @@
     "safe-buffer": {
       "version": "5.1.2",
       "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
-      "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=",
-      "dev": true
+      "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0="
     },
     "safe-regex": {
       "version": "1.1.0",
@@ -9844,8 +9926,7 @@
     "semver": {
       "version": "5.7.1",
       "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
-      "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
-      "dev": true
+      "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc="
     },
     "send": {
       "version": "0.17.1",

+ 1 - 0
package.json

@@ -12,6 +12,7 @@
     "axios": "^0.19.2",
     "core-js": "^3.6.4",
     "element-ui": "^2.13.1",
+    "jsonwebtoken": "^8.5.1",
     "loadsh": "0.0.4",
     "moment": "^2.24.0",
     "naf-core": "^0.1.2",

+ 4 - 2
src/router/index.js

@@ -1,6 +1,6 @@
 import Vue from 'vue';
 import VueRouter from 'vue-router';
-
+import checkLogin from '@common/router/before';
 Vue.use(VueRouter);
 const live = [
   {
@@ -107,11 +107,13 @@ const live = [
     component: () => import('../views/hall/dock/dockInfo.vue'),
   },
 ];
-
 const routes = [...live];
 
 const router = new VueRouter({
+  mode: 'history',
+  base: process.env.NODE_ENV === 'development' ? '' : process.env.VUE_APP_ROUTER,
   routes,
 });
+checkLogin(router);
 
 export default router;

+ 3 - 0
src/store/user/mutations.js

@@ -1,6 +1,9 @@
 const jwt = require('jsonwebtoken');
 export const setUser = (state, payload) => {
   let res = true;
+
+  console.log(state);
+  
   //登陆时
   if (payload) {
     state.token = payload;

+ 96 - 78
src/views/direct.vue

@@ -81,47 +81,32 @@
                     <li v-for="(item, index) in jishulist" :key="index">
                       <el-col :span="14" class="lileft">
                         <p>
-                          <el-popover placement="top-start" title="" width="200" trigger="hover">
-                            <el-col :span="24">
+                          <el-popover placement="top-start" title="" width="500" trigger="hover">
+                            <el-col :span="24" class="detail" v-if="policyInfo.totaltype">
                               <el-col :span="24" class="infoMess">
-                                <el-col :span="24" class="info"> 专家名称:{{ policyInfo.name }} </el-col>
-                                <el-col :span="24" class="info"> 民族:{{ policyInfo.nation }} </el-col>
-                                <el-col :span="24" class="info"> 学术成就:{{ policyInfo.achievement }} </el-col>
-                                <el-col :span="24" class="info"> 身份证号:{{ policyInfo.cardnumber }} </el-col>
-                                <el-col :span="24" class="info"> 出生日期:{{ policyInfo.birth }} </el-col>
-                                <el-col :span="24" class="info"> 毕业院校:{{ policyInfo.school }} </el-col>
-                                <el-col :span="24" class="info"> 证件类型:{{ policyInfo.cardtype }} </el-col>
-                                <el-col :span="24" class="info"> 学位:{{ policyInfo.degree }} </el-col>
-                                <el-col :span="24" class="info"> 电子邮箱:{{ policyInfo.email }} </el-col>
-                                <el-col :span="24" class="info"> 学位:{{ policyInfo.degree }} </el-col>
+                                <el-col :span="24" class="info"> 名称:{{ policyInfo.name }} </el-col>
+                                <el-col :span="24" class="info"> 类型:{{ policyInfo.product_type_name }} </el-col>
+                                <el-col :span="24" class="info"> 单价:{{ policyInfo.price }} </el-col>
+                                <el-col :span="24" class="info"> 单位:{{ policyInfo.priceunit }} </el-col>
+                                <el-col :span="24">
+                                  <span class="tupian"> 图片:</span>
+                                  <el-col :span="6" class="infos" v-for="(acm, index) in policyInfo.image" :key="index">
+                                    <span><el-image class="newclassimage" style="width:100px;height:100px" :src="acm.url"></el-image></span>
+                                  </el-col>
+                                </el-col>
+                                <el-col :span="24" class="info"> 服务范围:{{ policyInfo.scope }} </el-col>
+                                <el-col :span="24" class="info"> 描述{{ policyInfo.description }} </el-col>
+                                <el-col :span="24" class="info"> 知识产权:{{ policyInfo.property }} </el-col>
+
+                                <el-col :span="24" class="info"> 简介:{{ policyInfo.introduction }} </el-col>
+
                                 <el-col :span="24" class="info">
-                                  性别:{{ policyInfo.gender === '0' ? '男' : policyInfo.gender === '1' ? '女' : 'underdind' }}</el-col
-                                >
-                                <el-col :span="24" class="info"> 学位:{{ policyInfo.field }} </el-col>
-                                <el-col :span="24" class="info"> 学历:{{ policyInfo.eduback }} </el-col>
-                                <el-col :span="24" class="info"> 初级职称:{{ policyInfo.technical }} </el-col>
-                                <el-col :span="24" class="info"> 具体职称:{{ policyInfo.technical_actual }} </el-col>
-                                <el-col :span="24" class="info"> 职务:{{ policyInfo.position }} </el-col>
-                                <el-col :span="24" class="info"> 所学专业:{{ policyInfo.major_studied }} </el-col>
-                                <el-col :span="24" class="info"> 从事专业:{{ policyInfo.professional }} </el-col>
-                                <el-col :span="24" class="info"> 手机号:{{ policyInfo.phone }} </el-col>
-
-                                <el-col :span="24" class="info"> 主持或参与项目情况:{{ policyInfo.project_profile }} </el-col>
-                                <el-col :span="24" class="info"> 论文论著:{{ policyInfo.paper }} </el-col>
-                                <el-col :span="24" class="info"> 主要学术成就及获奖情况:{{ policyInfo.paper }} </el-col>
-                                <el-col :span="24" class="info"> 可供咨询领域:{{ policyInfo.field }} </el-col>
-                                <el-col :span="24" class="info"> 领域拼音:{{ policyInfo.field_py }} </el-col>
-                                <el-col :span="24" class="info"> 业务工作简介:{{ policyInfo.job_profile }} </el-col>
-                                <el-col :span="24" class="info"> 备注:{{ policyInfo.remark }} </el-col>
+                                  <el-button type="primary" class="duijie">对接</el-button>
+                                </el-col>
                               </el-col>
                             </el-col>
 
-                            <span slot="footer" class="annius">
-                              <el-button @click="dialogVisible = false">取 消</el-button>
-                              <el-button type="primary" @click="dialogVisible = false">对接</el-button>
-                            </span>
-
-                            <span class="title" slot="reference" @mouSEOut="hover(item)"> {{ item.name }}</span>
+                            <span class="title" slot="reference" @mouseover="hover(item)"> {{ item.name }}</span>
                           </el-popover>
 
                           <span><el-button class="duijie">对接</el-button></span>
@@ -150,7 +135,33 @@
                   <ul class="demand">
                     <li class="demandList" v-for="(item, index) in demandList" :key="index">
                       <p>
-                        <span class="textOver" style="display:inline-block;width:85%;" @click="onclickjs(item)">{{ item.name }}</span>
+                        <el-popover placement="top-start" title="" width="700" trigger="hover">
+                          <el-col :span="24" class="detail" v-if="policyInfo.totaltype">
+                            <el-col :span="24" class="infoMess">
+                              <el-col :span="24" class="info"> 名称:{{ policyInfo.name }} </el-col>
+                              <el-col :span="24" class="info"> 类型:{{ policyInfo.product_type_name }} </el-col>
+                              <el-col :span="24" class="info"> 单价:{{ policyInfo.price }} </el-col>
+                              <el-col :span="24" class="info"> 单位:{{ policyInfo.priceunit }} </el-col>
+                              <el-col :span="24">
+                                <span class="tupian"> 图片:</span>
+                                <el-col :span="6" class="infos" v-for="(acm, index) in policyInfo.image" :key="index">
+                                  <span><el-image class="newclassimage" style="width:100px;height:100px" :src="acm.url"></el-image></span>
+                                </el-col>
+                              </el-col>
+                              <el-col :span="24" class="info"> 服务范围:{{ policyInfo.scope }} </el-col>
+                              <el-col :span="24" class="info"> 描述{{ policyInfo.description }} </el-col>
+                              <el-col :span="24" class="info"> 知识产权:{{ policyInfo.property }} </el-col>
+
+                              <el-col :span="24" class="info"> 简介:{{ policyInfo.introduction }} </el-col>
+
+                              <el-col :span="24" class="info">
+                                <el-button type="primary" class="duijie">对接</el-button>
+                              </el-col>
+                            </el-col>
+                          </el-col>
+
+                          <span class="title" slot="reference" @mouseover="hover(item)"> {{ item.name }}</span>
+                        </el-popover>
                         <el-button type="primary" size="mini" @click="technologyBtn(item.id)" style="position: relative;top: -5px;">对接</el-button>
                       </p>
                       <p>
@@ -169,7 +180,34 @@
                 <el-col :span="24" class="newsheight">
                   <ul class="service">
                     <li class="serviceList" v-for="(item, index) in serviceList" :key="index">
-                      <p class="company" @click="onclickjs(item)">{{ item.name }}</p>
+                      <p class="company">
+                        <el-popover placement="top-start" title="" width="700" trigger="hover">
+                          <el-col :span="24" class="detail" v-if="policyInfo.totaltype">
+                            <el-col :span="24" class="infoMess">
+                              <el-col :span="24" class="info"> 名称:{{ policyInfo.name }} </el-col>
+                              <el-col :span="24" class="info"> 类型:{{ policyInfo.product_type_name }} </el-col>
+                              <el-col :span="24" class="info"> 单价:{{ policyInfo.price }} </el-col>
+                              <el-col :span="24" class="info"> 单位:{{ policyInfo.priceunit }} </el-col>
+                              <el-col :span="24">
+                                <span class="tupian"> 图片:</span>
+                                <el-col :span="6" class="infos" v-for="(acm, index) in policyInfo.image" :key="index">
+                                  <span><el-image class="newclassimage" style="width:100px;height:100px" :src="acm.url"></el-image></span>
+                                </el-col>
+                              </el-col>
+                              <el-col :span="24" class="info"> 服务范围:{{ policyInfo.scope }} </el-col>
+                              <el-col :span="24" class="info"> 描述{{ policyInfo.description }} </el-col>
+                              <el-col :span="24" class="info"> 知识产权:{{ policyInfo.property }} </el-col>
+
+                              <el-col :span="24" class="info"> 简介:{{ policyInfo.introduction }} </el-col>
+
+                              <el-col :span="24" class="info">
+                                <el-button type="primary" class="duijie">对接</el-button>
+                              </el-col>
+                            </el-col>
+                          </el-col>
+                          <span class="title" slot="reference" @mouseover="hover(item)"> {{ item.name }}</span>
+                        </el-popover>
+                      </p>
                       <div class="serviceDown">
                         <el-image :src="item.image[0].url"></el-image>
                         <p>
@@ -190,7 +228,25 @@
                       <el-image :src="item.imgpath"></el-image>
                       <div>
                         <p>
-                          <span @click="zhuanjia(item)">{{ item.name }}</span>
+                          <el-popover placement="top-start" title="" width="700" trigger="hover">
+                            <el-col :span="24" class="infoMess">
+                              <el-col :span="24" class="info"> 专家名称:{{ policyInfo.name }} </el-col>
+                              <el-col :span="24" class="info"> <el-image style="width:100px;height:100px" :src="policyInfo.imgpath"></el-image></el-col>
+                              <el-col :span="24" class="info"> 民族:{{ policyInfo.nation }} </el-col>
+                              <el-col :span="24" class="info"> 学术成就:{{ policyInfo.achievement }} </el-col>
+                              <el-col :span="24" class="info"> 身份证号:{{ policyInfo.cardnumber }} </el-col>
+                              <el-col :span="24" class="info"> 毕业院校:{{ policyInfo.school }} </el-col>
+                              <el-col :span="24" class="info"> 学位:{{ policyInfo.degree }} </el-col>
+                              <el-col :span="24" class="info"> 电子邮箱:{{ policyInfo.email }} </el-col>
+                              <el-col :span="24" class="info"> 学历:{{ policyInfo.eduback }} </el-col>
+                              <el-col :span="24" class="info"> 职务:{{ policyInfo.position }} </el-col>
+                              <el-col :span="24" class="info"> 从事专业:{{ policyInfo.professional }} </el-col>
+                              <el-col :span="24" class="info"> 手机号:{{ policyInfo.phone }} </el-col>
+                              <el-col :span="24" class="info"> 业务工作简介:{{ policyInfo.job_profile }} </el-col>
+                              <el-col :span="24" class="info"> 备注:{{ policyInfo.remark }} </el-col>
+                            </el-col>
+                            <span class="title" slot="reference" @mouseover="zhuanjia(item)"> {{ item.name }}</span>
+                          </el-popover>
                           <span>{{ item.nation }}</span>
                         </p>
                         <p>职务:{{ item.position }}</p>
@@ -262,45 +318,6 @@
     <div class="suspenInfo">
       <el-link :underline="false" @click="clickBtn()" target="_blank">直播中心</el-link>
     </div>
-
-    <el-dialog title="详情" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
-      <el-col :span="24" class="detail" v-if="policyInfo.totaltype">
-        <el-col :span="24" class="infoMess">
-          <el-col :span="24" class="info"> 名称:{{ policyInfo.name }} </el-col>
-          <el-col :span="24" class="info"> 类型:{{ policyInfo.product_type_name }} </el-col>
-          <el-col :span="24" class="info"> 单价:{{ policyInfo.price }} </el-col>
-          <el-col :span="24" class="info"> 单位:{{ policyInfo.priceunit }} </el-col>
-          <el-col :span="24">
-            <span class="tupian"> 图片:</span>
-            <el-col :span="6" class="infos" v-for="(acm, index) in policyInfo.image" :key="index">
-              <span><el-image class="newclassimage" style="width:100px;height:100px" :src="acm.url"></el-image></span>
-            </el-col>
-          </el-col>
-
-          <el-col :span="24" class="info"> 产品参数:{{ policyInfo.product_args }} </el-col>
-          <el-col :span="24" class="info">
-            交易方式:{{ policyInfo.business === '0' ? '公用' : policyInfo.business === '1' ? '转让' : policyInfo.business === '2' ? '竞价' : 'underdind' }}
-          </el-col>
-          <el-col :span="24" class="info"> 研发阶段:{{ policyInfo.phase === '0' ? '阶段成果' : policyInfo.phase === '1' ? '最终成果' : 'underdind' }} </el-col>
-          <el-col :span="24" class="info"> 应用领域:{{ policyInfo.field }} </el-col>
-          <el-col :span="24" class="info"> 市场前景:{{ policyInfo.prospect }} </el-col>
-          <el-col :span="24" class="info"> 电子合同:{{ policyInfo.contract }} </el-col>
-          <el-col :span="24" class="info">
-            供/需{{ policyInfo.business === '0' ? '公用' : policyInfo.business === '1' ? '供' : policyInfo.business === '2' ? '需' : 'underdind' }}
-          </el-col>
-          <el-col :span="24" class="info"> 服务范围:{{ policyInfo.scope }} </el-col>
-          <el-col :span="24" class="info"> 描述{{ policyInfo.description }} </el-col>
-          <el-col :span="24" class="info"> 知识产权:{{ policyInfo.property }} </el-col>
-          <el-col :span="24" class="info">
-            <!-- 状态:{{ policyInfo.status === '0' ? '待审核' : policyInfo.status === '1' ? '通过审核' : policyInfo.status === '2' ? '审核拒绝' : 'underdind' }} -->
-          </el-col>
-          <!-- <el-col :span="24" class="info"> 是否删除:{{ policyInfo.is_del === '0' ? '否' : policyInfo.is_del === '1' ? '是' : 'underdind' }} </el-col> -->
-          <el-col :span="24" class="info"> 联系人:{{ policyInfo.contact_user }} </el-col>
-          <el-col :span="24" class="info"> 联系电话:{{ policyInfo.contact_tel }} </el-col>
-          <el-col :span="24" class="info"> 简介:{{ policyInfo.introduction }} </el-col>
-        </el-col>
-      </el-col>
-    </el-dialog>
   </div>
 </template>
 
@@ -465,6 +482,7 @@ export default {
     },
 
     hover: function(item) {
+      this.$set(this, `policyInfo`, item);
       console.log(item);
     },