guhongwei 4 anni fa
parent
commit
8952ea60c3

+ 9 - 0
src/App.vue

@@ -8,4 +8,13 @@
 body {
   margin: 0;
 }
+.textOver {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+p {
+  padding: 0;
+  margin: 0;
+}
 </style>

+ 184 - 0
src/layout/direct/directDetail copy.vue

@@ -0,0 +1,184 @@
+<template>
+  <div id="directDetail">
+    <el-row>
+      <el-col :span="24" class="one">
+        <el-col :span="7" class="oneLeft">
+          <el-carousel trigger="click" height="210px">
+            <template v-if="directInfo.image && directInfo.image.length > 0">
+              <el-carousel-item v-for="(item, index) in directInfo.image" :key="index">
+                <el-image :src="item.url" style="height:210px"> </el-image>
+              </el-carousel-item>
+            </template>
+          </el-carousel>
+        </el-col>
+        <el-col :span="17" class="oneRight">
+          <p class="textOver">
+            {{ directInfo.name }}
+          </p>
+          <p>
+            <span>
+              产品类型:{{ directInfo.totaltype === '0' ? '技术' : directInfo.totaltype === '1' ? '产品' : directInfo.totaltype === '2' ? '服务' : '暂无' }}
+            </span>
+            <span>
+              所属领域:{{
+                `${directInfo.field}` === `0`
+                  ? '先进制造'
+                  : `${directInfo.field}` === `1`
+                  ? '新材料'
+                  : `${directInfo.field}` === `2`
+                  ? '光电子'
+                  : `${directInfo.field}` === `3`
+                  ? '信息技术'
+                  : `${directInfo.field}` === `4`
+                  ? '文化和科技融合'
+                  : '暂无'
+              }}
+            </span>
+          </p>
+          <p>
+            <span>联系人:{{ directInfo.contact_user || '暂无' }}</span>
+            <span>联系电话:{{ directInfo.contact_tel || '暂无' }}</span>
+          </p>
+        </el-col>
+        <el-col :span="24" class="oneDown">
+          <div>
+            <!-- <p><span>产品参数:</span><span @click="argsBtn(directInfo.product_args)">查看详情</span></p> -->
+          </div>
+          <div>
+            <p>服务范围:</p>
+            <p class="moreScope" v-if="scope != ''">{{ directInfo.scope || '暂无' }}</p>
+            <p class="moreScope1" v-else>{{ directInfo.scope || '暂无' }}</p>
+            <el-button size="mini" v-if="directInfo.scope != null && directInfo.scope.length > 300">
+              <span v-if="scope != ''" @click="scopeMore()">更多</span>
+              <span v-else @click="scopeMore1()">收起</span>
+            </el-button>
+          </div>
+          <div>
+            <p>产品简介:</p>
+            <p class="introduction" v-if="introduction != ''">{{ directInfo.introduction || '暂无' }}</p>
+            <p class="introduction1" v-else>{{ directInfo.introduction || '暂无' }}</p>
+            <el-button size="mini" v-if="directInfo.introduction != null && directInfo.introduction.length > 300">
+              <span v-if="introduction != ''" @click="introductionMore()">更多</span>
+              <span v-else @click="introductionMore1()">收起</span>
+            </el-button>
+          </div>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'directDetail',
+  props: {
+    directInfo: null,
+  },
+  components: {},
+  data: () => ({
+    scope: '123',
+    introduction: '123',
+  }),
+  created() {},
+  computed: {},
+  methods: {
+    // 更多
+    scopeMore() {
+      this.scope = '';
+    },
+    // 收起
+    scopeMore1() {
+      this.scope = '123';
+    },
+    // 更多
+    introductionMore() {
+      this.introduction = '';
+    },
+    // 收起
+    introductionMore1() {
+      this.introduction = '123';
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.one {
+  min-height: 550px;
+  .oneLeft {
+    height: 210px;
+    overflow: hidden;
+  }
+  .oneRight {
+    padding: 0 15px;
+    p {
+      font-size: 16px;
+      padding: 0 0 20px 0;
+      span {
+        display: inline-block;
+        width: 50%;
+      }
+    }
+    p:first-child {
+      font-size: 18px;
+      font-weight: bold;
+      padding: 20px 0;
+    }
+    // p:nth-child(2) span:last-child {
+    //   color: red;
+    //   font-weight: bold;
+    // }
+  }
+  .oneDown {
+    border-top: 1px dashed #ccc;
+    margin: 30px 0 0 0;
+    padding: 30px 0 0 0;
+    div {
+      padding: 0 0 15px 0;
+      p {
+        font-size: 18px;
+      }
+      p:first-child {
+        color: #333;
+        font-weight: bold;
+        padding: 0 0 10px 0;
+      }
+    }
+    div:nth-child(2) p span:last-child {
+      color: #409eff;
+      padding: 0 10px;
+    }
+    div:nth-child(2) p span:last-child:hover {
+      cursor: pointer;
+    }
+    div:nth-child(3) .moreScope {
+      overflow: hidden;
+      text-overflow: ellipsis;
+      -webkit-line-clamp: 6;
+      word-break: break-all;
+      display: -webkit-box;
+      -webkit-box-orient: vertical;
+    }
+    div:nth-child(3) .moreScope1 {
+      overflow: none;
+    }
+    div:nth-child(3) .el-button {
+      float: right;
+    }
+    div:last-child .introduction {
+      overflow: hidden;
+      text-overflow: ellipsis;
+      -webkit-line-clamp: 6;
+      word-break: break-all;
+      display: -webkit-box;
+      -webkit-box-orient: vertical;
+    }
+    div:last-child .introduction1 {
+      overflow: none;
+    }
+    div:last-child .el-button {
+      float: right;
+    }
+  }
+}
+</style>

+ 196 - 143
src/layout/direct/directDetail.vue

@@ -1,67 +1,149 @@
 <template>
   <div id="directDetail">
     <el-row>
-      <el-col :span="24" class="one">
-        <el-col :span="7" class="oneLeft">
-          <el-carousel trigger="click" height="210px">
-            <template v-if="directInfo.image && directInfo.image.length > 0">
+      <el-col :span="24" class="main" v-if="directInfo.type == '0'">
+        <el-col :span="24" class="top">
+          <el-col :span="8" class="left">
+            <el-carousel trigger="click" height="250px" :autoplay="false">
               <el-carousel-item v-for="(item, index) in directInfo.image" :key="index">
-                <el-image :src="item.url" style="height:210px"> </el-image>
+                <el-image :src="item.url" style="width:100%;height:240px;"></el-image>
               </el-carousel-item>
-            </template>
-          </el-carousel>
+            </el-carousel>
+          </el-col>
+          <el-col :span="16" class="right">
+            <el-col :span="24" class="name textOver">
+              {{ directInfo.name }}
+            </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 所属领域:{{ directInfo.field }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 合作方式:{{ directInfo.cooperation }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 投资预算:{{ directInfo.budget }}万元 </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 需求紧急程度:{{ directInfo.degreeurgency }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 企业名称:{{ directInfo.company }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 注册类型:{{ directInfo.companytype }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 企业网址{{ directInfo.companyweb }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 联系人:{{ directInfo.contacts }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> QQ&微信:{{ directInfo.qqwx }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 电子邮箱:{{ directInfo.email }} </el-col>
+          </el-col>
         </el-col>
-        <el-col :span="17" class="oneRight">
-          <p class="textOver">
+        <el-col :span="24" class="down">
+          <el-col :span="24" class="downInfo">
+            <h2>技术难题&难题说明:</h2>
+            <p>
+              {{ directInfo.requirementdesc || '暂无' }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>预期技术目标描述:</h2>
+            <p>
+              {{ directInfo.expect || '暂无' }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>需求现状及应对措施:</h2>
+            <p>
+              {{ directInfo.present || '暂无' }}
+            </p>
+          </el-col>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="main main2" v-else-if="directInfo.type == '1'">
+        <el-col :span="24" class="top">
+          <el-col :span="8" class="left">
+            <el-carousel trigger="click" height="250px" :autoplay="false">
+              <el-carousel-item v-for="(item, index) in directInfo.image" :key="index">
+                <el-image :src="item.url" style="width:100%;height:240px;"></el-image>
+              </el-carousel-item>
+            </el-carousel>
+          </el-col>
+          <el-col :span="16" class="right">
+            <el-col :span="24" class="name textOver">
+              {{ directInfo.name }}
+            </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 所属领域:{{ directInfo.field }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 合作方式:{{ directInfo.cooperation }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 成果状态:{{ directInfo.achievestatus }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 成果权属:{{ directInfo.achieveown }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 成果来源:{{ directInfo.achievesource }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 项目路演:{{ directInfo.roadshow }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 意向价格:{{ directInfo.intentionprice }}万元 </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 企业名称:{{ directInfo.company }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 企业网址{{ directInfo.companyweb }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 联系人:{{ directInfo.contacts }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> QQ&微信:{{ directInfo.qqwx }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 电子邮箱:{{ directInfo.email }} </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="24" class="down">
+          <el-col :span="24" class="downInfo">
+            <h2>成果简介:</h2>
+            <p>
+              {{ directInfo.achievebrief }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>技术特点:</h2>
+            <p>
+              {{ directInfo.features }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>技术团队:</h2>
+            <p>
+              {{ directInfo.team }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>商业预期:</h2>
+            <p>
+              {{ directInfo.expectations }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>合作要求:</h2>
+            <p>
+              {{ directInfo.present }}
+            </p>
+          </el-col>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="main3" v-else>
+        <el-col :span="24" class="top">
+          <el-col :span="24" class="name">
             {{ directInfo.name }}
-          </p>
-          <p>
-            <span>
-              产品类型:{{ directInfo.totaltype === '0' ? '技术' : directInfo.totaltype === '1' ? '产品' : directInfo.totaltype === '2' ? '服务' : '暂无' }}
-            </span>
-            <span>
-              所属领域:{{
-                `${directInfo.field}` === `0`
-                  ? '先进制造'
-                  : `${directInfo.field}` === `1`
-                  ? '新材料'
-                  : `${directInfo.field}` === `2`
-                  ? '光电子'
-                  : `${directInfo.field}` === `3`
-                  ? '信息技术'
-                  : `${directInfo.field}` === `4`
-                  ? '文化和科技融合'
-                  : '暂无'
-              }}
-            </span>
-          </p>
-          <p>
-            <span>联系人:{{ directInfo.contact_user || '暂无' }}</span>
-            <span>联系电话:{{ directInfo.contact_tel || '暂无' }}</span>
-          </p>
+          </el-col>
+          <el-col :span="12" class="otherInfo">信息属性:{{ directInfo.messattribute }} </el-col>
+          <el-col :span="12" class="otherInfo">需求程度:{{ directInfo.demand }} </el-col>
+          <el-col :span="12" class="otherInfo">联系人:{{ directInfo.contacts }} </el-col>
+          <el-col :span="12" class="otherInfo">发布时间:{{ directInfo.meta | getDate }} </el-col>
+          <el-col :span="12" class="otherInfo">QQ&微信:{{ directInfo.qqwx }} </el-col>
+          <el-col :span="12" class="otherInfo">电子邮箱:{{ directInfo.email }} </el-col>
         </el-col>
-        <el-col :span="24" class="oneDown">
-          <div>
-            <!-- <p><span>产品参数:</span><span @click="argsBtn(directInfo.product_args)">查看详情</span></p> -->
-          </div>
-          <div>
-            <p>服务范围:</p>
-            <p class="moreScope" v-if="scope != ''">{{ directInfo.scope || '暂无' }}</p>
-            <p class="moreScope1" v-else>{{ directInfo.scope || '暂无' }}</p>
-            <el-button size="mini" v-if="directInfo.scope != null && directInfo.scope.length > 300">
-              <span v-if="scope != ''" @click="scopeMore()">更多</span>
-              <span v-else @click="scopeMore1()">收起</span>
-            </el-button>
-          </div>
-          <div>
-            <p>产品简介:</p>
-            <p class="introduction" v-if="introduction != ''">{{ directInfo.introduction || '暂无' }}</p>
-            <p class="introduction1" v-else>{{ directInfo.introduction || '暂无' }}</p>
-            <el-button size="mini" v-if="directInfo.introduction != null && directInfo.introduction.length > 300">
-              <span v-if="introduction != ''" @click="introductionMore()">更多</span>
-              <span v-else @click="introductionMore1()">收起</span>
-            </el-button>
-          </div>
+        <el-col :span="24" class="down">
+          <el-col :span="24" class="downInfo">
+            <h2>信息描述:</h2>
+            <p>
+              {{ directInfo.informationdesc }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>核心要素:</h2>
+            <p>
+              {{ directInfo.coreelements }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>价格信息:</h2>
+            <p>
+              {{ directInfo.priceinfo }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>商务预期:</h2>
+            <p>
+              {{ directInfo.businessexpect }}
+            </p>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
@@ -69,116 +151,87 @@
 </template>
 
 <script>
+import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'directDetail',
   props: {
-    directInfo: null,
+    directInfo: { type: Object },
   },
   components: {},
-  data: () => ({
-    scope: '123',
-    introduction: '123',
-  }),
+  data: function() {
+    return {};
+  },
   created() {},
-  computed: {},
-  methods: {
-    // 更多
-    scopeMore() {
-      this.scope = '';
-    },
-    // 收起
-    scopeMore1() {
-      this.scope = '123';
-    },
-    // 更多
-    introductionMore() {
-      this.introduction = '';
-    },
-    // 收起
-    introductionMore1() {
-      this.introduction = '123';
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
     },
   },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
 };
 </script>
 
 <style lang="less" scoped>
-.one {
-  min-height: 550px;
-  .oneLeft {
-    height: 210px;
+.main {
+  .top {
+    height: 250px;
     overflow: hidden;
+    border-bottom: 1px dashed #ccc;
+    // .left {
+    // }
+    .right {
+      padding: 0 10px;
+      .name {
+        font-size: 18px;
+        font-weight: bold;
+        padding: 10px 0;
+      }
+      .otherInfo {
+        font-size: 16px;
+        padding: 8px 0;
+      }
+    }
   }
-  .oneRight {
-    padding: 0 15px;
-    p {
-      font-size: 16px;
-      padding: 0 0 20px 0;
-      span {
-        display: inline-block;
-        width: 50%;
+  .down {
+    .downInfo {
+      padding: 10px 0;
+      p {
+        font-size: 16px;
+        text-indent: 2rem;
       }
     }
-    p:first-child {
+  }
+}
+.main2 .top .right .otherInfo {
+  padding: 5px 0;
+}
+.main3 {
+  .top {
+    height: 160px;
+    overflow: hidden;
+    border-bottom: 1px dashed #ccc;
+    .name {
       font-size: 18px;
       font-weight: bold;
-      padding: 20px 0;
+      padding: 10px 0;
+    }
+    .otherInfo {
+      font-size: 16px;
+      padding: 5px 0;
     }
-    // p:nth-child(2) span:last-child {
-    //   color: red;
-    //   font-weight: bold;
-    // }
   }
-  .oneDown {
-    border-top: 1px dashed #ccc;
-    margin: 30px 0 0 0;
-    padding: 30px 0 0 0;
-    div {
-      padding: 0 0 15px 0;
+  .down {
+    .downInfo {
+      padding: 10px 0;
       p {
-        font-size: 18px;
-      }
-      p:first-child {
-        color: #333;
-        font-weight: bold;
-        padding: 0 0 10px 0;
+        font-size: 16px;
+        text-indent: 2rem;
       }
     }
-    div:nth-child(2) p span:last-child {
-      color: #409eff;
-      padding: 0 10px;
-    }
-    div:nth-child(2) p span:last-child:hover {
-      cursor: pointer;
-    }
-    div:nth-child(3) .moreScope {
-      overflow: hidden;
-      text-overflow: ellipsis;
-      -webkit-line-clamp: 6;
-      word-break: break-all;
-      display: -webkit-box;
-      -webkit-box-orient: vertical;
-    }
-    div:nth-child(3) .moreScope1 {
-      overflow: none;
-    }
-    div:nth-child(3) .el-button {
-      float: right;
-    }
-    div:last-child .introduction {
-      overflow: hidden;
-      text-overflow: ellipsis;
-      -webkit-line-clamp: 6;
-      word-break: break-all;
-      display: -webkit-box;
-      -webkit-box-orient: vertical;
-    }
-    div:last-child .introduction1 {
-      overflow: none;
-    }
-    div:last-child .el-button {
-      float: right;
-    }
   }
 }
 </style>

+ 88 - 122
src/layout/direct/exportDetail.vue

@@ -1,63 +1,57 @@
 <template>
   <div id="exportDetail">
     <el-row>
-      <el-col :span="24" class="top">
-        <el-col :span="7" class="image">
-          <el-image :src="exportInfo.img_path"></el-image>
-        </el-col>
-        <el-col :span="17" class="info">
-          <p>
-            <span>姓名:{{ exportInfo.name }}</span>
-            <span>性別:{{ exportInfo.gender }}</span>
-          </p>
-          <p>
-            <span>职务:{{ exportInfo.position }}</span>
-            <span>出生日期:{{ exportInfo.birthday }}</span>
-          </p>
-          <p>
-            <span>院校:{{ exportInfo.school }}</span>
-            <span>专业:{{ exportInfo.major }}</span>
-          </p>
-          <p>
-            <span>学历:{{ exportInfo.xl }}</span>
-            <span>学位:{{ exportInfo.xw }}</span>
-          </p>
-          <p>
-            <span>电话:{{ exportInfo.phone }}</span>
-            <span>邮箱:{{ exportInfo.email }}</span>
-          </p>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="top">
+          <el-col :span="8" class="left">
+            <el-image v-if="exportInfo.expertimage != ''" :src="exportInfo.expertimage" style="width:100%;height:220px;"></el-image>
+            <el-image v-else :src="expertimage" style="width:100%;height:220px;"></el-image>
+          </el-col>
+          <el-col :span="16" class="right">
+            <el-col :span="24" class="name textOver">
+              {{ exportInfo.name }}
+            </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 毕业院校:{{ exportInfo.school }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 最高学历:{{ exportInfo.education }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 出生日期:{{ exportInfo.birthDate }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 工作单位:{{ exportInfo.company }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> QQ&微信:{{ exportInfo.qqwx }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 电子邮箱:{{ exportInfo.email }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 职务职称:{{ exportInfo.zwzc }} </el-col>
+            <el-col :span="12" class="otherInfo textOver"> 擅长领域:{{ exportInfo.expertise }} </el-col>
+          </el-col>
         </el-col>
         <el-col :span="24" class="down">
-          <div>
-            <span>身份证号 :{{ exportInfo.cardnumber }}</span>
-            <span>从事专业:{{ exportInfo.professional }}</span>
-          </div>
-          <div>
-            <span>项目:{{ exportInfo.project }}</span>
-            <span>学术成就 :{{ exportInfo.academic }}</span>
-          </div>
-
-          <div>
-            <span>职称级别:{{ exportInfo.level }}</span>
-            <span>职称名称 :{{ exportInfo.levelname }}</span>
-          </div>
-
-          <div>
-            <span>地址:{{ exportInfo.addr }}</span>
-            <span>论文:{{ exportInfo.paper }}</span>
-          </div>
-          <div>
-            <span>备注 :{{ exportInfo.remark }}</span>
-          </div>
-          <div>
-            <p>工作简介:</p>
-            <p class="profile" v-if="scope != ''">{{ exportInfo.resume }}</p>
-            <p class="profile1" v-else>{{ exportInfo.resume }}</p>
-            <el-button size="mini" v-if="exportInfo.resume != null && exportInfo.resume.length > 300">
-              <span v-if="scope != ''" @click="scopeMore()">更多</span>
-              <span v-else @click="scopeMore1()">收起</span>
-            </el-button>
-          </div>
+          <el-col :span="24" class="downInfo">
+            <h2>工作经历:</h2>
+            <p>
+              {{ exportInfo.workexperience || '暂无' }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>科研综述:</h2>
+            <p>
+              {{ exportInfo.scientific || '暂无' }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>承担项目:</h2>
+            <p>
+              {{ exportInfo.undertakingproject || '暂无' }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>科技奖励:</h2>
+            <p>
+              {{ exportInfo.scienceaward || '暂无' }}
+            </p>
+          </el-col>
+          <el-col :span="24" class="downInfo">
+            <h2>社会任职:</h2>
+            <p>
+              {{ exportInfo.social || '暂无' }}
+            </p>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
@@ -65,89 +59,61 @@
 </template>
 
 <script>
+import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'exportDetail',
   props: {
-    exportInfo: null,
+    exportInfo: { type: Object },
   },
   components: {},
-  data: () => ({
-    scope: '123',
-  }),
+  data: function() {
+    return {
+      expertimage: require('@/assets/live/222.png'),
+    };
+  },
   created() {},
-  computed: {},
-  methods: {
-    // 更多
-    scopeMore() {
-      this.scope = '';
-    },
-    // 收起
-    scopeMore1() {
-      this.scope = '123';
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
     },
   },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
 };
 </script>
 
 <style lang="less" scoped>
-.top {
-  .image {
-    box-shadow: 0 0 3px #ccc;
-  }
-  .info {
-    padding: 0 15px;
-    p {
-      font-size: 18px;
-      color: #000;
-      padding: 0 0 20px 0;
-      span {
-        display: inline-block;
-        width: 50%;
+.main {
+  .top {
+    height: 230px;
+    overflow: hidden;
+    border-bottom: 1px dashed #ccc;
+    // .left {
+    // }
+    .right {
+      padding: 0 10px;
+      .name {
+        font-size: 18px;
+        font-weight: bold;
+        padding: 10px 0;
+      }
+      .otherInfo {
+        font-size: 16px;
+        padding: 10px 0;
       }
-    }
-    p:first-child {
-      padding: 20px 0;
-    }
-    p:first-child span:first-child {
-      font-size: 20px;
-      font-weight: bold;
     }
   }
-}
-.down {
-  margin: 30px 0 0 0;
-  border-top: 1px dashed red;
-  padding: 20px;
-  div {
-    padding: 0 0 15px 0;
-    font-size: 18px;
-    p {
-      padding: 0 0 10px 0;
-    }
-    span {
-      display: inline-block;
-      width: 50%;
-    }
-    p:last-child {
-      text-indent: 1rem;
+  .down {
+    .downInfo {
+      padding: 10px 0;
+      p {
+        font-size: 16px;
+        text-indent: 2rem;
+      }
     }
   }
-  div:last-child .profile {
-    overflow: hidden;
-    text-overflow: ellipsis;
-    -webkit-line-clamp: 6;
-    word-break: break-all;
-    display: -webkit-box;
-    -webkit-box-orient: vertical;
-    padding: 0 0 0px 0;
-    text-indent: 2rem;
-  }
-  div:last-child .profile1 {
-    overflow: none;
-    text-indent: 2rem;
-  }
-  div:last-child .el-button {
-    float: right;
-  }
 }
 </style>

+ 92 - 144
src/views/hall/direct.vue

@@ -9,7 +9,7 @@
             </el-col>
             <el-col :span="24" class="zhuban">
               <span>主办方:</span>
-              <span>吉林省计算中心直播大厅</span>
+              <span>{{ dockInfo.sponsor }}</span>
             </el-col>
             <el-col :span="24" class="num">
               <p>
@@ -164,20 +164,8 @@
                           <el-col :span="4" class="names">
                             <p>
                               <span>
-                                合作方式:
-                                {{
-                                  item.coopermode == '0'
-                                    ? '技术转让'
-                                    : item.coopermode == '1'
-                                    ? '技术服务'
-                                    : item.coopermode == '2'
-                                    ? '技术许可'
-                                    : item.coopermode == '3'
-                                    ? '技术融资'
-                                    : item.coopermode == '4'
-                                    ? '其他'
-                                    : '暂无'
-                                }}</span
+                                所属领域:
+                                {{ item.field }}</span
                               >
                             </p>
                           </el-col>
@@ -186,7 +174,12 @@
                             <el-button
                               size="mini"
                               type="success"
-                              @click="$router.push({ path: '/live/hall/dock/dockDetail', query: { id: item._id, dockid: dock_id, user_id: user_id } })"
+                              @click="
+                                $router.push({
+                                  path: '/live/hall/dock/dockDetail',
+                                  query: { id: item._id, dockid: dock_id, user_id: user_id, type: item.type },
+                                })
+                              "
                               >对接</el-button
                             >
                           </el-col>
@@ -218,52 +211,29 @@
                               <el-button
                                 size="mini"
                                 type="success"
-                                @click="$router.push({ path: '/live/hall/dock/dockDetail', query: { id: item.id, dockid: this.id, user_id: this.user_id } })"
+                                @click="
+                                  $router.push({
+                                    path: '/live/hall/dock/dockDetail',
+                                    query: { id: item._id, dockid: dock_id, user_id: user_id, type: item.type },
+                                  })
+                                "
                                 >对接</el-button
                               >
                             </el-col>
                             <el-col :span="16" class="otherInfo">
                               <el-col :span="12">
                                 <p class="field">
-                                  <span>所属领域:</span
-                                  ><span>{{
-                                    item.field == '0'
-                                      ? '先进制造'
-                                      : item.field == '1'
-                                      ? '新材料'
-                                      : item.field == '2'
-                                      ? '光电子'
-                                      : item.field == '3'
-                                      ? '信息技术'
-                                      : item.field == '4'
-                                      ? '文化和科技融合'
-                                      : '暂无'
-                                  }}</span>
+                                  <span>所属领域:</span><span>{{ item.field }}</span>
                                 </p>
                               </el-col>
                               <el-col :span="12">
                                 <p class="coopermode">
-                                  <span>合作方式:</span
-                                  ><span>
-                                    {{
-                                      item.coopermode == '0'
-                                        ? '技术转让'
-                                        : item.coopermode == '1'
-                                        ? '技术服务'
-                                        : item.coopermode == '2'
-                                        ? '技术许可'
-                                        : item.coopermode == '3'
-                                        ? '技术融资'
-                                        : item.coopermode == '4'
-                                        ? '其他'
-                                        : '暂无'
-                                    }}
-                                  </span>
+                                  <span>合作方式:</span><span>{{ item.cooperation }}</span>
                                 </p>
                               </el-col>
                             </el-col>
                             <el-col :span="8" class="introduction">
-                              <p><span>简介:</span>{{ item.introduction }}</p>
+                              <p><span>成果简介:</span>{{ item.achievebrief }}</p>
                             </el-col>
                           </el-col>
                         </el-col>
@@ -287,40 +257,24 @@
                         <el-col :span="24" class="topList">
                           <el-col :span="24" class="list" v-for="(item, index) in serviceList" :key="index">
                             <el-col :span="20" class="name">
-                              <p>{{ item.name }}</p>
+                              {{ item.name }}
                             </el-col>
                             <el-col :span="4" class="click">
                               <el-button size="mini" type="primary" @click="oneBtnDetail(item)">详情</el-button>
                               <el-button
                                 size="mini"
                                 type="success"
-                                @click="$router.push({ path: '/live/hall/dock/dockDetail', query: { id: item._id, dockid: dock_id, user_id: user_id } })"
+                                @click="
+                                  $router.push({
+                                    path: '/live/hall/dock/dockDetail',
+                                    query: { id: item._id, dockid: dock_id, user_id: user_id, type: item.type },
+                                  })
+                                "
                                 >对接</el-button
                               >
                             </el-col>
-                            <el-col :span="16" class="otherInfo">
-                              <el-col :span="12">
-                                <p class="field">
-                                  <span>所属领域:</span
-                                  ><span>{{
-                                    item.field == '0'
-                                      ? '先进制造'
-                                      : item.field == '1'
-                                      ? '新材料'
-                                      : item.field == '2'
-                                      ? '光电子'
-                                      : item.field == '3'
-                                      ? '信息技术'
-                                      : item.field == '4'
-                                      ? '文化和科技融合'
-                                      : '暂无'
-                                  }}</span>
-                                </p>
-                              </el-col>
-                            </el-col>
-                            <el-col :span="8" class="introduction">
-                              <p><span>简介:</span>{{ item.introduction }}</p>
-                            </el-col>
+                            <el-col :span="12" class="otherInfo"> 信息属性:{{ item.messattribute }} </el-col>
+                            <el-col :span="12" class="otherInfo"> 需求程度:{{ item.demand }} </el-col>
                           </el-col>
                         </el-col>
                         <el-col :span="24" class="btn">
@@ -328,7 +282,7 @@
                             type="primary"
                             size="mini"
                             @click="$router.push({ path: '/hall/productList/technologyList', query: { column_name: '服务', dockid: dock_id } })"
-                            v-if="serviceList.length > 10"
+                            v-if="serviceList.length > 6"
                             >查看所有项目</el-button
                           >
                         </el-col>
@@ -340,36 +294,34 @@
                   <el-col :span="24" class="two">
                     <el-col :span="12" class="twoList" v-for="(item, index) in expertList" :key="index">
                       <el-col :span="4" class="image">
-                        <el-image :src="item.img_path" style="height: 92px;"></el-image>
+                        <el-image :src="item.expertimage" style="height: 92px;" v-if="item.expertimage != ''"></el-image>
+                        <el-image :src="expertimage" style="height: 92px;" v-else></el-image>
                       </el-col>
                       <el-col :span="20" class="info">
-                        <p>
-                          <span class="textOver">{{ item.name }}</span>
+                        <el-col :span="16" class="name textOver">
+                          {{ item.name }}
+                        </el-col>
+                        <el-col :span="8">
+                          <el-button size="mini" type="primary" @click="twoBtnDetail(item)" style="margin:0 5px 0 5px">详情</el-button>
                           <el-button
                             size="mini"
                             type="success"
                             @click="$router.push({ path: '/live/hall/dock/zhanjiaduijie', query: { id: item._id, dockid: dock_id, user_id: user_id } })"
                             >对接</el-button
                           >
-                          <el-button size="mini" type="primary" @click="twoBtnDetail(item)" style="margin:0 5px 0 5px">详情</el-button>
-                        </p>
-
-                        <p>
-                          <span>性别:{{ item.gender }}</span>
-                          <span>院校:{{ item.school }}</span>
-                        </p>
-                        <p>
-                          <span>职务:{{ item.position }}</span>
-                          <span>从事专业:{{ item.professional }}</span>
-                        </p>
+                        </el-col>
+                        <el-col :span="12" class="txt"> 毕业院校:{{ item.school }} </el-col>
+                        <el-col :span="12" class="txt"> 最高学历:{{ item.education }} </el-col>
+                        <el-col :span="12" class="txt"> QQ&微信:{{ item.qqwx }} </el-col>
+                        <el-col :span="12" class="txt"> 电子邮箱:{{ item.email }} </el-col>
                       </el-col>
                     </el-col>
                     <el-col :span="24" class="onmore">
                       <el-button
+                        v-if="expertList.length >= 6"
                         type="primary"
                         size="mini"
                         @click="$router.push({ path: '/hall/productList/expertList', query: { dockid: dock_id, user_id: user_id } })"
-                        v-if="expertList.length > 1"
                         >查看所有项目</el-button
                       >
                     </el-col>
@@ -520,6 +472,7 @@ export default {
     // 专家详情
     dialogExport: false,
     exportInfo: {},
+    expertimage: require('@/assets/live/222.png'),
     // 交易实况
     directlist: [],
     //达成意向
@@ -545,10 +498,7 @@ export default {
       czxm: 0,
     },
     // 对接会详情
-    dockInfo: {
-      title: '',
-      file_path: '',
-    },
+    dockInfo: {},
     //对接会创建人id
     user_id: '',
     videoSrc: '',
@@ -585,7 +535,6 @@ export default {
     // 测试轮播
     lunboList: [],
     animate: false,
-
     //现场直播对话框
     text: '',
   }),
@@ -607,10 +556,8 @@ export default {
       // 标题
       let res = await this.dockFetch(this.dock_id);
       if (this.$checkRes(res)) {
-        // 对接会标题
-        this.$set(this.dockInfo, `title`, res.data.title);
-        // 对接会视频
-        this.$set(this.dockInfo, `file_path`, res.data.file_path);
+        // 对接会详情
+        this.$set(this, `dockInfo`, res.data);
         // 对接会创建人id
         this.$set(this, `user_id`, res.data.user_id);
         // 参展项目
@@ -620,16 +567,16 @@ export default {
         var czxmNew = czxm.filter(item => item.dockStatus == '1');
         this.$set(this.statNum, `czxm`, czxmNew.length);
         // 找技术
-        var jishuData = czxmNew.filter(item => item.totaltype === '0');
+        var jishuData = czxmNew.filter(item => item.type === '0');
         this.$set(this, `jishulist`, jishuData);
         // 找产品
-        var chanpinData = czxmNew.filter(item => item.totaltype === '1');
+        var chanpinData = czxmNew.filter(item => item.type === '1');
         this.$set(this, `demandList`, chanpinData);
         // 找服务
-        var fuwuData = czxmNew.filter(item => item.totaltype === '2');
+        var fuwuData = czxmNew.filter(item => item.type === '2');
         this.$set(this, `serviceList`, fuwuData);
         // 找专家
-        let exportdata = await this.expertQuery({ role: 6 });
+        let exportdata = await this.expertQuery({ role: 6, limit: '6' });
         if (this.$checkRes(exportdata)) this.$set(this, `expertList`, exportdata.data);
       }
       // 查询特邀嘉宾
@@ -754,8 +701,8 @@ export default {
     // 专家详情
     twoBtnDetail(data) {
       this.dialogExport = true;
-      data.phone = this.phoneNumFilter(data.phone);
-      data.cardnumber = this.cardnumberNumFilter(data.cardnumber);
+      // data.phone = this.phoneNumFilter(data.phone);
+      // data.cardnumber = this.cardnumberNumFilter(data.cardnumber);
       this.$set(this, `exportInfo`, data);
     },
     // 过滤隐藏手机号
@@ -1072,6 +1019,7 @@ export default {
 }
 .fangtan {
   float: left;
+  width: 100%;
   height: 525px;
   overflow: hidden;
 }
@@ -1300,11 +1248,11 @@ export default {
   .two {
     padding: 15px 15px 0 15px;
     height: 466px;
-    overflow: auto;
+    overflow: hidden;
     .twoList {
       box-shadow: 0 0 3px red;
       margin-bottom: 10px;
-      padding: 17px 6px;
+      padding: 15px 5px;
       .image {
         border-radius: 90px;
         .el-image {
@@ -1312,26 +1260,43 @@ export default {
         }
       }
       .info {
-        font-size: 16px;
-        padding: 0 15px;
-        .el-button {
-          float: right;
-        }
-        p {
-          float: left;
-          width: 100%;
-          height: 30px;
-          line-height: 30px;
-          span {
-            display: inline-block;
-            width: 50%;
-          }
-        }
-        p:first-child {
+        .name {
           font-size: 18px;
-          font-weight: bold;
+        }
+        .txt {
+          font-size: 16px;
+          padding: 5px 0;
         }
       }
+      // margin-bottom: 10px;
+      // padding: 17px 6px;
+      // .image {
+      //   border-radius: 90px;
+      //   .el-image {
+      //     border-radius: 90px;
+      //   }
+      // }
+      // .info {
+      //   font-size: 16px;
+      //   padding: 0 15px;
+      //   .el-button {
+      //     float: right;
+      //   }
+      //   p {
+      //     float: left;
+      //     width: 100%;
+      //     height: 30px;
+      //     line-height: 30px;
+      //     span {
+      //       display: inline-block;
+      //       width: 50%;
+      //     }
+      //   }
+      //   p:first-child {
+      //     font-size: 18px;
+      //     font-weight: bold;
+      //   }
+      // }
     }
   }
 }
@@ -1482,33 +1447,16 @@ export default {
     height: 430px;
     overflow: hidden;
     .list {
-      padding: 11px 0;
+      padding: 10px 0;
       border-bottom: 1px dashed #ccc;
       .name {
-        height: 30px;
-        line-height: 30px;
-        p {
-          font-size: 16px;
-        }
+        font-size: 18px;
       }
       .click {
-        height: 30px;
-        line-height: 30px;
-        text-align: center;
+        text-align: right;
       }
       .otherInfo {
-        .field {
-          font-size: 14px;
-          padding: 8px 0 0 0;
-        }
-      }
-      .introduction {
-        overflow: hidden;
-        text-overflow: ellipsis;
-        -webkit-line-clamp: 2;
-        word-break: break-all;
-        display: -webkit-box;
-        -webkit-box-orient: vertical;
+        font-size: 16px;
       }
     }
   }

+ 263 - 289
src/views/hall/dock/dockDetail.vue

@@ -5,100 +5,170 @@
         <el-image :src="beijingPic"></el-image>
         <el-col :span="24" class="info">
           <div class="w_1200">
-            <el-col :span="24" class="top">
-              <p>吉林省计算中心对接直播大厅</p>
-              <p>主办方:吉林省计算中心</p>
+            <el-col :span="24" class="topTitle">
+              <p>{{ dockInfo.title }}</p>
+              <p>主办方:{{ dockInfo.sponsor }}</p>
             </el-col>
             <el-col :span="24" class="main">
-              <el-col :span="24" class="mainTop">
-                <span v-if="display === '1'">
-                  <el-col :span="24" class="one">
-                    <el-col :span="7" class="oneLeft">
-                      <el-carousel trigger="click" height="210px">
-                        <template v-if="detailInfo.image && detailInfo.image.length > 0">
-                          <el-carousel-item v-for="(item, index) in detailInfo.image" :key="index">
-                            <el-image :src="item.url" style="width: 100%;height: 210px;"> </el-image>
-                          </el-carousel-item>
-                        </template>
-                      </el-carousel>
-                    </el-col>
-                    <el-col :span="17" class="oneRight">
-                      <p class="textOver">
-                        {{ detailInfo.name }}
-                      </p>
-                      <p>
-                        <span>
-                          产品类型:{{
-                            detailInfo.totaltype === '0' ? '技术' : detailInfo.totaltype === '1' ? '产品' : detailInfo.totaltype === '2' ? '服务' : '暂无'
-                          }}
-                        </span>
-                        <span>
-                          所属领域:{{
-                            `${detailInfo.field}` === `0`
-                              ? '先进制造'
-                              : `${detailInfo.field}` === `1`
-                              ? '新材料'
-                              : `${detailInfo.field}` === `2`
-                              ? '光电子'
-                              : `${detailInfo.field}` === `3`
-                              ? '信息技术'
-                              : `${detailInfo.field}` === `4`
-                              ? '文化和科技融合'
-                              : '暂无'
-                          }}
-                        </span>
-                      </p>
-                      <p>
-                        <span>联系人:{{ detailInfo.contact_user || '暂无' }}</span>
-                        <span>联系电话:{{ detailInfo.contact_tel || '暂无' }}</span>
-                      </p>
+              <el-col :span="24" class="btn">
+                <el-button type="primary" size="mini" @click="back()">返回</el-button>
+              </el-col>
+              <el-col :span="24" class="one" v-if="type == '0'">
+                <el-col :span="24" class="top">
+                  <el-col :span="8" class="left">
+                    <el-carousel trigger="click" height="250px" :autoplay="false">
+                      <el-carousel-item v-for="(item, index) in detailInfo.image" :key="index">
+                        <el-image :src="item.url" style="width:100%;height:240px;"></el-image>
+                      </el-carousel-item>
+                    </el-carousel>
+                  </el-col>
+                  <el-col :span="16" class="right">
+                    <el-col :span="24" class="name textOver">
+                      {{ detailInfo.name }}
                     </el-col>
-                    <el-col :span="24" class="oneDown">
-                      <!-- <div>
-                        <p><span>产品参数:</span><span @click="argsBtn(detailInfo.product_args)">查看详情</span></p>
-                      </div> -->
-                      <div>
-                        <p>服务范围:</p>
-                        <p class="moreScope" v-if="scope != ''">{{ detailInfo.scope || '暂无' }}</p>
-                        <p class="moreScope1" v-else>{{ detailInfo.scope || '暂无' }}</p>
-                        <el-button size="mini" v-if="detailInfo.scope != null && detailInfo.scope.length > 300">
-                          <span v-if="scope != ''" @click="scopeMore()">更多</span>
-                          <span v-else @click="scopeMore1()">收起</span>
-                        </el-button>
-                      </div>
-                      <div>
-                        <p>产品简介:</p>
-                        <p class="introduction" v-if="introduction != ''">{{ detailInfo.introduction || '暂无' }}</p>
-                        <p class="introduction1" v-else>{{ detailInfo.introduction || '暂无' }}</p>
-                        <el-button size="mini" v-if="detailInfo.introduction != null && detailInfo.introduction.length > 300">
-                          <span v-if="introduction != ''" @click="introductionMore()">更多</span>
-                          <span v-else @click="introductionMore1()">收起</span>
-                        </el-button>
-                      </div>
+                    <el-col :span="12" class="otherInfo textOver"> 所属领域:{{ detailInfo.field }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 合作方式:{{ detailInfo.cooperation }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 投资预算:{{ detailInfo.budget }}万元 </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 需求紧急程度:{{ detailInfo.degreeurgency }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 企业名称:{{ detailInfo.company }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 注册类型:{{ detailInfo.companytype }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 企业网址{{ detailInfo.companyweb }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 联系人:{{ detailInfo.contacts }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> QQ&微信:{{ detailInfo.qqwx }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 电子邮箱:{{ detailInfo.email }} </el-col>
+                  </el-col>
+                </el-col>
+                <el-col :span="24" class="down">
+                  <el-col :span="24" class="downInfo">
+                    <h2>技术难题&难题说明:</h2>
+                    <p>
+                      {{ detailInfo.requirementdesc }}
+                    </p>
+                  </el-col>
+                  <el-col :span="24" class="downInfo">
+                    <h2>预期技术目标描述:</h2>
+                    <p>
+                      {{ detailInfo.expect }}
+                    </p>
+                  </el-col>
+                  <el-col :span="24" class="downInfo">
+                    <h2>需求现状及应对措施:</h2>
+                    <p>
+                      {{ detailInfo.present }}
+                    </p>
+                  </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="two" v-else-if="type == '1'">
+                <el-col :span="24" class="top">
+                  <el-col :span="8" class="left">
+                    <el-carousel trigger="click" height="250px" :autoplay="false">
+                      <el-carousel-item v-for="(item, index) in detailInfo.image" :key="index">
+                        <el-image :src="item.url" style="width:100%;height:240px;"></el-image>
+                      </el-carousel-item>
+                    </el-carousel>
+                  </el-col>
+                  <el-col :span="16" class="right">
+                    <el-col :span="24" class="name textOver">
+                      {{ detailInfo.name }}
                     </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 所属领域:{{ detailInfo.field }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 合作方式:{{ detailInfo.cooperation }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 成果状态:{{ detailInfo.achievestatus }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 成果权属:{{ detailInfo.achieveown }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 成果来源:{{ detailInfo.achievesource }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 项目路演:{{ detailInfo.roadshow }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 意向价格:{{ detailInfo.intentionprice }}万元 </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 企业名称:{{ detailInfo.company }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 企业网址{{ detailInfo.companyweb }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 联系人:{{ detailInfo.contacts }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> QQ&微信:{{ detailInfo.qqwx }} </el-col>
+                    <el-col :span="12" class="otherInfo textOver"> 电子邮箱:{{ detailInfo.email }} </el-col>
                   </el-col>
-                </span>
+                </el-col>
+                <el-col :span="24" class="down">
+                  <el-col :span="24" class="downInfo">
+                    <h2>成果简介:</h2>
+                    <p>
+                      {{ detailInfo.achievebrief }}
+                    </p>
+                  </el-col>
+                  <el-col :span="24" class="downInfo">
+                    <h2>技术特点:</h2>
+                    <p>
+                      {{ detailInfo.features }}
+                    </p>
+                  </el-col>
+                  <el-col :span="24" class="downInfo">
+                    <h2>技术团队:</h2>
+                    <p>
+                      {{ detailInfo.team }}
+                    </p>
+                  </el-col>
+                  <el-col :span="24" class="downInfo">
+                    <h2>商业预期:</h2>
+                    <p>
+                      {{ detailInfo.expectations }}
+                    </p>
+                  </el-col>
+                  <el-col :span="24" class="downInfo">
+                    <h2>合作要求:</h2>
+                    <p>
+                      {{ detailInfo.present }}
+                    </p>
+                  </el-col>
+                </el-col>
               </el-col>
-              <el-col class="mainDown">
-                <el-button type="warning" style="float:left;" @click.native="back()">返回</el-button>
-                <el-button type="primary" @click="btnPhone()" v-if="this.user.uid != detailInfo.userid">对接聊天</el-button>
-                <el-button v-if="this.user.uid != detailInfo.userid" @click="btnTrade()" type="success">洽谈交易</el-button>
-                <el-dialog title="对接聊天" :visible.sync="dialogTableVisible">
-                  <el-col :span="24" class="two">
-                    <chat :room="room"></chat>
+              <el-col :span="24" class="three" v-else>
+                <el-col :span="24" class="top">
+                  <el-col :span="24" class="name">
+                    {{ detailInfo.name }}
+                  </el-col>
+                  <el-col :span="12" class="otherInfo">信息属性:{{ detailInfo.messattribute }} </el-col>
+                  <el-col :span="12" class="otherInfo">需求程度:{{ detailInfo.demand }} </el-col>
+                  <el-col :span="12" class="otherInfo">联系人:{{ detailInfo.contacts }} </el-col>
+                  <el-col :span="12" class="otherInfo">发布时间:{{ detailInfo.meta | getDate }} </el-col>
+                  <el-col :span="12" class="otherInfo">QQ&微信:{{ detailInfo.qqwx }} </el-col>
+                  <el-col :span="12" class="otherInfo">电子邮箱:{{ detailInfo.email }} </el-col>
+                </el-col>
+                <el-col :span="24" class="down">
+                  <el-col :span="24" class="downInfo">
+                    <h2>信息描述:</h2>
+                    <p>
+                      {{ detailInfo.informationdesc }}
+                    </p>
+                  </el-col>
+                  <el-col :span="24" class="downInfo">
+                    <h2>核心要素:</h2>
+                    <p>
+                      {{ detailInfo.coreelements }}
+                    </p>
+                  </el-col>
+                  <el-col :span="24" class="downInfo">
+                    <h2>价格信息:</h2>
+                    <p>
+                      {{ detailInfo.priceinfo }}
+                    </p>
                   </el-col>
-                </el-dialog>
+                  <el-col :span="24" class="downInfo">
+                    <h2>商务预期:</h2>
+                    <p>
+                      {{ detailInfo.businessexpect }}
+                    </p>
+                  </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="anniu">
+                <el-button type="primary" size="mini" v-if="this.user.uid != detailInfo.userid" @click="btnPhone()">对接聊天</el-button>
+                <el-button type="success" size="mini" v-if="this.user.uid != detailInfo.userid" @click="onSubmit()">洽谈交易</el-button>
               </el-col>
             </el-col>
           </div>
         </el-col>
       </el-col>
     </el-row>
-    <el-dialog title="产品参数" :visible.sync="dialogVisible" width="50%">
-      <el-table :data="tableData" border style="width: 100%">
-        <el-table-column prop="arg_name" label="参数名称" align="center"> </el-table-column>
-        <el-table-column prop="memo" label="参数内容" align="center"> </el-table-column>
-      </el-table>
+    <el-dialog title="对接聊天" :visible.sync="dialogTableVisible">
+      <chat :room="room"></chat>
     </el-dialog>
   </div>
 </template>
@@ -107,83 +177,54 @@
 import _ from 'lodash';
 import { mapState, createNamespacedHelpers } from 'vuex';
 import chat from './parts/chat.vue';
+const { mapActions: dock } = createNamespacedHelpers('dock');
 const { mapActions: mapProduct } = createNamespacedHelpers('marketproduct');
 const { mapActions: personalRoom } = createNamespacedHelpers('personalroom');
 const { mapActions: transaction } = createNamespacedHelpers('transaction');
-
 export default {
   name: 'dockDetail',
   props: {},
   components: {
     chat,
   },
-  data: () => ({
-    beijingPic: require('@a/live/top_3.png'),
-    display: '1',
-    detailInfo: {},
-    scope: '123',
-    introduction: '123',
-    dialogVisible: false,
-    tableData: [],
-    dialogTableVisible: false,
-    room: {},
-  }),
+  data: function() {
+    return {
+      beijingPic: require('@a/live/top_3.png'),
+      expertimage: require('@/assets/live/222.png'),
+      dock_id: '',
+      dockInfo: {},
+      //技术,产品,服务
+      detailInfo: {},
+      // 对接聊天
+      dialogTableVisible: false,
+      room: {},
+    };
+  },
   created() {
-    if (this.$route.query.id) {
-      this.searchInfo();
-    }
+    this.$set(this, `dock_id`, this.$route.query.dockid);
+    this.search();
   },
   methods: {
+    ...dock({ dockQuery: 'query', dockFetch: 'fetch' }),
     ...mapProduct(['fetch']),
     ...personalRoom(['create', 'countDelete']),
     ...transaction({ buyProduct: 'create' }),
-
-    async searchInfo() {
-      let res = await this.fetch(this.$route.query.id);
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      let res = await this.dockFetch(this.dock_id);
+      this.$set(this, `dockInfo`, res.data);
+      res = await this.fetch(this.$route.query.id);
       if (res.errcode === 0) {
+        console.log(res.data);
         this.$set(this, `detailInfo`, res.data);
       }
     },
-    argsBtn(data) {
-      this.dialogVisible = true;
-      this.$set(this, `tableData`, data);
-    },
-    // handleClose(done) {
-    //   this.$confirm('确认关闭?')
-    //     .then(_ => {
-    //       done();
-    //     })
-    //     .catch(_ => {});
-    // },
-    // 更多
-    scopeMore() {
-      this.scope = '';
-    },
-    // 收起
-    scopeMore1() {
-      this.scope = '123';
-    },
-    // 更多
-    introductionMore() {
-      this.introduction = '';
-    },
-    // 收起
-    introductionMore1() {
-      this.introduction = '123';
-    },
-    btnInfo() {
-      this.display = '1';
-    },
-    // 线下对接
+    // 对接聊天
     async btnPhone() {
       if (!this.room.id) {
         //TODO 请求房间号
         let obj = {};
         if (!this.user.uid) {
-          // this.$message.error({
-          //   dangerouslyUseHTMLString: true,
-          //   message: '<strong><a  href="/login" >游客身份无法与卖家对话,请先注册<a></strong>',
-          // });
+          // this.$message.error('游客身份无法与卖家对话,请先注册');
           this.$message({
             dangerouslyUseHTMLString: true,
             message: '<strong><a href="http://free.liaoningdoupo.com/platlive/webLogin" style="color:red;">游客身份无法与卖家对话,请先注册</a></strong>',
@@ -199,9 +240,9 @@ export default {
           return;
         } else {
           obj.seller_id = this.detailInfo.userid;
-          obj.seller_name = this.detailInfo.contact_user;
+          obj.seller_name = this.detailInfo.contacts;
         }
-
+        console.log(obj);
         let res = await this.create(obj);
         if (this.$checkRes(res)) {
           this.$set(this, `room`, res.data);
@@ -209,22 +250,21 @@ export default {
       }
       this.dialogTableVisible = true;
     },
-    async btnTrade() {
-      let form = {};
-      form.userid = this.user.uid;
-      form.username = this.user.name;
-      form.product_id = this.detailInfo.id;
-      form.product_name = this.detailInfo.name;
-      form.market_userid = this.detailInfo.userid;
-      form.market_username = this.detailInfo.contact_user;
-      form.dockid = this.$route.query.dockid;
-      form.status = '0';
+    // 洽谈交易
+    async onSubmit() {
+      let data = this.detailInfo;
+      let form = {
+        userid: this.user.uid,
+        username: this.user.name,
+        product_id: data.id,
+        product_name: data.name,
+        market_userid: data.id,
+        market_username: data.name,
+        status: '0',
+        type: '1',
+      };
       if (!this.user.uid) {
         // this.$message.error('游客身份无法与卖家对话,请先注册');
-        // this.$message.error({
-        //   dangerouslyUseHTMLString: true,
-        //   message: '<strong>游客身份无法与卖家对话,请先注册<a  href="/login" >注册<a> </strong>',
-        // });
         this.$message({
           dangerouslyUseHTMLString: true,
           message: '<strong><a href="http://free.liaoningdoupo.com/platlive/webLogin" style="color:red;">游客身份无法与卖家对话,请先注册</a></strong>',
@@ -232,24 +272,31 @@ export default {
         });
         return;
       } else {
-        form.create_userid = this.$route.query.user_id;
         let res = await this.buyProduct(form);
         this.$checkRes(res, '购买申请成功', res.errmsg || '购买申请失败');
       }
     },
-    // killTalk() {
-    //   this.$alert('您确认对话已经可以结束了吗?');
-    //   let room_id = _.get(this.room, 'id');
-    //   if (room_id) {
-    //     this.countDelete(room_id);
-    //   }
-    // },
+    // 返回
     back() {
       history.back();
     },
   },
+  // 过滤时间
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
   computed: {
     ...mapState(['user']),
+    type() {
+      return this.$route.query.type;
+    },
     pageTitle() {
       return `${this.$route.meta.title}`;
     },
@@ -257,13 +304,6 @@ export default {
   metaInfo() {
     return { title: this.$route.meta.title };
   },
-  // beforeDestroy() {
-  //   this.killTalk();
-  // },
-  beforeRouteLeave(to, from, next) {
-    // this.killTalk();
-    next();
-  },
 };
 </script>
 
@@ -272,23 +312,6 @@ export default {
   width: 1200px;
   margin: 0 auto;
 }
-p {
-  padding: 0;
-  margin: 0;
-}
-.textOver {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-// .textOver{}
-// 	overflow: hidden;
-// 	text-overflow: ellipsis;
-// 	-webkit-line-clamp: 3;
-// 	word-break: break-all;
-// 	display: -webkit-box;
-//   -webkit-box-orient: vertical;
-//   }
 .style {
   height: 100vh;
 }
@@ -296,7 +319,7 @@ p {
   position: relative;
   top: -450px;
 }
-.style .top {
+.style .topTitle {
   position: relative;
   top: 0;
   width: 100%;
@@ -305,11 +328,11 @@ p {
   height: 172px;
   margin: 0 0 20px 0;
 }
-.style .top p:first-child {
+.style .topTitle p:first-child {
   font-size: 50px;
   color: #fff;
 }
-.style .top p:last-child {
+.style .topTitle p:last-child {
   font-size: 30px;
   color: #fff;
   position: absolute;
@@ -321,118 +344,69 @@ p {
   border: 1px solid red;
   background: #fff;
   padding: 30px 20px;
-  .mainTop {
-    min-height: 550px;
-    .one {
-      min-height: 550px;
-      .oneLeft {
-        height: 210px;
-        overflow: hidden;
+  .btn {
+    text-align: right;
+  }
+  .top {
+    height: 250px;
+    overflow: hidden;
+    border-bottom: 1px dashed #ccc;
+    // .left {
+    // }
+    .right {
+      padding: 0 10px;
+      .name {
+        font-size: 18px;
+        font-weight: bold;
+        padding: 10px 0;
       }
-      .oneRight {
-        padding: 0 15px;
-        p {
-          font-size: 16px;
-          padding: 0 0 20px 0;
-          span {
-            display: inline-block;
-            width: 50%;
-          }
-        }
-        p:first-child {
-          font-size: 20px;
-          font-weight: bold;
-          padding: 20px 0;
-        }
-        // p:nth-child(2) span:last-child {
-        //   color: red;
-        //   font-weight: bold;
-        // }
+      .otherInfo {
+        font-size: 16px;
+        padding: 8px 0;
       }
-      .oneDown {
-        border-top: 1px dashed #ccc;
-        margin: 30px 0 0 0;
-        padding: 30px 0 0 0;
-        div {
-          padding: 0 0 15px 0;
-          p {
-            font-size: 18px;
-          }
-          p:first-child {
-            color: #333;
-            font-weight: bold;
-            padding: 0 0 10px 0;
-          }
-        }
-        div:nth-child(2) p span:last-child {
-          color: #409eff;
-          padding: 0 10px;
-        }
-        div:nth-child(2) p span:last-child:hover {
-          cursor: pointer;
-        }
-        div:nth-child(3) .moreScope {
-          overflow: hidden;
-          text-overflow: ellipsis;
-          -webkit-line-clamp: 6;
-          word-break: break-all;
-          display: -webkit-box;
-          -webkit-box-orient: vertical;
-        }
-        div:nth-child(3) .moreScope1 {
-          overflow: none;
-        }
-        div:nth-child(3) .el-button {
-          float: right;
-        }
-        div:last-child .introduction {
-          overflow: hidden;
-          text-overflow: ellipsis;
-          -webkit-line-clamp: 4;
-          word-break: break-all;
-          display: -webkit-box;
-          -webkit-box-orient: vertical;
-        }
-        div:last-child .introduction1 {
-          overflow: none;
-        }
-        div:last-child .el-button {
-          float: right;
-        }
+    }
+  }
+  .down {
+    .downInfo {
+      padding: 10px 0;
+      p {
+        font-size: 16px;
+        text-indent: 2rem;
       }
     }
   }
-  .mainDown {
-    height: 50px;
+  .anniu {
     text-align: center;
-    /deep/.el-dialog__body {
-      padding: 15px 20px;
-      color: #606266;
-      font-size: 14px;
-      height: 460px;
-      word-break: break-all;
-    }
   }
 }
-
-.marketPublish {
-  position: fixed;
-  background: #0279d5;
-  width: 100px;
-  height: 100px;
-  z-index: 999;
-  left: 13%;
-  top: 49%;
-  border-radius: 20px;
-  box-shadow: 2px 2px 2px #055c9f;
-  text-align: center;
-  line-height: 100px;
-  font-size: 20px;
-  color: #fff;
-  font-weight: bold;
+.style .main .two .top .right .otherInfo {
+  padding: 5px 0;
 }
-.marketPublish:hover {
-  background: #f60;
-  cursor: pointer;
+.style .main {
+  .three {
+    .top {
+      height: 160px;
+      overflow: hidden;
+      border-bottom: 1px dashed #ccc;
+      .name {
+        font-size: 18px;
+        font-weight: bold;
+        padding: 10px 0;
+      }
+      .otherInfo {
+        font-size: 16px;
+        padding: 5px 0;
+      }
+    }
+    .down {
+      .downInfo {
+        padding: 10px 0;
+        p {
+          font-size: 16px;
+          text-indent: 2rem;
+        }
+      }
+    }
+  }
 }
 </style>

+ 135 - 285
src/views/hall/dock/zhanjiaduijie.vue

@@ -1,95 +1,83 @@
 <template>
-  <div id="dockDetail">
+  <div id="zhanjiaduijie">
     <el-row>
       <el-col :span="24" class="style">
         <el-image :src="beijingPic"></el-image>
         <el-col :span="24" class="info">
           <div class="w_1200">
-            <el-col :span="24" class="top">
-              <p>吉林省计算中心对接直播大厅</p>
-              <p>主办方:吉林省计算中心</p>
+            <el-col :span="24" class="topTitle">
+              <p>{{ dockInfo.title }}</p>
+              <p>主办方:{{ dockInfo.sponsor }}</p>
             </el-col>
             <el-col :span="24" class="main">
-              <el-col :span="24" class="mainTop">
-                <span v-if="display === '1'">
-                  <el-col :span="24" class="one">
-                    <el-col :span="7" class="oneLeft">
-                      <el-image :src="detailInfo.img_path" style="width: 100%;height: 210px;"> </el-image>
-                    </el-col>
-                    <el-col :span="17" class="oneRight">
-                      <p class="textOver">
-                        {{ detailInfo.name }}
-                      </p>
-                      <p>
-                        <span>性别:{{ detailInfo.gender || '暂无' }}</span>
-                        <span>出生年月:{{ detailInfo.birthday || '暂无' }}</span>
-                      </p>
-                      <p>
-                        <span> 毕业院校:{{ detailInfo.school }} </span>
-                        <span>专业:{{ detailInfo.major || '暂无' }}</span>
-                      </p>
-                      <p>
-                        <span>学历:{{ detailInfo.xl || '暂无' }}</span>
-                        <span>学位:{{ detailInfo.xw || '暂无' }}</span>
-                      </p>
-                      <p>
-                        <span>电话号码:{{ detailInfo.phone || '暂无' }}</span>
-                        <span>邮箱:{{ detailInfo.email || '暂无' }}</span>
-                      </p>
-                    </el-col>
-                    <el-col :span="24" class="oneDown">
-                      <div>
-                        <p>身份证号:{{ detailInfo.cardnumber || '暂无' }}</p>
-                        <p>地址:{{ detailInfo.addr || '暂无' }}</p>
-                        <p>职称级别:{{ detailInfo.level || '暂无' }}</p>
-                        <p>职称名称:{{ detailInfo.levelname || '暂无' }}</p>
-                        <p>职务:{{ detailInfo.position || '暂无' }}</p>
-                        <p>项目:{{ detailInfo.project || '暂无' }}</p>
-                        <p>学术成就:{{ detailInfo.academic || '暂无' }}</p>
-                        <p>论文:{{ detailInfo.paper || '暂无' }}</p>
-                        <p>备注:{{ detailInfo.remark || '暂无' }}</p>
-                        <p>从事专业:{{ detailInfo.professional || '暂无' }}</p>
-                      </div>
-                      <div>
-                        <p>工作简介:</p>
-                        <p class="resume" v-if="resume != ''">{{ detailInfo.resume || '暂无' }}</p>
-                        <p class="resume1" v-else>{{ detailInfo.resume || '暂无' }}</p>
-                        <el-button size="mini" v-if="detailInfo.resume != null && detailInfo.resume.length > 288">
-                          <span v-if="resume != ''" @click="resumeMore()">更多</span>
-                          <span v-else @click="resumeMore1()">收起</span>
-                        </el-button>
-                      </div>
-                    </el-col>
-                  </el-col>
-                </span>
-                <!-- <span v-if="display === '2'">
-                  <el-col :span="24" class="two">
-                    <chat :room="room"></chat>
-                  </el-col>
-                </span> -->
+              <el-col :span="24" class="btn">
+                <el-button type="primary" size="mini" @click="back()">返回</el-button>
               </el-col>
-              <el-col class="mainDown">
-                <!-- <el-button @click="btnInfo()" type="info">项目详情</el-button> -->
-                <!-- <el-button v-if="this.user.uid != detailInfo.userid" @click="btnPhone()" type="primary">对接聊天</el-button> -->
-                <el-button type="warning" style="float:left;" @click.native="back()">返回</el-button>
-                <el-button type="primary" @click="btnPhone()" v-if="this.user.uid != detailInfo.userid">对接聊天</el-button>
-                <el-button v-if="this.user.uid != detailInfo.userid" @click="btnTrade()" type="success">洽谈交易</el-button>
-                <el-dialog title="对接聊天" :visible.sync="dialogTableVisible">
-                  <el-col :span="24" class="two">
-                    <chat :room="room"></chat>
+              <el-col :span="24" class="top">
+                <el-col :span="8" class="left">
+                  <el-image v-if="detailInfo.expertimage != ''" :src="detailInfo.expertimage" style="width:100%;height:220px;"></el-image>
+                  <el-image v-else :src="expertimage" style="width:100%;height:220px;"></el-image>
+                </el-col>
+                <el-col :span="16" class="right">
+                  <el-col :span="24" class="name textOver">
+                    {{ detailInfo.name }}
                   </el-col>
-                </el-dialog>
+                  <el-col :span="12" class="otherInfo textOver"> 毕业院校:{{ detailInfo.school }} </el-col>
+                  <el-col :span="12" class="otherInfo textOver"> 最高学历:{{ detailInfo.education }} </el-col>
+                  <el-col :span="12" class="otherInfo textOver"> 出生日期:{{ detailInfo.birthDate }} </el-col>
+                  <el-col :span="12" class="otherInfo textOver"> 工作单位:{{ detailInfo.company }} </el-col>
+                  <el-col :span="12" class="otherInfo textOver"> QQ&微信:{{ detailInfo.qqwx }} </el-col>
+                  <el-col :span="12" class="otherInfo textOver"> 电子邮箱:{{ detailInfo.email }} </el-col>
+                  <el-col :span="12" class="otherInfo textOver"> 职务职称:{{ detailInfo.zwzc }} </el-col>
+                  <el-col :span="12" class="otherInfo textOver"> 擅长领域:{{ detailInfo.expertise }} </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="down">
+                <el-col :span="24" class="downInfo">
+                  <h2>工作经历:</h2>
+                  <p>
+                    {{ detailInfo.workexperience || '暂无' }}
+                  </p>
+                </el-col>
+                <el-col :span="24" class="downInfo">
+                  <h2>科研综述:</h2>
+                  <p>
+                    {{ detailInfo.scientific || '暂无' }}
+                  </p>
+                </el-col>
+                <el-col :span="24" class="downInfo">
+                  <h2>承担项目:</h2>
+                  <p>
+                    {{ detailInfo.undertakingproject || '暂无' }}
+                  </p>
+                </el-col>
+                <el-col :span="24" class="downInfo">
+                  <h2>科技奖励:</h2>
+                  <p>
+                    {{ detailInfo.scienceaward || '暂无' }}
+                  </p>
+                </el-col>
+                <el-col :span="24" class="downInfo">
+                  <h2>社会任职:</h2>
+                  <p>
+                    {{ detailInfo.social || '暂无' }}
+                  </p>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="anniu">
+                <!-- <el-button type="primary" size="mini" v-if="this.user.uid != detailInfo.userid" @click="btnPhone()">对接聊天</el-button>
+                <el-button type="success" size="mini" v-if="this.user.uid != detailInfo.userid" @click="onSubmit()">洽谈交易</el-button> -->
+
+                <el-button type="primary" size="mini" v-if="this.user.uid != detailInfo.userid" @click="btnPhone()">对接聊天</el-button>
+                <el-button type="success" size="mini" v-if="this.user.uid != detailInfo.userid" @click="onSubmit()">洽谈交易</el-button>
               </el-col>
             </el-col>
           </div>
         </el-col>
       </el-col>
     </el-row>
-    <el-dialog title="产品参数" :visible.sync="dialogVisible" width="50%">
-      <el-table :data="tableData" border style="width: 100%">
-        <el-table-column prop="arg_name" label="参数名称" align="center"> </el-table-column>
-        <el-table-column prop="memo" label="参数内容" align="center"> </el-table-column>
-      </el-table>
+    <el-dialog title="对接聊天" :visible.sync="dialogTableVisible">
+      <chat :room="room"></chat>
     </el-dialog>
   </div>
 </template>
@@ -98,85 +86,56 @@
 import _ from 'lodash';
 import { mapState, createNamespacedHelpers } from 'vuex';
 import chat from './parts/chat.vue';
+const { mapActions: dock } = createNamespacedHelpers('dock');
 const { mapActions: expertsuser } = createNamespacedHelpers('expertsuser');
 const { mapActions: personalRoom } = createNamespacedHelpers('personalroom');
 const { mapActions: transaction } = createNamespacedHelpers('transaction');
 export default {
-  name: 'dockDetail',
+  name: 'zhanjiaduijie',
   props: {},
   components: {
     chat,
   },
-  data: () => ({
-    beijingPic: require('@a/live/top_3.png'),
-    display: '1',
-    detailInfo: {},
-    scope: '123',
-    resume: '123',
-    dialogVisible: false,
-    tableData: [],
-    dialogTableVisible: false,
-    room: {},
-  }),
+  data: function() {
+    return {
+      beijingPic: require('@a/live/top_3.png'),
+      expertimage: require('@/assets/live/222.png'),
+      dock_id: '',
+      dockInfo: {},
+      // 专家详情
+      detailInfo: {},
+      // 对接聊天
+      dialogTableVisible: false,
+      room: {},
+    };
+  },
   created() {
-    if (this.$route.query.id) {
-      this.searchInfo();
-    }
+    this.$set(this, `dock_id`, this.$route.query.dockid);
+    this.search();
   },
   methods: {
+    ...dock({ dockQuery: 'query', dockFetch: 'fetch' }),
     ...expertsuser(['fetch']),
     ...personalRoom(['create', 'countDelete']),
     ...transaction({ buyProduct: 'create' }),
-    async searchInfo() {
-      let res = await this.fetch(this.$route.query.id);
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      let res = await this.dockFetch(this.dock_id);
+      this.$set(this, `dockInfo`, res.data);
+      res = await this.fetch(this.$route.query.id);
       if (res.errcode === 0) {
         this.$set(this, `detailInfo`, res.data);
       }
     },
-    argsBtn(data) {
-      this.dialogVisible = true;
-      this.$set(this, `tableData`, data);
-    },
-    // handleClose(done) {
-    //   this.$confirm('确认关闭?')
-    //     .then(_ => {
-    //       done();
-    //     })
-    //     .catch(_ => {});
-    // },
-    // 更多
-    scopeMore() {
-      this.scope = '';
-    },
-    // 收起
-    scopeMore1() {
-      this.scope = '123';
-    },
-    // 更多
-    resumeMore() {
-      this.resume = '';
-    },
-    // 收起
-    resumeMore1() {
-      this.resume = '123';
-    },
-    btnInfo() {
-      this.display = '1';
-    },
-    // 线下对接
+    // 对接聊天
     async btnPhone() {
       if (!this.room.id) {
         //TODO 请求房间号
         let obj = {};
         if (!this.user.uid) {
-          // this.$message.error({
-          //   dangerouslyUseHTMLString: true,
-          //   message: '<strong>游客身份无法与卖家对话,请先注册<a  href="/login" >注册<a> </strong>',
-          // });
+          // this.$message.error('游客身份无法与卖家对话,请先注册');
           this.$message({
             dangerouslyUseHTMLString: true,
-            message:
-              '<strong><a href="http://free.liaoningdoupo.com/platlive/webLogin" style="color:red;text-decoration:none;">游客身份无法与卖家对话,请先注册</a></strong>',
+            message: '<strong><a href="http://free.liaoningdoupo.com/platlive/webLogin" style="color:red;">游客身份无法与卖家对话,请先注册</a></strong>',
             type: 'error',
           });
           return;
@@ -191,7 +150,6 @@ export default {
           obj.seller_id = this.detailInfo.userid;
           obj.seller_name = this.detailInfo.name;
         }
-
         let res = await this.create(obj);
         if (this.$checkRes(res)) {
           this.$set(this, `room`, res.data);
@@ -199,25 +157,24 @@ export default {
       }
       this.dialogTableVisible = true;
     },
-    async btnTrade() {
-      let form = {};
-      form.userid = this.user.uid;
-      form.username = this.user.name;
-      form.product_id = this.detailInfo.id;
-      form.product_name = this.detailInfo.name;
-      form.market_userid = this.detailInfo.id;
-      form.market_username = this.detailInfo.name;
-      form.status = '0';
-      form.type = '1';
+    // 洽谈交易
+    async onSubmit() {
+      let data = this.detailInfo;
+      let form = {
+        userid: this.user.uid,
+        username: this.user.name,
+        product_id: data.id,
+        product_name: data.name,
+        market_userid: data.id,
+        market_username: data.name,
+        status: '0',
+        type: '1',
+      };
       if (!this.user.uid) {
-        // this.$message.error({
-        //   dangerouslyUseHTMLString: true,
-        //   message: '<strong>游客身份无法与卖家对话,请先注册<a  href="/login" >注册<a> </strong>',
-        // });
+        // this.$message.error('游客身份无法与卖家对话,请先注册');
         this.$message({
           dangerouslyUseHTMLString: true,
-          message:
-            '<strong><a href="http://free.liaoningdoupo.com/platlive/webLogin" style="color:red;text-decoration:none;">游客身份无法与卖家对话,请先注册</a></strong>',
+          message: '<strong><a href="http://free.liaoningdoupo.com/platlive/webLogin" style="color:red;">游客身份无法与卖家对话,请先注册</a></strong>',
           type: 'error',
         });
         return;
@@ -226,13 +183,7 @@ export default {
         this.$checkRes(res, '购买申请成功', res.errmsg || '购买申请失败');
       }
     },
-    // killTalk() {
-    //   this.$alert('您确认对话已经可以结束了吗?');
-    //   let room_id = _.get(this.room, 'id');
-    //   if (room_id) {
-    //     this.countDelete(room_id);
-    //   }
-    // },
+    // 返回
     back() {
       history.back();
     },
@@ -246,13 +197,6 @@ export default {
   metaInfo() {
     return { title: this.$route.meta.title };
   },
-  // beforeDestroy() {
-  //   this.killTalk();
-  // },
-  beforeRouteLeave(to, from, next) {
-    // this.killTalk();
-    next();
-  },
 };
 </script>
 
@@ -261,23 +205,6 @@ export default {
   width: 1200px;
   margin: 0 auto;
 }
-p {
-  padding: 0;
-  margin: 0;
-}
-.textOver {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-// .textOver{}
-// 	overflow: hidden;
-// 	text-overflow: ellipsis;
-// 	-webkit-line-clamp: 3;
-// 	word-break: break-all;
-// 	display: -webkit-box;
-//   -webkit-box-orient: vertical;
-//   }
 .style {
   height: 100vh;
 }
@@ -285,7 +212,7 @@ p {
   position: relative;
   top: -450px;
 }
-.style .top {
+.style .topTitle {
   position: relative;
   top: 0;
   width: 100%;
@@ -294,11 +221,11 @@ p {
   height: 172px;
   margin: 0 0 20px 0;
 }
-.style .top p:first-child {
+.style .topTitle p:first-child {
   font-size: 50px;
   color: #fff;
 }
-.style .top p:last-child {
+.style .topTitle p:last-child {
   font-size: 30px;
   color: #fff;
   position: absolute;
@@ -310,116 +237,39 @@ p {
   border: 1px solid red;
   background: #fff;
   padding: 30px 20px;
-  .mainTop {
-    min-height: 550px;
-    .one {
-      min-height: 550px;
-      .oneLeft {
-        height: 210px;
-        overflow: hidden;
+  .btn {
+    text-align: right;
+  }
+  .top {
+    height: 230px;
+    overflow: hidden;
+    border-bottom: 1px dashed #ccc;
+    // .left {
+    // }
+    .right {
+      padding: 0 10px;
+      .name {
+        font-size: 18px;
+        font-weight: bold;
+        padding: 10px 0;
       }
-      .oneRight {
-        padding: 0 15px;
-        p {
-          font-size: 16px;
-          padding: 0px 0 11px 0;
-          span {
-            display: inline-block;
-            width: 50%;
-          }
-        }
-        p:first-child {
-          font-size: 20px;
-          font-weight: bold;
-          padding: 20px 0;
-          color: red;
-        }
-        // p:nth-child(2) span:last-child {
-        //   color: red;
-        //   font-weight: bold;
-        // }
+      .otherInfo {
+        font-size: 16px;
+        padding: 10px 0;
       }
-      .oneDown {
-        border-top: 1px dashed #ccc;
-        margin: 30px 0 0 0;
-        padding: 30px 0 0 0;
-        div {
-          padding: 0 0 15px 0;
-          p {
-            font-size: 16px;
-            padding: 0 0 8px 0;
-          }
-        }
-        div:nth-child(2) p span:last-child {
-          color: #409eff;
-          padding: 0 10px;
-        }
-        div:nth-child(2) p span:last-child:hover {
-          cursor: pointer;
-        }
-        div:nth-child(3) .moreScope {
-          overflow: hidden;
-          text-overflow: ellipsis;
-          -webkit-line-clamp: 6;
-          word-break: break-all;
-          display: -webkit-box;
-          -webkit-box-orient: vertical;
-        }
-        div:nth-child(3) .moreScope1 {
-          overflow: none;
-        }
-        div:nth-child(3) .el-button {
-          float: right;
-        }
-        div:last-child .resume {
-          overflow: hidden;
-          text-overflow: ellipsis;
-          -webkit-line-clamp: 4;
-          word-break: break-all;
-          display: -webkit-box;
-          -webkit-box-orient: vertical;
-          padding: 0;
-        }
-        div:last-child .resume1 {
-          overflow: none;
-        }
-        div:last-child .el-button {
-          float: right;
-        }
+    }
+  }
+  .down {
+    .downInfo {
+      padding: 10px 0;
+      p {
+        font-size: 16px;
+        text-indent: 2rem;
       }
     }
   }
-  .mainDown {
-    height: 50px;
+  .anniu {
     text-align: center;
-    /deep/.el-dialog__body {
-      padding: 15px 20px;
-      color: #606266;
-      font-size: 14px;
-      height: 660px;
-      word-break: break-all;
-    }
   }
 }
-
-.marketPublish {
-  position: fixed;
-  background: #0279d5;
-  width: 100px;
-  height: 100px;
-  z-index: 999;
-  left: 13%;
-  top: 49%;
-  border-radius: 20px;
-  box-shadow: 2px 2px 2px #055c9f;
-  text-align: center;
-  line-height: 100px;
-  font-size: 20px;
-  color: #fff;
-  font-weight: bold;
-}
-.marketPublish:hover {
-  background: #f60;
-  cursor: pointer;
-}
 </style>

+ 13 - 7
src/views/hall/productList/expertList.vue

@@ -6,8 +6,8 @@
         <el-col :span="24" class="info">
           <div class="w_1200">
             <el-col :span="24" class="top">
-              <p>吉林省计算中心对接直播大厅</p>
-              <p>主办方:吉林省计算中心</p>
+              <p>{{ dockInfo.title }}</p>
+              <p>主办方:{{ dockInfo.sponsor }}</p>
             </el-col>
             <el-col :span="24" class="main">
               <el-col :span="24" class="mainTop">
@@ -17,16 +17,16 @@
                 <el-col :span="3" class="back" @click.native="back">返回活动首页></el-col>
               </el-col>
               <el-col :span="24" class="maintitle"><el-col :span="2" class="title">全部</el-col></el-col>
-
               <el-col :span="24">
                 <el-col :span="24" v-for="(item, index) in tableData" :key="index" class="list">
                   <el-col :span="24"
                     ><el-col :span="22">{{ item.name }}</el-col
-                    ><el-col :span="2"> <el-button type="primary" @click="zhuanjiaduijies(item)" size="mini">对接</el-button> </el-col>
+                    ><el-col :span="2" style="text-align: right;">
+                      <el-button type="success" @click="zhuanjiaduijies(item)" size="mini">对接</el-button>
+                    </el-col>
                   </el-col>
                 </el-col>
               </el-col>
-
               <el-col :span="24">
                 <page v-bind="$attrs" position="center" :limit="limit" :total="total" @query="search"></page>
               </el-col>
@@ -42,6 +42,7 @@
 import _ from 'lodash';
 import page from '@/components/pagination.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: dock } = createNamespacedHelpers('dock');
 const { mapActions: expertsuser } = createNamespacedHelpers('expertsuser');
 export default {
   name: 'dockDetail',
@@ -59,15 +60,20 @@ export default {
     room: {},
     limit: 10,
     total: 0,
+    dock_id: '',
+    dockInfo: {},
   }),
   created() {
+    this.$set(this, `dock_id`, this.$route.query.dockid);
     this.search();
   },
   methods: {
+    ...dock({ dockQuery: 'query', dockFetch: 'fetch' }),
     ...expertsuser({ expertQuery: 'query' }),
-
     async search({ skip = 0, limit = 10, ...info } = {}) {
-      const res = await this.expertQuery({ skip, limit, ...info });
+      let res = await this.dockFetch(this.dock_id);
+      this.$set(this, `dockInfo`, res.data);
+      res = await this.expertQuery({ skip, limit, ...info });
       if (this.$checkRes(res)) {
         this.$set(this, `tableData`, res.data);
         this.$set(this, `total`, res.total);

+ 7 - 5
src/views/hall/productList/technologyList.vue

@@ -6,8 +6,8 @@
         <el-col :span="24" class="info">
           <div class="w_1200">
             <el-col :span="24" class="top">
-              <p>吉林省计算中心对接直播大厅</p>
-              <p>主办方:吉林省计算中心</p>
+              <p>{{ dockInfo.title }}</p>
+              <p>主办方:{{ dockInfo.sponsor }}</p>
             </el-col>
             <el-col :span="24" class="main">
               <el-col :span="24" class="maintop">
@@ -61,6 +61,7 @@ export default {
     productList: [],
     total: 0,
     dock_id: '',
+    dockInfo: {},
   }),
   created() {
     this.$set(this, `dock_id`, this.$route.query.dockid);
@@ -70,19 +71,20 @@ export default {
     ...dock({ dockQuery: 'query', dockFetch: 'fetch' }),
     async search() {
       let res = await this.dockFetch(this.dock_id);
+      this.$set(this, `dockInfo`, res.data);
       if (this.$checkRes(res)) {
         let productList = res.data.apply.map(item => item.goodsList);
         productList = _.flattenDeep(productList);
         if (this.column_name == '技术') {
-          var jishuList = productList.filter(item => item.totaltype === '0');
+          var jishuList = productList.filter(item => item.type === '0');
           this.$set(this, `applyList`, jishuList);
           this.$set(this, `total`, jishuList.length);
         } else if (this.column_name == '产品') {
-          var jishuList = productList.filter(item => item.totaltype === '1');
+          var jishuList = productList.filter(item => item.type === '1');
           this.$set(this, `applyList`, jishuList);
           this.$set(this, `total`, jishuList.length);
         } else if (this.column_name == '服务') {
-          var jishuList = productList.filter(item => item.totaltype === '2');
+          var jishuList = productList.filter(item => item.type === '2');
           this.$set(this, `applyList`, jishuList);
           this.$set(this, `total`, jishuList.length);
         }