Selaa lähdekoodia

展会详情旧版备份

guhongwei 3 vuotta sitten
vanhempi
commit
30404e5418

+ 0 - 154
src/views/achieveLive - 副本/apply.vue

@@ -1,154 +0,0 @@
-<template>
-  <div id="apply">
-    <el-row>
-      <el-col :span="24" class="main">
-        <div class="w_1200">
-          <el-col :span="24" class="one">
-            <el-col :span="3">
-              <el-image :src="img_path" style="width:105px;height:105px;"></el-image>
-            </el-col>
-            <el-col :span="20">
-              <p>温馨提示:</p>
-              <p>1、为了保证您的信息能顺利通过我们的审核,请将信息的真实情况尽可能全面的发布出来!</p>
-              <p>2、根据我们的长期跟踪统计,信息完整度越高,越容易获得目标客户的关注!</p>
-              <p>3、信息完整度越高,将在我们的平台搜索结果排序靠前、获得推荐机会,以及享受增值服务试用机会!</p>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="two">
-            <el-form :model="form" :rules="rules" ref="form" label-width="100px">
-              <el-form-item label="用户名称" prop="name">
-                <el-input v-model="form.name"></el-input>
-              </el-form-item>
-              <el-form-item label="联系电话" prop="phone">
-                <el-input v-model="form.phone"></el-input>
-              </el-form-item>
-              <el-form-item label="申请时间" prop="create_time">
-                <el-date-picker v-model="form.create_time" placeholder="请选择" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"> </el-date-picker>
-              </el-form-item>
-              <el-form-item label="参展项目" prop="productList">
-                <el-select v-model="form.productList" value-key="id" clearable filterable multiple collapse-tags placeholder="请选择选择产品">
-                  <el-option v-for="(item, index) in goodsList" :key="index" :label="`${item.name}(${getType(item.type)})`" :value="item"> </el-option>
-                </el-select>
-              </el-form-item>
-              <el-col :span="24" class="btn">
-                <el-button type="danger" size="mini" @click="resetBtn">取消申请</el-button>
-                <el-button type="success" size="mini" @click="onSubmit('form')">提交申请</el-button>
-              </el-col>
-            </el-form>
-          </el-col>
-        </div>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: product } = createNamespacedHelpers('product');
-const { mapActions: dockUser } = createNamespacedHelpers('dockUser');
-
-export default {
-  name: 'apply',
-  props: {},
-  components: {},
-  data: function() {
-    return {
-      img_path: require('@common/src/assets/product.png'),
-      form: {},
-      rules: {
-        productList: [],
-      },
-      // 企业成果
-      goodsList: [],
-    };
-  },
-  created() {
-    if (this.user) this.search();
-  },
-  methods: {
-    ...product(['query']),
-    ...dockUser(['create']),
-    async search() {
-      let data = { name: this.user.name, phone: this.user.phone, user_id: this.user.id, dock_id: this.dock_id };
-      this.$set(this, `form`, data);
-      let res = await this.query({ user_id: this.user.id, status: '2' });
-      if (this.$checkRes(res)) {
-        this.$set(this, `goodsList`, res.data);
-      }
-    },
-
-    // 提交申请
-    onSubmit(formName) {
-      this.$refs[formName].validate(async valid => {
-        if (valid) {
-          let data = this.form;
-          let res = await this.create(data);
-          if (this.$checkRes(res)) {
-            this.$message({
-              message: '申请参展成功!',
-              type: 'success',
-            });
-            this.resetBtn();
-          }
-        } else {
-          console.log('error submit!!');
-          return false;
-        }
-      });
-    },
-    // 整理类型
-    getType(type) {
-      if (type == '0') return '科技需求';
-      else if (type == '1') return '技术成果';
-      else if (type == '2') return '商务服务';
-    },
-    // 取消申请
-    resetBtn() {
-      this.$router.push({ path: '/live/index' });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    dock_id() {
-      return this.$route.query.id;
-    },
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  min-height: 557px;
-  padding: 15px 0;
-  .one {
-    background: #f3faff;
-    padding: 15px;
-    border: 1px solid #ccc;
-    margin: 0 0 15px 0;
-    p {
-      font-size: 16px;
-    }
-  }
-  .two {
-    .el-date-editor {
-      width: 100%;
-    }
-    .el-select {
-      width: 100%;
-    }
-    .btn {
-      text-align: center;
-    }
-  }
-}
-</style>

+ 0 - 129
src/views/achieveLive - 副本/before.vue

@@ -1,129 +0,0 @@
-<template>
-  <div id="before">
-    <el-row>
-      <el-col :span="24" class="style">
-        <el-col :span="24" class="top">
-          <el-col :span="24" class="left">
-            中科在线(长春)
-          </el-col>
-          <el-col :span="24" class="right">
-            直播大厅
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="main">
-          <div class="w_1200">
-            <el-col :span="24" class="title">{{ dockInfo.title }}</el-col>
-            <el-col :span="24" class="txt">主办方:{{ dockInfo.sponsor }}</el-col>
-            <el-col :span="24" class="txt">承办方:{{ dockInfo.organizer }}</el-col>
-            <el-col :span="24" class="txt">技术支持:长春市福瑞科技有限公司</el-col>
-            <el-col :span="24" class="btn">
-              <el-button @click="dockBtn(dockInfo)">进入活动现场<i class="iconfont icon-bofang"></i></el-button>
-            </el-col>
-          </div>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-export default {
-  name: 'before',
-  props: {},
-  components: {},
-  data: function() {
-    return {
-      dockInfo: {},
-    };
-  },
-  created() {
-    this.search();
-  },
-  methods: {
-    ...dock(['fetch']),
-    async search() {
-      let res = await this.fetch(this.id);
-      if (this.$checkRes(res)) {
-        this.$set(this, `dockInfo`, res.data);
-      }
-    },
-    dockBtn(data) {
-      if (data.room_id == '1007') {
-        this.$router.push({ path: '/halltwo/directTwo', query: { id: data.id } });
-      } else {
-        this.$router.push({ path: '/achieveLive/detail', query: { id: data.id } });
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-    pageTitle() {
-      return `${this.$route.meta.title}`;
-    },
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.w_1200 {
-  width: 1200px;
-  margin: 0 auto;
-}
-.style {
-  background-image: url('~@common/src/assets/directBack.png');
-  height: 100vh;
-  background-size: 100% 100%;
-  background-repeat: no-repeat;
-  .top {
-    .left {
-      height: 40px;
-      line-height: 40px;
-      padding: 0 15px;
-      font-size: 20px;
-      color: #fffa93;
-    }
-    .right {
-      text-align: center;
-      color: #fffa93;
-      font-size: 50px;
-      text-shadow: 2px 2px 5px #000;
-    }
-  }
-  .main {
-    text-align: center;
-    margin: 100px 0 0 0;
-    .title {
-      font-size: 40px;
-      color: #fffa93;
-      font-weight: bold;
-      font-family: monospace;
-      padding: 0 0 20px 0;
-      height: 100px;
-    }
-    .txt {
-      font-size: 25px;
-      color: #fffa93;
-      padding: 0 0 10px 0;
-    }
-    /deep/.btn {
-      margin: 50px 0 0 0;
-      .el-button {
-        background: linear-gradient(to bottom, #ffbd00 0%, #fd5a00 100%);
-        color: #fff;
-        border: none;
-        border-radius: 25px;
-        padding: 15px 40px;
-        font-size: 20px;
-      }
-    }
-  }
-}
-</style>

+ 0 - 182
src/views/achieveLive - 副本/detail.vue

@@ -1,182 +0,0 @@
-<template>
-  <div id="detail">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="top">
-          <div class="w_1200">
-            <topInfo :info="liveInfo"></topInfo>
-          </div>
-        </el-col>
-        <el-col :span="24" class="info">
-          <div class="w_1200">
-            <el-col :span="24" class="one">
-              <el-col :span="12" class="left">
-                <videoData :info="liveInfo"></videoData>
-              </el-col>
-              <el-col :span="12" class="right">
-                <imgtxtData></imgtxtData>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="two">
-              <productData></productData>
-            </el-col>
-            <el-col :span="24" class="thr">
-              <expertData></expertData>
-            </el-col>
-            <el-col :span="24" class="four">
-              <el-image :src="fourImg"> </el-image>
-            </el-col>
-            <el-col :span="24" class="five">
-              <el-col :span="8" class="left">
-                <guestData></guestData>
-              </el-col>
-              <el-col :span="8" class="cen">
-                <projectData></projectData>
-              </el-col>
-              <el-col :span="8" class="right">
-                <chatData></chatData>
-              </el-col>
-            </el-col>
-          </div>
-        </el-col>
-        <el-col :span="24" class="foot">
-          <foot></foot>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import foot from '@common/src/components/common/foot.vue';
-import topInfo from './detail/topInfo.vue';
-import videoData from './detail/videoData.vue';
-import imgtxtData from './detail/imgtxtData.vue';
-import productData from './detail/productData.vue';
-import expertData from './detail/expertData.vue';
-import guestData from './detail/guestData.vue';
-import projectData from './detail/projectData.vue';
-import chatData from './detail/chatData.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'detail',
-  props: {},
-  components: { foot, topInfo, videoData, imgtxtData, productData, expertData, guestData, projectData, chatData },
-  data: function() {
-    return {
-      // 展会详情
-      liveInfo: {},
-      // 第四部分
-      fourImg: require('@common/src/assets/live/top_bg.png'),
-    };
-  },
-  async created() {
-    await this.searchInfo();
-  },
-  methods: {
-    ...dock(['fetch']),
-    async searchInfo() {
-      let res = await this.fetch(this.id);
-      if (this.$checkRes(res)) {
-        this.$set(this, `liveInfo`, res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .top {
-    background: url('~@common/src/assets/live/dock_top.png');
-    height: 480px;
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-  }
-  .info {
-    min-height: 500px;
-    background: #fcfcfd;
-    .one {
-      height: 480px;
-      background-color: #fff;
-      margin: 0 0 15px 0;
-      .left {
-        width: 49%;
-        height: 480px;
-        margin: 0 15px 0 0;
-        border: 4px solid #000;
-      }
-      .right {
-        width: 49.5%;
-        height: 480px;
-        box-shadow: 0 0 5px #ccc;
-        border-radius: 5px;
-      }
-    }
-    .two {
-      height: 620px;
-      background-color: #fff;
-      box-shadow: 0 0 5px #ccc;
-      border-radius: 5px;
-      margin: 0 0 15px 0;
-    }
-    .thr {
-      height: 560px;
-      background-color: #fff;
-      box-shadow: 0 0 5px #ccc;
-      border-radius: 5px;
-      margin: 0 0 15px 0;
-    }
-    .four {
-      height: 120px;
-      box-shadow: 0 0 5px #ccc;
-      border-radius: 5px;
-      margin: 0 0 15px 0;
-      .el-image {
-        height: 120px;
-        overflow: hidden;
-        border-radius: 5px;
-      }
-    }
-    .five {
-      height: 510px;
-      background-color: #fff;
-      margin: 0 0 15px 0;
-      .left {
-        width: 33%;
-        height: 510px;
-        overflow: hidden;
-        box-shadow: 0 0 5px #ccc;
-        border-radius: 5px;
-        margin: 0 10px 0 0;
-      }
-      .cen {
-        width: 33%;
-        height: 510px;
-        overflow: hidden;
-        box-shadow: 0 0 5px #ccc;
-        border-radius: 5px;
-        margin: 0 10px 0 0;
-      }
-      .right {
-        width: 32.3%;
-        height: 510px;
-        overflow: hidden;
-        box-shadow: 0 0 5px #ccc;
-        border-radius: 5px;
-      }
-    }
-  }
-}
-</style>

+ 0 - 189
src/views/achieveLive - 副本/detail/chatData.vue

@@ -1,189 +0,0 @@
-<template>
-  <div id="guestData">
-    <el-row>
-      <el-col :span="24" class="style">
-        <el-tabs v-model="active" type="card">
-          <el-tab-pane label="公共聊天" name="first">
-            <el-col :span="24" class="info">
-              <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
-                <el-col :span="24" class="sender_name">
-                  <span>[{{ item.send_time }}]</span>
-                  <span>{{ item.sender_name }}</span>
-                </el-col>
-                <el-col :span="24" class="content">
-                  {{ item.content }}
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="send">
-              <el-col :span="14" class="text">
-                <el-input v-model="text"></el-input>
-              </el-col>
-              <el-col :span="10" class="btn">
-                <el-col :span="12">
-                  <el-button type="primary" size="mini" @click="sendMessage">发送</el-button>
-                </el-col>
-                <el-col :span="12">
-                  <el-popover placement="top" trigger="click">
-                    <el-col :span="24">
-                      <p class="text" v-for="(item, index) in textList" :key="index" @click="textBtn(item.name)">{{ item.name }}</p>
-                    </el-col>
-                    <el-button slot="reference" type="primary" size="mini">快捷发言</el-button>
-                  </el-popover>
-                </el-col>
-              </el-col>
-            </el-col>
-          </el-tab-pane>
-        </el-tabs>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-var moment = require('moment');
-import _ from 'lodash';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dockChat } = createNamespacedHelpers('dockChat');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'guestData',
-  props: {},
-  components: {},
-  data: function() {
-    return {
-      active: 'first',
-      list: [],
-      // 发言内容
-      text: '',
-      textList: [{ name: '欢迎欢迎' }, { name: '科技创新' }, { name: '大咖云集' }],
-    };
-  },
-  async created() {
-    this.search();
-  },
-  async mounted() {
-    this.channel();
-  },
-  methods: {
-    ...dockChat(['create', 'query']),
-    async search() {
-      let res = await this.query({ dock_id: this.id });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-      }
-    },
-    async sendMessage() {
-      if (this.text != '') {
-        const content = _.cloneDeep(this.text);
-        let obj = {};
-        if (this.user) {
-          obj = { content, dock_id: this.id, sender_id: this.user.id, sender_name: this.user.name };
-        } else {
-          obj = { content, dock_id: this.id, sender_id: this.getData(), sender_name: this.getData() + '游客' };
-        }
-        const check = Object.values(obj).every(f => f);
-        if (!check) {
-          this.$message.error('发言所需信息不全,请联系管理人员');
-          return;
-        }
-        const res = await this.create(obj);
-        this.$checkRes(res, null, '发言成功' || '发言失败');
-        this.$set(this, 'text', '');
-      } else this.$message.error('请输入信息后发送');
-    },
-    textBtn(text) {
-      this.$set(this, `text`, text);
-      this.sendMessage();
-    },
-    channel() {
-      if (!this.id) {
-        console.warn('未获取到展会信息,无法进行订阅');
-        return;
-      }
-      this.$stomp({
-        [`/exchange/dockChat/${this.id}`]: this.onMessage,
-      });
-    },
-    onMessage(message) {
-      let body = _.get(message, 'body');
-      if (body) {
-        body = JSON.parse(body);
-        this.list.push(body);
-      }
-    },
-    // 获取时间戳
-    getData() {
-      let date = moment(new Date()).valueOf();
-      if (date) return date;
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.style {
-  .info {
-    padding: 0 10px;
-    height: 410px;
-    overflow-y: auto;
-    .list {
-      margin: 0 0 10px 0;
-      .sender_name {
-        margin: 0 0 5px 0;
-        span {
-          font-size: 16px;
-        }
-        span:nth-child(1) {
-          color: #666;
-        }
-        span:nth-child(2) {
-          font-weight: bold;
-          padding: 0 0 0 5px;
-        }
-      }
-      .content {
-        background-color: #f1f1f1;
-        padding: 10px 5px;
-        border-radius: 5px;
-      }
-    }
-  }
-  .send {
-    height: 30px;
-    overflow: hidden;
-    padding: 0 10px;
-    margin: 10px 0 0 0;
-    .text {
-      /deep/.el-input__inner {
-        height: 30px;
-        line-height: 30px;
-      }
-    }
-    .btn {
-      text-align: center;
-    }
-  }
-  /deep/.el-tabs__header {
-    margin: 0 0 10px 0;
-  }
-}
-.text {
-  text-align: center;
-  padding: 5px 0;
-  border-bottom: 1px dashed #ccc;
-}
-.text:hover {
-  cursor: pointer;
-  color: #409eff;
-}
-</style>

+ 0 - 146
src/views/achieveLive - 副本/detail/expertData.vue

@@ -1,146 +0,0 @@
-<template>
-  <div id="expertData">
-    <el-row>
-      <el-col :span="24" class="style">
-        <el-tabs v-model="active" type="card">
-          <el-tab-pane label="专家智库" name="first">
-            <el-col :span="24" class="info">
-              <el-col :span="8" class="list" v-for="(item, index) in expertList" :key="index">
-                <el-col :span="6" class="image">
-                  <el-image :src="item.img_path">
-                    <div slot="error" class="image-slot">
-                      <el-image :src="img_url"></el-image>
-                    </div>
-                  </el-image>
-                </el-col>
-                <el-col :span="18" class="text">
-                  <p class="textOver">{{ item.name }}</p>
-                  <p class="textOver">{{ item.zwzc }}</p>
-                  <p class="textOver">{{ item.company }}</p>
-                  <p>
-                    <el-button type="primary" size="mini" @click="detailBtn(item)">详情</el-button>
-                    <el-button type="success" size="mini" @click="transBtn(item)">对接</el-button>
-                  </p>
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="btn">
-              <el-button type="primary" size="mini" @click="moreBtn">查看更多专家</el-button>
-            </el-col>
-          </el-tab-pane>
-        </el-tabs>
-      </el-col>
-    </el-row>
-    <el-dialog title="专家信息" :visible.sync="dialog" width="60%" :before-close="handleClose">
-      <detailInfo :form="info" :showBtn="false"></detailInfo>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import detailInfo from '../expert/detailInfo.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: expert } = createNamespacedHelpers('expert');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'expertData',
-  props: {},
-  components: {
-    detailInfo,
-  },
-  data: function() {
-    return {
-      active: 'first',
-      // 专家列表
-      // 无头像
-      img_url: require('@common/src/assets/live/d10_fbb1.png'),
-      expertList: [],
-      // 专家详情
-      dialog: false,
-      info: {},
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...expert(['query']),
-    async search({ skip = 0, limit = 9, ...info } = {}) {
-      let res = await this.query({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `expertList`, res.data);
-      }
-    },
-    // 查看更多项目
-    moreBtn() {
-      this.$router.push({ path: '/achieveLive/expert/index', query: { dock_id: this.id } });
-    },
-    // 查看专家详情
-    detailBtn(data) {
-      this.$set(this, `info`, data);
-      this.dialog = true;
-    },
-    // 取消查看
-    handleClose() {
-      this.dialog = false;
-    },
-    // 对接
-    transBtn(data) {
-      this.$router.push({ path: '/achieveLive/expert/detail', query: { dock_id: this.id, id: data.user_id } });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.style {
-  .info {
-    height: 465px;
-    overflow: hidden;
-    padding: 0 10px;
-    .list {
-      width: 32.6%;
-      height: 140px;
-      box-shadow: 0 0 5px #ccc;
-      border-radius: 5px;
-      margin: 5px 10px 10px 0;
-      padding: 10px;
-      .image {
-        height: 120px;
-        overflow: hidden;
-        border: 1px dashed #ccc;
-        .el-image {
-          height: 120px;
-          overflow: hidden;
-        }
-      }
-      .text {
-        padding: 0 0 0 10px;
-        p {
-          font-size: 16px;
-          margin: 0 0 8px 0;
-        }
-        p:nth-child(1) {
-          font-size: 18px;
-          font-weight: bold;
-        }
-      }
-    }
-    .list:nth-child(3n) {
-      margin: 5px 0 10px 0;
-    }
-  }
-  .btn {
-    text-align: center;
-  }
-}
-</style>

+ 0 - 120
src/views/achieveLive - 副本/detail/guestData.vue

@@ -1,120 +0,0 @@
-<template>
-  <div id="guestData">
-    <el-row>
-      <el-col :span="24" class="style">
-        <el-tabs v-model="active" type="card">
-          <el-tab-pane label="嘉宾访谈" name="first">
-            <el-col :span="24" class="info">
-              <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
-                <el-col :span="6" class="image">
-                  <el-image :src="item.picture">
-                    <div slot="error" class="image-slot">
-                      <p>暂无图片</p>
-                    </div>
-                  </el-image>
-                </el-col>
-                <el-col :span="18" class="text">
-                  <p class="textOver">{{ item.title }}</p>
-                  <p class="textOver">更新时间:{{ item.publish_time }}</p>
-                  <p class="textOver">信息来源:{{ item.origin }}</p>
-                </el-col>
-              </el-col>
-            </el-col>
-          </el-tab-pane>
-        </el-tabs>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: interview } = createNamespacedHelpers('interview');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'guestData',
-  props: {},
-  components: {},
-  data: function() {
-    return {
-      active: 'first',
-      list: [],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...interview(['query']),
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      let res = await this.query({ skip, dock_id: this.id, ...info });
-      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
-    },
-    // 查看详情
-    detailBtn(data) {
-      this.$router.push({ path: '/achieveLive/guestRoad/index', query: { dock_id: this.id, id: data.id, type: '嘉宾访谈' } });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.style {
-  .info {
-    padding: 0 10px;
-    height: 450px;
-    overflow-y: auto;
-    .list {
-      border: 1px solid #ccc;
-      border-radius: 5px;
-      margin: 0 0 10px 0;
-      padding: 10px;
-      .image {
-        height: 80px;
-        overflow: hidden;
-        border: 1px dashed #ccc;
-        text-align: center;
-        .el-image {
-          height: 80px;
-        }
-        p {
-          line-height: 80px;
-        }
-      }
-      .text {
-        padding: 0 0 0 10px;
-        p {
-          font-size: 14px;
-          margin: 0 0 5px 0;
-        }
-        p:nth-child(1) {
-          font-size: 16px;
-          font-weight: bold;
-          padding: 3px 0;
-        }
-      }
-    }
-    .list:hover {
-      cursor: pointer;
-      border: 1px solid #409eff;
-      .text {
-        p:nth-child(1) {
-          color: #409eff;
-        }
-      }
-    }
-  }
-  /deep/.el-tabs__header {
-    margin: 0 0 10px 0;
-  }
-}
-</style>

+ 0 - 206
src/views/achieveLive - 副本/detail/imgtxtData.vue

@@ -1,206 +0,0 @@
-<template>
-  <div id="guestData">
-    <el-row>
-      <el-col :span="24" class="style">
-        <el-tabs v-model="active" type="card">
-          <el-tab-pane label="图文直播" name="first">
-            <el-col :span="24" class="first">
-              <el-col :span="24" class="imgList" v-for="(item, index) in imgList" :key="index">
-                <el-col :span="24" class="user">
-                  <span>[{{ getDate(item.create_time) }}]</span>
-                  <span>展会负责人</span>
-                  <span>
-                    <el-link v-if="item.file_path" :href="item.file_path" target="_blank" :underline="false" class="videoPlay">视频播放</el-link>
-                  </span>
-                </el-col>
-                <el-col :span="24" class="content">
-                  {{ item.content }}
-                </el-col>
-                <el-col :span="24" class="image">
-                  <el-image :src="tag.url" v-for="(tag, tagindex) in item.url" :key="tagindex"></el-image>
-                </el-col>
-              </el-col>
-            </el-col>
-          </el-tab-pane>
-          <el-tab-pane label="洽谈合作" name="second">
-            <el-col :span="24" class="second">
-              <el-col :span="24" class="secondList" v-for="(item, index) in secondList" :key="index">
-                <span>[{{ getDate(item.create_time) }}]</span>
-                <span class="textOver">{{ item.d_name }}</span>
-                <span>与</span>
-                <span class="textOver">{{ item.s_name }}</span>
-                <span>{{ getStatus(item.status) }}</span>
-              </el-col>
-            </el-col>
-          </el-tab-pane>
-          <el-tab-pane label="达成意向" name="third">
-            <el-col :span="24" class="second">
-              <el-col :span="24" class="secondList" v-for="(item, index) in thirdList" :key="index">
-                <span>[{{ getDate(item.create_time) }}]</span>
-                <span class="textOver">{{ item.d_name }}</span>
-                <span>与</span>
-                <span class="textOver">{{ item.s_name }}</span>
-                <span>{{ getStatus(item.status) }}</span>
-              </el-col>
-            </el-col>
-          </el-tab-pane>
-          <el-tab-pane label="交易完成" name="fourth">
-            <el-col :span="24" class="second">
-              <el-col :span="24" class="secondList" v-for="(item, index) in fourthList" :key="index">
-                <span>[{{ getDate(item.create_time) }}]</span>
-                <span class="textOver">{{ item.d_name }}</span>
-                <span>与</span>
-                <span class="textOver">{{ item.s_name }}</span>
-                <span>{{ getStatus(item.status) }}</span>
-              </el-col>
-            </el-col>
-          </el-tab-pane>
-        </el-tabs>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dockPw } = createNamespacedHelpers('dockPw');
-const { mapActions: transaction } = createNamespacedHelpers('transaction');
-var moment = require('moment');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'guestData',
-  props: {},
-  components: {},
-  data: function() {
-    return {
-      active: 'first',
-      // 图文列表
-      imgList: [],
-      // 正在洽谈
-      secondList: [],
-      // 达成意向
-      thirdList: [],
-      // 交易完成
-      fourthList: [],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...dockPw({ pwQuery: 'query' }),
-    ...transaction({ transQuery: 'query' }),
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      // 查询图文
-      let res = await this.pwQuery({ skip, dock_id: this.id, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `imgList`, res.data);
-      }
-      // 正在洽谈
-      res = await this.transQuery({ skip, dock_id: this.id, status: '0' });
-      if (this.$checkRes(res)) this.$set(this, `secondList`, res.data);
-      // 达成意向
-      res = await this.transQuery({ skip, dock_id: this.id, status: '1' });
-      if (this.$checkRes(res)) this.$set(this, `thirdList`, res.data);
-      // 交易完成
-      res = await this.transQuery({ skip, dock_id: this.id, status: '3' });
-      if (this.$checkRes(res)) this.$set(this, `fourthList`, res.data);
-    },
-    // 整理时间
-    getDate(val) {
-      let newDate = moment(val).format('hh:mm:ss');
-      if (newDate) return newDate;
-    },
-    // 整理状态
-    getStatus(val) {
-      if (val == '0') return '正在洽谈';
-      else if (val == '1') return '达成意向';
-      else if (val == '2') return '交易备案';
-      else if (val == '3') return '交易完成';
-      else if (val == '4') return '交易失败';
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.style {
-  /deep/.el-tabs__header {
-    margin: 0 0 10px 0;
-  }
-  .first {
-    padding: 0 10px;
-    height: 415px;
-    overflow-y: auto;
-    .imgList {
-      padding: 10px 0 0 0;
-      border-bottom: 1px dashed #ff0000;
-      .user {
-        margin: 0 0 5px 0;
-        span {
-          font-size: 16px;
-        }
-        span:nth-child(2) {
-          padding: 0 0 0 10px;
-          font-weight: bold;
-        }
-        span:nth-child(3) {
-          padding: 0 0 0 20px;
-          .el-link {
-            font-weight: bold;
-            font-size: 16px;
-            top: -3px;
-          }
-        }
-      }
-      .content {
-        padding: 0 0 10px 0;
-        text-indent: 2rem;
-      }
-      .image {
-        .el-image {
-          width: 100%;
-          height: 250px;
-          margin: 0 0 10px 0;
-        }
-      }
-    }
-  }
-  .second {
-    padding: 0 10px;
-    height: 415px;
-    overflow-y: auto;
-    .secondList {
-      border-bottom: 1px dashed #ff0000;
-      padding: 10px 0;
-      span {
-        float: left;
-        font-weight: bold;
-        font-size: 16px;
-      }
-      span:nth-child(1) {
-        color: #ff0000;
-      }
-      span:nth-child(2n) {
-        width: 32%;
-        margin: 0 10px 0 10px;
-      }
-      span:nth-child(3) {
-        color: #666;
-      }
-      span:nth-child(5) {
-        float: right;
-      }
-    }
-  }
-}
-</style>

+ 0 - 234
src/views/achieveLive - 副本/detail/productData.vue

@@ -1,234 +0,0 @@
-<template>
-  <div id="productData">
-    <el-row>
-      <el-col :span="24" class="style">
-        <el-tabs v-model="active" type="card">
-          <el-tab-pane label="技术成果" name="first">
-            <el-col :span="24" class="first">
-              <el-col :span="5" class="achieveList" v-for="(item, index) in achieveList" :key="index">
-                <el-col :span="24" class="top">
-                  <p class="textOver">{{ item.name || '暂无' }}</p>
-                  <p>{{ item.achievebrief || '暂无' }}</p>
-                  <p class="textOver">领域:{{ item.field || '暂无' }}</p>
-                  <p class="textOver">联系人{{ item.contacts || '暂无' }}</p>
-                </el-col>
-                <el-col :span="24" class="down">
-                  <el-button size="mini" type="primary" @click="detail(item, '1')">详情</el-button>
-                  <el-button size="mini" type="success" @click="trans(item, '1')">对接</el-button>
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="btn">
-              <el-button type="primary" size="mini" @click="moreBtn('1')">查看更多项目</el-button>
-            </el-col>
-          </el-tab-pane>
-          <el-tab-pane label="科技需求" name="second">
-            <el-col :span="24" class="second">
-              <el-col :span="5" class="techolList" v-for="(item, index) in techolList" :key="index">
-                <el-col :span="24" class="top">
-                  <p>{{ item.name || '暂无' }}</p>
-                  <p class="textOver">领域:{{ item.field || '暂无' }}</p>
-                </el-col>
-                <el-col :span="24" class="down">
-                  <el-button size="mini" type="primary" @click="detail(item, '0')">详情</el-button>
-                  <el-button size="mini" type="success" @click="trans(item, '0')">对接</el-button>
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="btn">
-              <el-button type="primary" size="mini" @click="moreBtn('0')">查看更多项目</el-button>
-            </el-col>
-          </el-tab-pane>
-        </el-tabs>
-      </el-col>
-    </el-row>
-    <el-dialog title="技术成果详情" :visible.sync="dialog" width="50%" :before-close="handleClose">
-      <achieveInfo :form="info" :showBtn="false"></achieveInfo>
-    </el-dialog>
-    <el-dialog title="科技需求详情" :visible.sync="twoDialog" width="50%" :before-close="handleClose">
-      <techolInfo :form="info" :showBtn="false"></techolInfo>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import achieveInfo from '../product/achieveInfo.vue';
-import techolInfo from '../product/techolInfo.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-const { mapActions: dockUser } = createNamespacedHelpers('dockUser');
-export default {
-  name: 'productData',
-  props: {},
-  components: {
-    achieveInfo,
-    techolInfo,
-  },
-  data: function() {
-    return {
-      active: 'first',
-      achieveList: [],
-      techolList: [
-        {
-          name: '科技需求',
-          field: '所属领域',
-        },
-      ],
-      // 技术成果详情
-      dialog: false,
-      info: {},
-      // 科技需求详情
-      twoDialog: false,
-      twoinfo: {},
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...dock(['productQuery']),
-    ...dockUser(['query']),
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      info.dock_id = this.id;
-      const res = await this.query({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        for (const val of res.data) {
-          // 成果
-          let achieve = val.goodsList.filter(i => i.type == '1');
-          if (achieve) this.$set(this, `achieveList`, achieve);
-          // 需求
-          let techol = val.goodsList.filter(i => i.type == '0');
-          if (techol) this.$set(this, `techolList`, techol);
-        }
-      }
-    },
-    // 查看更多项目
-    moreBtn(type) {
-      this.$router.push({ path: '/achieveLive/product/index', query: { dock_id: this.id, type } });
-    },
-    // 详情
-    detail(data, type) {
-      this.$set(this, `info`, data);
-      // 科技需求
-      if (type == '0') this.twoDialog = true;
-      // 技术成果
-      else if (type == '1') this.dialog = true;
-    },
-    // 对接
-    trans(data, type) {
-      this.$router.push({ path: '/achieveLive/product/detail', query: { dock_id: this.id, id: data._id, type: data.type } });
-    },
-    // 取消查看
-    handleClose() {
-      this.dialog = false;
-      this.twoDialog = false;
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.style {
-  .btn {
-    text-align: center;
-  }
-  .first {
-    padding: 0 10px;
-    height: 530px;
-    overflow: hidden;
-    .achieveList {
-      width: 18.9%;
-      height: 250px;
-      background: url('~@common/src/assets/achieve.png');
-      background-size: 100% 100%;
-      background-repeat: no-repeat;
-      margin: 0 15px 15px 0;
-      padding: 22px 22px 8px 22px;
-      .top {
-        height: 190px;
-        overflow: hidden;
-        p:nth-child(1) {
-          font-size: 18px;
-          font-weight: bold;
-          padding: 5px 0;
-        }
-        p:nth-child(2) {
-          font-size: 12px;
-          overflow: hidden;
-          text-overflow: ellipsis;
-          -webkit-line-clamp: 6;
-          word-break: break-all;
-          display: -webkit-box;
-          -webkit-box-orient: vertical;
-          padding: 0 5px;
-          height: 105px;
-          line-height: 17px;
-        }
-        p:nth-child(3) {
-          font-size: 14px;
-          padding: 4px 0 0 0;
-        }
-        p:nth-child(4) {
-          font-size: 14px;
-          padding: 4px 0 0 0;
-        }
-      }
-      .down {
-        text-align: center;
-      }
-    }
-    .achieveList:nth-child(5n) {
-      margin: 0 0 15px 0;
-    }
-  }
-  .second {
-    padding: 0 10px;
-    height: 530px;
-    overflow: hidden;
-    .techolList {
-      width: 18.9%;
-      height: 250px;
-      border: 1px solid #ccc;
-      border-radius: 5px;
-      margin: 0 15px 15px 0;
-      padding: 22px 22px 8px 22px;
-      .top {
-        height: 190px;
-        overflow: hidden;
-        p:nth-child(1) {
-          height: 145px;
-          text-align: center;
-          font-size: 18px;
-          margin: 0 0 10px 0;
-          overflow: hidden;
-          text-overflow: ellipsis;
-          -webkit-line-clamp: 6;
-          word-break: break-all;
-          display: -webkit-box;
-          -webkit-box-orient: vertical;
-        }
-        p:nth-child(2) {
-          text-align: center;
-          font-size: 16px;
-        }
-      }
-      .down {
-        text-align: center;
-      }
-    }
-    .techolList:nth-child(5n) {
-      margin: 0 0 15px 0;
-    }
-  }
-  /deep/.el-tabs__header {
-    margin: 0 0 10px 0;
-  }
-}
-</style>

+ 0 - 114
src/views/achieveLive - 副本/detail/projectData.vue

@@ -1,114 +0,0 @@
-<template>
-  <div id="projectData">
-    <el-row>
-      <el-col :span="24" class="style">
-        <el-tabs v-model="active" type="card">
-          <el-tab-pane label="项目路演" name="first">
-            <el-col :span="24" class="info">
-              <el-col :span="24" class="list" v-for="(item, index) in list" :key="index" @click.native="detailBtn(item)">
-                <el-col :span="24" class="text">
-                  <el-col :span="18" class="title textOver">
-                    {{ item.title }}
-                  </el-col>
-                  <el-col :span="6" class="date textOver">
-                    {{ item.publish_time }}
-                  </el-col>
-                </el-col>
-                <el-col :span="24" class="brief">
-                  {{ item.brief }}
-                </el-col>
-              </el-col>
-            </el-col>
-          </el-tab-pane>
-        </el-tabs>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: roadShow } = createNamespacedHelpers('roadShow');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'projectData',
-  props: {},
-  components: {},
-  data: function() {
-    return {
-      active: 'first',
-      list: [],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...roadShow(['query']),
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      let res = await this.query({ skip, dock_id: this.id, ...info });
-      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
-    },
-    // 查看详情
-    detailBtn(data) {
-      this.$router.push({ path: '/achieveLive/guestRoad/index', query: { dock_id: this.id, id: data.id, type: '项目路演' } });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.style {
-  .info {
-    padding: 0 10px;
-    height: 450px;
-    overflow-y: auto;
-    .list {
-      border: 1px solid #ccc;
-      padding: 10px;
-      border-radius: 5px;
-      margin: 0 0 10px 0;
-      .text {
-        margin: 0 0 5px 0;
-        .title {
-          font-size: 16px;
-          font-weight: bold;
-        }
-        .date {
-          font-size: 14px;
-          text-align: right;
-        }
-      }
-      .brief {
-        overflow: hidden;
-        text-overflow: ellipsis;
-        -webkit-line-clamp: 2;
-        word-break: break-all;
-        display: -webkit-box;
-        -webkit-box-orient: vertical;
-      }
-    }
-    .list:hover {
-      cursor: pointer;
-      border: 1px solid #409eff;
-      .text {
-        .title {
-          color: #409eff;
-        }
-      }
-    }
-  }
-  /deep/.el-tabs__header {
-    margin: 0 0 10px 0;
-  }
-}
-</style>

+ 0 - 114
src/views/achieveLive - 副本/detail/topInfo.vue

@@ -1,114 +0,0 @@
-<template>
-  <div id="topInfo">
-    <el-row>
-      <el-col :span="24" class="style">
-        <el-col :span="24" class="one">
-          {{ info.title }}
-        </el-col>
-        <el-col :span="24" class="two">
-          <span>主办方:</span>
-          <span>{{ info.sponsor }}</span>
-        </el-col>
-        <el-col :span="24" class="thr">
-          <p v-for="(item, index) in list" :key="index">
-            <span>{{ item.name }}</span>
-            <span>{{ item.num || 0 }}{{ item.unit }}</span>
-          </p>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: statistics } = createNamespacedHelpers('statistics');
-export default {
-  name: 'topInfo',
-  props: {
-    info: { type: Object },
-  },
-  components: {},
-  data: function() {
-    return {
-      list: [],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...statistics(['dockQuery']),
-    async search() {
-      let res = await this.dockQuery({ dock_id: this.id });
-      if (this.$checkRes(res)) {
-        console.log(res.data);
-        this.$set(this, `list`, res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.style {
-  .one {
-    text-align: center;
-    font-size: 40px;
-    color: #fff;
-    padding: 6% 8% 0 10%;
-    height: 185px;
-    margin: 0 0 40px 0;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    -webkit-line-clamp: 2;
-    word-break: break-all;
-    display: -webkit-box;
-    -webkit-box-orient: vertical;
-  }
-  .two {
-    text-align: center;
-    font-size: 30px;
-    color: #fff;
-    margin: 0 0 50px 0;
-  }
-  .thr {
-    p {
-      float: left;
-      width: 15%;
-      background: #fff;
-      margin: 0 10px 0 10px !important;
-      color: #000;
-      height: 50px;
-      line-height: 50px;
-      border-radius: 30px;
-      span:first-child {
-        display: inline-block;
-        width: 56%;
-        text-align: center;
-        height: 50px;
-        line-height: 50px;
-        font-size: 16px;
-        background: red;
-        border-radius: 30px;
-        color: #fff;
-        font-weight: 700;
-      }
-      span:last-child {
-        display: inline-block;
-        width: 42%;
-        text-align: center;
-        font-size: 15px;
-        font-weight: 700;
-      }
-    }
-  }
-}
-</style>

+ 0 - 166
src/views/achieveLive - 副本/detail/videoData.vue

@@ -1,166 +0,0 @@
-<template>
-  <div id="videoData">
-    <el-row>
-      <el-col :span="24" class="style">
-        <el-col :span="24" class="top">
-          <el-col :span="4" class="txt">
-            <span style="color:#FF8400;">视频</span>
-            <span>直播</span>
-          </el-col>
-          <el-col :span="20" class="title textOver">
-            {{ info.title }}
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="video">
-          <video :src="videoPath" controls autoplay loop v-if="videoList != ''">
-            <source src="movie.mp4" type="video/mp4" />
-            <source src="movie.ogg" type="video/ogg" />
-          </video>
-          <div class="videointro" v-else>
-            <p>{{ info.title }}</p>
-          </div>
-        </el-col>
-        <el-col :span="24" class="list">
-          <swiper :list="videoList" :options="options">
-            <template v-slot="{ index, item }">
-              <p :class="`${menuIndex == index ? 'indexClass' : 'videodata'}`" @click="changeMenu(index, item)">{{ item.videointro }}</p>
-            </template>
-          </swiper>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import swiper from '@c/frame/swiper-frame.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-export default {
-  name: 'videoData',
-  props: {
-    info: { type: Object },
-  },
-  components: { swiper },
-  data: function() {
-    return {
-      // 视频路径
-      videoPath: '',
-      // 视频列表
-      videoList: [],
-      menuIndex: '0',
-      options: {
-        slidesPerView: 5,
-        spaceBetween: 10,
-        // 分页
-        navigation: {
-          nextEl: '.swiper-button-next',
-          prevEl: '.swiper-button-prev',
-        },
-      },
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...dock(['fetch']),
-    async search() {
-      let res = await this.fetch(this.id);
-      if (this.$checkRes(res)) {
-        this.$set(this, `videoList`, res.data.videodata);
-        this.changeMenu('0', this.videoList[0]);
-      }
-    },
-    changeMenu(index, item) {
-      if (item) {
-        this.menuIndex = index;
-        this.$set(this, `videoPath`, item.file_path);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.style {
-  .top {
-    height: 60px;
-    overflow: hidden;
-    .txt {
-      height: 60px;
-      line-height: 40px;
-      font-size: 20px;
-      font-weight: 700;
-      text-align: center;
-    }
-    .title {
-      height: 60px;
-      line-height: 65px;
-      font-weight: bolder;
-      -webkit-text-stroke: 1px #6e042c;
-      -webkit-text-fill-color: #fff;
-      letter-spacing: 3px;
-      font-size: 20px;
-    }
-  }
-  .video {
-    height: 365px;
-    overflow: hidden;
-    video {
-      width: 100%;
-      height: 365px;
-      background: #000;
-      object-fit: fill;
-    }
-    .videointro {
-      height: 365px;
-      text-align: center;
-      background-image: url('~@common/src/assets/directBack.png');
-      background-size: 100% 100%;
-      background-repeat: no-repeat;
-      p {
-        text-align: center;
-        font-size: 30px;
-        padding: 60px 15px;
-        color: #fff;
-      }
-    }
-  }
-  .list {
-    height: 45px;
-    overflow: hidden;
-    .videodata {
-      border-radius: 10px;
-      background: #cccccc8f;
-      height: 39px;
-      line-height: 39px;
-      text-align: center;
-      margin: 2px 0 0 0;
-      font-weight: bold;
-    }
-    .videodata:hover {
-      cursor: pointer;
-      color: #fff;
-      background: #409eff;
-    }
-    .indexClass {
-      border-radius: 10px;
-      height: 39px;
-      line-height: 39px;
-      text-align: center;
-      margin: 2px 0 0 0;
-      font-weight: bold;
-      color: #fff;
-      background: #409eff;
-    }
-  }
-}
-</style>

+ 0 - 102
src/views/achieveLive - 副本/expert/detail.vue

@@ -1,102 +0,0 @@
-<template>
-  <div id="detail">
-    <el-row>
-      <el-col :span="24" class="main">
-        <subTop :liveInfo="liveInfo"></subTop>
-        <el-col :span="24" class="info">
-          <div class="w_1200">
-            <el-col :span="24" class="infoMess">
-              <el-col :span="24" class="btn">
-                <el-button type="primary" size="mini" @click="back">返回活动首页</el-button>
-              </el-col>
-              <el-col :span="24">
-                <detailInfo :form="info"></detailInfo>
-              </el-col>
-            </el-col>
-          </div>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import subTop from '../parts/subTop.vue';
-import detailInfo from '../expert/detailInfo.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-const { mapActions: expert } = createNamespacedHelpers('expert');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'detail',
-  props: {},
-  components: {
-    subTop,
-    detailInfo,
-  },
-  data: function() {
-    return {
-      liveInfo: {},
-      info: {},
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...dock(['fetch']),
-    ...expert({ expertFetch: 'fetch' }),
-    async search() {
-      if (this.dock_id) {
-        let res = await this.fetch(this.dock_id);
-        if (this.$checkRes(res)) {
-          this.$set(this, `liveInfo`, res.data);
-        }
-        res = await this.expertFetch(this.id);
-        if (this.$checkRes(res)) {
-          this.$set(this, `info`, res.data);
-        }
-      }
-    },
-    // 返回
-    back() {
-      this.$router.push({ path: '/achieveLive/detail', query: { id: this.dock_id } });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    dock_id() {
-      return this.$route.query.dock_id;
-    },
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .info {
-    position: absolute;
-    top: 70%;
-    padding: 0 0 15px 0;
-    .infoMess {
-      min-height: 630px;
-      box-shadow: 0 0 5px #ccc;
-      background-color: #fff;
-      padding: 20px;
-      .btn {
-        text-align: right;
-        margin: 0 0 10px 0;
-        height: 40px;
-        overflow: hidden;
-        border-bottom: 2px solid #666;
-      }
-    }
-  }
-}
-</style>

+ 0 - 258
src/views/achieveLive - 副本/expert/detailInfo.vue

@@ -1,258 +0,0 @@
-<template>
-  <div id="detailInfo">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <el-col :span="24" class="top">
-            <el-col :span="6" class="left">
-              <el-image v-if="form.img_path != null || undefined" :src="form.img_path" style="width:100%;height:220px;"></el-image>
-              <el-image v-else :src="img_url" style="width:100%;height:220px;"></el-image>
-            </el-col>
-            <el-col :span="18" class="right">
-              <el-col :span="24" class="name textOver">
-                {{ form.name || '暂无' }}
-              </el-col>
-              <el-col :span="24">
-                <el-col :span="4" class="otherInfo textOver">
-                  工作单位
-                </el-col>
-                <el-col :span="20" class="otherInfo textOver">
-                  {{ form.company || '暂无' }}
-                </el-col>
-              </el-col>
-              <el-col :span="12">
-                <el-col :span="8" class="otherInfo textOver">
-                  毕业院校
-                </el-col>
-                <el-col :span="16" class="otherInfo textOver">
-                  {{ form.school || '暂无' }}
-                </el-col>
-              </el-col>
-              <el-col :span="12">
-                <el-col :span="8" class="otherInfo textOver">
-                  最高学历
-                </el-col>
-                <el-col :span="16" class="otherInfo textOver">
-                  {{ form.education || '暂无' }}
-                </el-col>
-              </el-col>
-              <el-col :span="12">
-                <el-col :span="8" class="otherInfo textOver">
-                  出生日期
-                </el-col>
-                <el-col :span="16" class="otherInfo textOver">
-                  {{ form.birthDate || '暂无' }}
-                </el-col>
-              </el-col>
-              <el-col :span="12">
-                <el-col :span="8" class="otherInfo textOver">
-                  职务职称
-                </el-col>
-                <el-col :span="16" class="otherInfo textOver">
-                  {{ form.zwzc || '暂无' }}
-                </el-col>
-              </el-col>
-              <el-col :span="12">
-                <el-col :span="8" class="otherInfo textOver">
-                  电子邮箱
-                </el-col>
-                <el-col :span="16" class="otherInfo textOver">
-                  {{ form.email || '暂无' }}
-                </el-col>
-              </el-col>
-              <el-col :span="12">
-                <el-col :span="8" class="otherInfo textOver">
-                  擅长领域
-                </el-col>
-                <el-col :span="16" class="otherInfo textOver">
-                  {{ form.expertise || '暂无' }}
-                </el-col>
-              </el-col>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="down">
-            <el-col :span="24" class="downInfo">
-              <el-col :span="4" class="tit">
-                <h2>工作经历</h2>
-              </el-col>
-              <el-col :span="20" class="info">
-                {{ form.workexperience || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downInfo">
-              <el-col :span="4" class="tit">
-                <h2>科研综述</h2>
-              </el-col>
-              <el-col :span="20" class="info">
-                {{ form.scientific || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downInfo">
-              <el-col :span="4" class="tit">
-                <h2>承担项目</h2>
-              </el-col>
-              <el-col :span="20" class="info">
-                {{ form.undertakingproject || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downInfo">
-              <el-col :span="4" class="tit">
-                <h2>科技奖励</h2>
-              </el-col>
-              <el-col :span="20" class="info">
-                {{ form.scienceaward || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="downInfo">
-              <el-col :span="4" class="tit">
-                <h2>社会任职</h2>
-              </el-col>
-              <el-col :span="20" class="info">
-                {{ form.social || '暂无' }}
-              </el-col>
-            </el-col>
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="btn" v-if="showBtn">
-          <el-button type="primary" size="mini" @click="btnPhone()">交流洽谈</el-button>
-          <el-button type="success" size="mini" @click="onSubmit()">供求对接</el-button>
-        </el-col>
-      </el-col>
-    </el-row>
-    <el-dialog title="对接" :visible.sync="dialogTableVisible" destroy-on-close>
-      <chat :room="room"></chat>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import chat from '@c/chat.vue';
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: personRoom } = createNamespacedHelpers('personRoom');
-const { mapActions: transaction } = createNamespacedHelpers('transaction');
-export default {
-  name: 'detailInfo',
-  props: {
-    form: { type: Object },
-    showBtn: { type: Boolean, default: () => true },
-  },
-  components: { chat },
-  data: function() {
-    return {
-      img_url: require('@common/src/assets/live/d10_fbb1.png'),
-      dialogTableVisible: false,
-      room: {},
-    };
-  },
-  created() {},
-  methods: {
-    ...personRoom(['create']),
-    ...transaction({ getTran: 'query', createTran: 'create' }),
-    async btnPhone() {
-      if (!this.room.id) {
-        //TODO 请求房间号
-        let obj = {};
-        if (!_.get(this.user, 'id')) {
-          // this.$message.error('游客身份无法与卖家对话,请先注册');
-          this.$message({
-            dangerouslyUseHTMLString: true,
-            message: '<strong><a href="http://broadcast.waityou24.cn/live/login" style="color:red;">游客身份无法与卖家对话,请先注册</a></strong>',
-            type: 'error',
-          });
-          return;
-        } else {
-          obj.p1_id = this.user.id;
-          obj.p1 = this.user.name;
-        }
-        if (!this.form.id) {
-          this.$message.error('缺少专家信息,请联系管理员');
-          return;
-        } else {
-          obj.p2_id = this.form.id;
-          obj.p2 = this.form.name;
-        }
-        let res = await this.create(obj);
-        if (this.$checkRes(res)) {
-          this.$set(this, `room`, res.data);
-        }
-      }
-      this.dialogTableVisible = true;
-    },
-    //供求对接
-    async onSubmit(data) {
-      const obj = {
-        supplier: _.get(data, 'id'),
-        s_name: _.get(data, 'name'),
-        s_phone: _.get(data, 'phone'),
-        product_id: _.get(data, 'id'),
-        product: _.get(data, 'name'),
-        demander: _.get(this.user, 'id'),
-        d_name: _.get(this.user, 'name'),
-        d_phone: _.get(this.user, 'phone'),
-      };
-      if (obj.demander === obj.supplier) {
-        this.$message.error('您不能对自己进行对接!');
-        return;
-      }
-      const list = await this.getTran({ product_id: obj.product_id, demander: obj.demander });
-      if (list.total > 0) {
-        this.$message.warning('您已申请供求对接,无需再次申请!');
-        return;
-      }
-      const res = await this.createTran(obj);
-      this.$checkRes(res, '对接成功', res.errmsg || '对接失败');
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .one {
-    .top {
-      height: 230px;
-      overflow: hidden;
-      .right {
-        padding: 0 0 0 10px;
-        .name {
-          font-size: 18px;
-          font-weight: bold;
-          padding: 10px;
-          text-align: center;
-          border: 1px solid #ccc;
-        }
-        .otherInfo {
-          font-size: 16px;
-          padding: 10px;
-          border: 1px solid #ccc;
-        }
-      }
-    }
-    .down {
-      margin: 0 0 15px 0;
-      .downInfo {
-        border: 1px solid #ccc;
-        .tit {
-          height: 150px;
-          line-height: 150px;
-          text-align: center;
-          border-right: 1px solid #ccc;
-        }
-        .info {
-          font-size: 16px;
-          padding: 10px;
-          min-height: 150px;
-        }
-      }
-    }
-  }
-  .btn {
-    text-align: center;
-  }
-}
-</style>

+ 0 - 137
src/views/achieveLive - 副本/expert/index.vue

@@ -1,137 +0,0 @@
-<template>
-  <div id="index">
-    <el-row>
-      <el-col :span="24" class="main">
-        <subTop :liveInfo="liveInfo"></subTop>
-        <el-col :span="24" class="info">
-          <div class="w_1200">
-            <el-col :span="24" class="infoMess">
-              <el-col :span="24" class="btn">
-                <el-col :span="12" class="left">
-                  <span>专家总数:{{ total }}人</span>
-                </el-col>
-                <el-col :span="12" class="right">
-                  <el-button type="primary" size="mini" @click="back">返回活动首页</el-button>
-                </el-col>
-              </el-col>
-              <el-col :span="24" class="list">
-                <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @check="toCheck"></data-table>
-              </el-col>
-            </el-col>
-          </div>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import subTop from '../parts/subTop.vue';
-import dataTable from '@common/src/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-const { mapActions: expert } = createNamespacedHelpers('expert');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'index',
-  props: {},
-  components: {
-    subTop,
-    dataTable,
-  },
-  data: function() {
-    return {
-      // 展会详情
-      liveInfo: {},
-      opera: [
-        {
-          label: '对接',
-          method: 'check',
-        },
-      ],
-      fields: [
-        { label: '姓名', prop: 'name' },
-        { label: 'QQ微信', prop: 'qqwx' },
-        { label: '电子邮箱', prop: 'email' },
-        { label: '工作单位', prop: 'company' },
-        { label: '职务职称', prop: 'zwzc' },
-      ],
-      list: [],
-      total: 0,
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...dock(['fetch']),
-    ...expert(['query']),
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      if (this.dock_id) {
-        let res = await this.fetch(this.dock_id);
-        if (this.$checkRes(res)) {
-          this.$set(this, `liveInfo`, res.data);
-        }
-      }
-      let res = await this.query({ skip, limit, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data);
-        this.$set(this, `total`, res.total);
-      }
-    },
-    // 对接
-    toCheck({ data }) {
-      this.$router.push({ path: '/achieveLive/expert/detail', query: { dock_id: this.dock_id, id: data.user_id } });
-    },
-    // 返回
-    back() {
-      this.$router.push({ path: '/achieveLive/detail', query: { id: this.dock_id } });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    dock_id() {
-      return this.$route.query.dock_id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .info {
-    position: absolute;
-    top: 70%;
-    padding: 0 0 15px 0;
-    .infoMess {
-      min-height: 630px;
-      box-shadow: 0 0 5px #ccc;
-      background-color: #fff;
-      padding: 20px;
-      .btn {
-        margin: 0 0 10px 0;
-        height: 40px;
-        overflow: hidden;
-        border-bottom: 2px solid #666;
-        .left {
-          span {
-            display: inline-block;
-            background: #ff0000;
-            color: #fff;
-            height: 40px;
-            line-height: 40px;
-            padding: 0px 10px;
-            font-weight: bold;
-          }
-        }
-        .right {
-          text-align: right;
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 166
src/views/achieveLive - 副本/guestRoad/index.vue

@@ -1,166 +0,0 @@
-<template>
-  <div id="index">
-    <el-row>
-      <el-col :span="24" class="main">
-        <subTop :liveInfo="liveInfo"></subTop>
-        <el-col :span="24" class="info">
-          <div class="w_1200">
-            <el-col :span="24" class="infoMess">
-              <el-col :span="24" class="btn">
-                <el-button type="primary" size="mini" @click="back">返回</el-button>
-              </el-col>
-              <el-col :span="24" class="detail">
-                <el-col :span="24" class="title textOver">
-                  {{ info.title }}
-                </el-col>
-                <el-col :span="24" class="other">
-                  <span>发布时间:{{ info.publish_time || '暂无' }}</span>
-                  <span>信息来源:{{ info.origin }}</span>
-                </el-col>
-                <el-col :span="24" class="image" v-if="info.picture">
-                  <el-image :src="info.picture"></el-image>
-                </el-col>
-                <el-col :span="24" class="video" v-if="info.filepath">
-                  <video :src="info.filepath" controls="controls">
-                    您的浏览器不支持 video 标签。
-                  </video>
-                </el-col>
-                <el-col :span="24" class="content">
-                  <p v-html="info.content"></p>
-                </el-col>
-              </el-col>
-            </el-col>
-          </div>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import subTop from '../parts/subTop.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-const { mapActions: interview } = createNamespacedHelpers('interview');
-const { mapActions: roadShow } = createNamespacedHelpers('roadShow');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'index',
-  props: {},
-  components: {
-    subTop,
-  },
-  data: function() {
-    return {
-      // 展会详情
-      liveInfo: {},
-      // 信息详情
-      info: {},
-    };
-  },
-  async created() {
-    if (this.dock_id) {
-      await this.search();
-    }
-  },
-  methods: {
-    ...dock(['fetch']),
-    ...interview({ interviewFetch: 'fetch' }),
-    ...roadShow({ roadShowFetch: 'fetch' }),
-    async search() {
-      let res = await this.fetch(this.dock_id);
-      if (this.$checkRes(res)) {
-        this.$set(this, `liveInfo`, res.data);
-      }
-      if (this.type == '嘉宾访谈') {
-        let res = await this.interviewFetch(this.id);
-        if (this.$checkRes(res)) {
-          this.$set(this, `info`, res.data);
-        }
-      } else {
-        let res = await this.roadShowFetch(this.id);
-        if (this.$checkRes(res)) {
-          this.$set(this, `info`, res.data);
-        }
-      }
-    },
-    // 返回
-    back() {
-      this.$router.push({ path: '/achieveLive/detail', query: { id: this.dock_id } });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    dock_id() {
-      return this.$route.query.dock_id;
-    },
-    id() {
-      return this.$route.query.id;
-    },
-    type() {
-      return this.$route.query.type;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .info {
-    position: absolute;
-    top: 70%;
-    padding: 0 0 15px 0;
-    .infoMess {
-      min-height: 630px;
-      box-shadow: 0 0 5px #ccc;
-      background-color: #fff;
-      padding: 20px;
-      .btn {
-        text-align: right;
-        margin: 0 0 10px 0;
-      }
-      .detail {
-        .title {
-          text-align: center;
-          font-size: 30px;
-          font-weight: bold;
-          padding: 15px 0;
-        }
-        .other {
-          text-align: center;
-          font-size: 18px;
-          color: #666;
-          padding: 0 0 15px 0;
-          span {
-            padding: 0 0 0 10px;
-          }
-        }
-        .image {
-          text-align: center;
-          height: 300px;
-          overflow: hidden;
-          margin: 0 0 15px 0;
-          .el-image {
-            width: 50%;
-            height: 300px;
-          }
-        }
-        .video {
-          text-align: center;
-          margin: 0 0 15px 0;
-          height: 300px;
-          overflow: hidden;
-          video {
-            width: 50%;
-            height: 300px;
-            background-color: #000000;
-          }
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 70
src/views/achieveLive - 副本/parts/subTop.vue

@@ -1,70 +0,0 @@
-<template>
-  <div id="subTop">
-    <el-row>
-      <el-col :span="24" class="subTop">
-        <el-col :span="24" class="top">
-          <div class="w_1200">
-            <el-col :span="24" class="one">
-              {{ liveInfo.title }}
-            </el-col>
-            <el-col :span="24" class="two">
-              <span>主办方:</span>
-              <span>{{ liveInfo.sponsor }}</span>
-            </el-col>
-          </div></el-col
-        >
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  name: 'subTop',
-  props: {
-    liveInfo: { type: Object },
-  },
-  components: {},
-  data: function() {
-    return {};
-  },
-  created() {},
-  methods: {},
-  computed: {
-    ...mapState(['user']),
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.subTop {
-  .top {
-    background: url('~@common/src/assets/live/dock_top.png');
-    height: 400px;
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-    .one {
-      text-align: center;
-      font-size: 40px;
-      color: #fff;
-      padding: 4% 8% 0 10%;
-      height: 160px;
-      margin: 0 0 40px 0;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      -webkit-line-clamp: 2;
-      word-break: break-all;
-      display: -webkit-box;
-      -webkit-box-orient: vertical;
-    }
-    .two {
-      text-align: center;
-      font-size: 30px;
-      color: #fff;
-      margin: 0 0 50px 0;
-    }
-  }
-}
-</style>

+ 0 - 353
src/views/achieveLive - 副本/product/achieveInfo.vue

@@ -1,353 +0,0 @@
-<template>
-  <div id="achieveInfo">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="top">
-          <el-col :span="7" class="left" v-if="form.image != ''">
-            <el-carousel trigger="click" height="345px" :autoplay="false">
-              <el-carousel-item v-for="(item, index) in form.image" :key="index">
-                <el-image :src="item.url" style="width:99%;height:345px;border: 1px solid #ccc;"></el-image>
-              </el-carousel-item>
-            </el-carousel>
-          </el-col>
-          <el-col :span="7" v-else class="achieveImage">
-            <p class="name textOver">{{ form.name }}</p>
-            <p class="brief">{{ form.achievebrief }}</p>
-            <p class="other">
-              <span class="textOver">领域:{{ form.field }}</span>
-              <span class="textOver">联系人:{{ form.contacts }}</span>
-            </p>
-          </el-col>
-          <el-col :span="17" class="right">
-            <el-col :span="24" class="name textOver">
-              {{ form.name || '暂无' }}
-            </el-col>
-            <el-col :span="24">
-              <el-col :span="4" class="otherInfo textOver">
-                成果单位
-              </el-col>
-              <el-col :span="20" class="otherInfo textOver">
-                {{ form.company }}
-                <el-link v-if="form.companyweb != null || ''" :href="form.companyweb" :underline="false" target="_blank">({{ form.companyweb }})</el-link>
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                所属领域
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.field || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                合作方式
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.cooperation || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                成果状态
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.achievestatus || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                成果来源
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.achievesource || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                成果权属
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.achieveown || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                意向价格
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.intentionprice || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                联系人
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.contacts || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                联系方式
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                <el-tooltip class="item" effect="dark" placement="top">
-                  <div slot="content">{{ form.email }}/{{ form.qqwx || '暂无' }}</div>
-                  <p class="textOver">{{ form.email }}/{{ form.qqwx || '暂无' }}</p>
-                </el-tooltip>
-              </el-col>
-            </el-col>
-            <el-col :span="24">
-              <el-col :span="4" class="otherInfo textOver">
-                项目路演
-              </el-col>
-              <el-col :span="20" class="otherInfo textOver">
-                <el-link :href="form.roadshow" :underline="false">{{ form.roadshow ? '观看演示文件' : '暂无' }}</el-link>
-              </el-col>
-            </el-col>
-            <el-col :span="24">
-              <el-col :span="4" class="otherInfo textOver">
-                专利信息
-              </el-col>
-              <el-col :span="20" class="otherInfo textOver" style="padding: 6px">
-                <el-button type="primary" size="mini" @click="dialogTableVisible1 = true">专利信息</el-button>
-              </el-col>
-            </el-col>
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="down">
-          <el-col :span="24" class="downInfo">
-            <el-col :span="4" class="tit">
-              <h2>成果简介</h2>
-            </el-col>
-            <el-col :span="20" class="info">
-              {{ form.achievebrief || '暂无' }}
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downInfo">
-            <el-col :span="4" class="tit">
-              <h2>技术特点</h2>
-            </el-col>
-            <el-col :span="20" class="info">
-              {{ form.features || '暂无' }}
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downInfo">
-            <el-col :span="4" class="tit">
-              <h2>技术团队</h2>
-            </el-col>
-            <el-col :span="20" class="info">
-              {{ form.team || '暂无' }}
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downInfo">
-            <el-col :span="4" class="tit">
-              <h2>商业预期</h2>
-            </el-col>
-            <el-col :span="20" class="info">
-              {{ form.expectations || '暂无' }}
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downInfo">
-            <el-col :span="4" class="tit">
-              <h2>合作要求</h2>
-            </el-col>
-            <el-col :span="20" class="info">
-              {{ form.condition || '暂无' }}
-            </el-col>
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="anniu" v-if="showBtn">
-          <el-button type="primary" size="mini" @click="btnPhone()">交流洽谈</el-button>
-          <el-button type="success" size="mini" @click="onSubmit()">供求对接</el-button>
-        </el-col>
-      </el-col>
-    </el-row>
-    <el-dialog title="专利信息" :visible.sync="dialogTableVisible1">
-      <el-table :data="form.patent" style="width: 100%" border>
-        <el-table-column prop="patentinfo" label="专利信息" align="center"> </el-table-column>
-        <el-table-column prop="patentstatus" label="专利状态" align="center"> </el-table-column>
-      </el-table>
-    </el-dialog>
-    <el-dialog title="对接" :visible.sync="dialogTableVisible" destroy-on-close>
-      <chat :room="room"></chat>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import chat from '@c/chat.vue';
-import _ from 'lodash';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: personRoom } = createNamespacedHelpers('personRoom');
-const { mapActions: transaction } = createNamespacedHelpers('transaction');
-export default {
-  name: 'achieveInfo',
-  props: {
-    form: { type: Object },
-    showBtn: { type: Boolean, default: () => true },
-  },
-  components: { chat },
-  data: function() {
-    return {
-      dialogTableVisible1: false,
-      dialogTableVisible: false,
-      room: {},
-    };
-  },
-  created() {},
-  methods: {
-    ...personRoom(['create']),
-    ...transaction({ getTran: 'query', createTran: 'create' }),
-    async btnPhone() {
-      if (!this.room.id) {
-        //TODO 请求房间号
-        let obj = {};
-        if (!_.get(this.user, 'id')) {
-          // this.$message.error('游客身份无法与卖家对话,请先注册');
-          this.$message({
-            dangerouslyUseHTMLString: true,
-            message: '<strong><a href="http://broadcast.waityou24.cn/live/login" style="color:red;">游客身份无法与卖家对话,请先注册</a></strong>',
-            type: 'error',
-          });
-          return;
-        } else {
-          obj.p1_id = this.user.id;
-          obj.p1 = this.user.name;
-        }
-        if (!this.form.user_id) {
-          this.$message.error('缺少卖家信息,请联系卖家或管理员');
-          return;
-        } else {
-          obj.p2_id = this.form.user_id;
-          obj.p2 = this.form.contacts;
-        }
-        let res = await this.create(obj);
-        if (this.$checkRes(res)) {
-          this.$set(this, `room`, res.data);
-        }
-      }
-      this.dialogTableVisible = true;
-    },
-    //供求对接
-    async onSubmit() {
-      const data = _.cloneDeep(this.form);
-      const obj = {
-        dock_id: this.dock_id,
-        supplier: _.get(data, 'user_id'),
-        s_name: _.get(data, 'contacts'),
-        s_phone: _.get(data, 'phone'),
-        product_id: _.get(data, 'id'),
-        product: _.get(data, 'name'),
-        demander: _.get(this.user, 'id'),
-        d_name: _.get(this.user, 'name'),
-        d_phone: _.get(this.user, 'phone'),
-      };
-      if (obj.demander === obj.supplier) {
-        this.$message.error('您不能对自己的成果进行对接!');
-        return;
-      }
-      const list = await this.getTran({ product_id: obj.product_id, demander: obj.demander, dock_id: this.dock_id });
-      if (list.total > 0) {
-        this.$message.warning('您已申请供求对接,无需再次申请!');
-        return;
-      }
-      const res = await this.createTran(obj);
-      this.$checkRes(res, '对接成功', res.errmsg || '对接失败');
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    pageTitle() {
-      return `${this.$route.meta.title}`;
-    },
-    dock_id() {
-      return this.$route.query.dock_id;
-    },
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  margin: 10px 0 0 0;
-  .top {
-    height: 360px;
-    overflow: hidden;
-    .right {
-      padding: 0 0 0 10px;
-      .name {
-        font-size: 18px;
-        font-weight: bold;
-        padding: 10px;
-        border: 1px solid #ccc;
-        text-align: center;
-      }
-      .otherInfo {
-        padding: 10px;
-        font-size: 16px;
-        border: 1px solid #ccc;
-      }
-    }
-    .achieveImage {
-      position: relative;
-      height: 348px;
-      background: url('~@common/src/assets/achieve.png');
-      background-size: 100% 100%;
-      background-repeat: no-repeat;
-      padding: 28px 25px;
-      .name {
-        font-size: 16px;
-        font-weight: bold;
-        margin: 10px 0;
-      }
-      .brief {
-        font-size: 14px;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        -webkit-line-clamp: 11;
-        word-break: break-all;
-        display: -webkit-box;
-        -webkit-box-orient: vertical;
-      }
-      .other {
-        position: absolute;
-        bottom: 10px;
-        width: 82%;
-        font-size: 14px;
-        span {
-          display: inline-block;
-          width: 100%;
-        }
-      }
-    }
-  }
-  .down {
-    margin: 0 0 15px 0;
-    .downInfo {
-      border: 1px solid #ccc;
-      .tit {
-        height: 150px;
-        line-height: 150px;
-        text-align: center;
-        border-right: 1px solid #ccc;
-      }
-      .info {
-        font-size: 16px;
-        padding: 10px;
-        min-height: 150px;
-      }
-    }
-  }
-  .anniu {
-    text-align: center;
-    /deep/.el-button {
-      margin: 0 10px;
-    }
-  }
-}
-</style>

+ 0 - 108
src/views/achieveLive - 副本/product/detail.vue

@@ -1,108 +0,0 @@
-<template>
-  <div id="detail">
-    <el-row>
-      <el-col :span="24" class="main">
-        <subTop :liveInfo="liveInfo"></subTop>
-        <el-col :span="24" class="info">
-          <div class="w_1200">
-            <el-col :span="24" class="infoMess">
-              <el-col :span="24" class="btn">
-                <el-button type="primary" size="mini" @click="back">返回活动首页</el-button>
-              </el-col>
-              <el-col :span="24">
-                <techolInfo :form="info" v-if="type == '0'"></techolInfo>
-                <achieveInfo :form="info" v-else-if="type == '1'"></achieveInfo>
-              </el-col>
-            </el-col>
-          </div>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import subTop from '../parts/subTop.vue';
-import achieveInfo from '../product/achieveInfo.vue';
-import techolInfo from '../product/techolInfo.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-const { mapActions: product } = createNamespacedHelpers('product');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'detail',
-  props: {},
-  components: {
-    subTop,
-    achieveInfo,
-    techolInfo,
-  },
-  data: function() {
-    return {
-      liveInfo: {},
-      info: {},
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...dock(['fetch']),
-    ...product({ productFetch: 'fetch' }),
-    async search() {
-      if (this.dock_id) {
-        let res = await this.fetch(this.dock_id);
-        if (this.$checkRes(res)) {
-          this.$set(this, `liveInfo`, res.data);
-        }
-        res = await this.productFetch(this.id);
-        if (this.$checkRes(res)) {
-          this.$set(this, `info`, res.data);
-        }
-      }
-    },
-    // 返回
-    back() {
-      this.$router.push({ path: '/achieveLive/detail', query: { id: this.dock_id } });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    dock_id() {
-      return this.$route.query.dock_id;
-    },
-    id() {
-      return this.$route.query.id;
-    },
-    type() {
-      return this.$route.query.type;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .info {
-    position: absolute;
-    top: 70%;
-    padding: 0 0 15px 0;
-    .infoMess {
-      min-height: 630px;
-      box-shadow: 0 0 5px #ccc;
-      background-color: #fff;
-      padding: 20px;
-      .btn {
-        text-align: right;
-        margin: 0 0 10px 0;
-        height: 40px;
-        overflow: hidden;
-        border-bottom: 2px solid #666;
-      }
-    }
-  }
-}
-</style>

+ 0 - 159
src/views/achieveLive - 副本/product/index.vue

@@ -1,159 +0,0 @@
-<template>
-  <div id="index">
-    <el-row>
-      <el-col :span="24" class="main">
-        <subTop :liveInfo="liveInfo"></subTop>
-        <el-col :span="24" class="info">
-          <div class="w_1200">
-            <el-col :span="24" class="infoMess">
-              <el-col :span="24" class="btn">
-                <el-col :span="12" class="left">
-                  <span>项目成果:{{ total }}项</span>
-                </el-col>
-                <el-col :span="12" class="right">
-                  <el-button type="primary" size="mini" @click="back">返回活动首页</el-button>
-                </el-col>
-              </el-col>
-              <el-col :span="24" class="list">
-                <data-table :fields="fields" :opera="opera" :data="list" :total="total" :limit="15" @query="search" @check="toCheck"></data-table>
-              </el-col>
-            </el-col>
-          </div>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import subTop from '../parts/subTop.vue';
-import dataTable from '@common/src/components/frame/filter-page-table.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: dock } = createNamespacedHelpers('dock');
-const { mapActions: dockUser } = createNamespacedHelpers('dockUser');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'index',
-  props: {},
-  components: {
-    subTop,
-    dataTable,
-  },
-  data: function() {
-    return {
-      // 展会详情
-      liveInfo: {},
-      opera: [
-        {
-          label: '对接',
-          method: 'check',
-        },
-      ],
-      fields: [
-        { label: '产品名称', prop: 'name' },
-        { label: '联系人', prop: 'contacts' },
-        { label: '企业名称', prop: 'company' },
-        { label: '所属领域', prop: 'field' },
-        { label: '合作方式', prop: 'cooperation' },
-      ],
-      list: [],
-      total: 0,
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...dock(['fetch', 'productQuery']),
-    ...dockUser(['query']),
-    async search({ skip = 0, limit = 10, ...info } = {}) {
-      if (this.dock_id) {
-        let res = await this.fetch(this.dock_id);
-        if (this.$checkRes(res)) {
-          this.$set(this, `liveInfo`, res.data);
-        }
-      }
-      let res = await this.query({ skip, limit, dock_id: this.dock_id, ...info });
-      if (this.$checkRes(res)) {
-        for (const val of res.data) {
-          // 成果
-          let achieve = val.goodsList.filter(i => i.type == '1');
-          if (achieve) this.$set(this, `list`, achieve);
-          this.$set(this, `total`, achieve.length);
-          // 需求
-          let techol = val.goodsList.filter(i => i.type == '0');
-          if (techol) this.$set(this, `list`, techol);
-          this.$set(this, `total`, techol.length);
-        }
-      }
-      // if (this.type == '0') {
-      //   // 科技需求
-      //   let res = await this.productQuery({ skip, limit, type: '0', dock_id: this.dock_id, ...info });
-      //   if (this.$checkRes(res)) this.$set(this, `list`, res.data);
-      //   this.$set(this, `total`, res.total);
-      // } else {
-      //   // 技术成果
-      //   let res = await this.productQuery({ skip, limit, type: '1', dock_id: this.dock_id, ...info });
-      //   if (this.$checkRes(res)) this.$set(this, `list`, res.data);
-      //   this.$set(this, `total`, res.total);
-      // }
-    },
-    // 对接
-    toCheck({ data }) {
-      this.$router.push({ path: '/achieveLive/product/detail', query: { dock_id: this.dock_id, id: data.id, type: data.type } });
-    },
-    // 返回
-    back() {
-      this.$router.push({ path: '/achieveLive/detail', query: { id: this.dock_id } });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    dock_id() {
-      return this.$route.query.dock_id;
-    },
-    type() {
-      return this.$route.query.type;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .info {
-    position: absolute;
-    top: 70%;
-    padding: 0 0 15px 0;
-    .infoMess {
-      min-height: 630px;
-      box-shadow: 0 0 5px #ccc;
-      background-color: #fff;
-      padding: 20px;
-      .btn {
-        margin: 0 0 10px 0;
-        height: 40px;
-        overflow: hidden;
-        border-bottom: 2px solid #666;
-        .left {
-          span {
-            display: inline-block;
-            background: #ff0000;
-            color: #fff;
-            height: 40px;
-            line-height: 40px;
-            padding: 0px 10px;
-            font-weight: bold;
-          }
-        }
-        .right {
-          text-align: right;
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 329
src/views/achieveLive - 副本/product/techolInfo.vue

@@ -1,329 +0,0 @@
-<template>
-  <div id="techolInfo">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="top">
-          <el-col :span="7" class="left" v-if="form.image != ''">
-            <el-carousel trigger="click" height="305px" :autoplay="false">
-              <el-carousel-item v-for="(item, index) in form.image" :key="index">
-                <el-image :src="item.url" style="width:99%;height:345px;border: 1px solid #ccc;"></el-image>
-              </el-carousel-item>
-            </el-carousel>
-          </el-col>
-          <el-col :span="7" class="achieveImage">
-            <p>紧急程度</p>
-            <p><el-rate v-model="value" disabled :max="max" :texts="texts" :colors="colors"> </el-rate></p>
-          </el-col>
-          <el-col :span="17" class="right">
-            <el-col :span="24" class="name textOver">
-              {{ form.name || '暂无' }}
-            </el-col>
-            <el-col :span="24">
-              <el-col :span="4" class="otherInfo textOver">
-                需求方
-              </el-col>
-              <el-col :span="20" class="otherInfo textOver">
-                {{ form.company }}
-                <el-link v-if="form.companyweb != null || ''" :href="form.companyweb" :underline="false" target="_blank">({{ form.companyweb }})</el-link>
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                所属领域
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.field || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                合作方式
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.cooperation ? form.cooperation : '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                紧急程度
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver"> {{ form.demand || '暂无' }} </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                投资预算
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver"> {{ form.budget || '暂无' }} </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                联系人
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.contacts || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="12">
-              <el-col :span="8" class="otherInfo textOver">
-                QQ/微信
-              </el-col>
-              <el-col :span="16" class="otherInfo textOver">
-                {{ form.qqwx || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="24">
-              <el-col :span="4" class="otherInfo textOver">
-                联系电话
-              </el-col>
-              <el-col :span="20" class="otherInfo textOver">
-                {{ getphone(form.phone) || '暂无' }}
-              </el-col>
-            </el-col>
-            <el-col :span="24">
-              <el-col :span="4" class="otherInfo textOver">
-                电子邮箱
-              </el-col>
-              <el-col :span="20" class="otherInfo textOver">
-                {{ form.email || '暂无' }}
-              </el-col>
-            </el-col>
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="down">
-          <el-col :span="24" class="downInfo">
-            <el-col :span="4" class="tit">
-              <h2>需求说明</h2>
-            </el-col>
-            <el-col :span="20" class="info">
-              {{ form.requirementdesc || '暂无' }}
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downInfo">
-            <el-col :span="4" class="tit">
-              <h2>预期目标</h2>
-            </el-col>
-            <el-col :span="20" class="info">
-              {{ form.expect || '暂无' }}
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downInfo">
-            <el-col :span="4" class="tit">
-              <h2>需求现状</h2>
-            </el-col>
-            <el-col :span="20" class="info">
-              {{ form.present || '暂无' }}
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="downInfo">
-            <el-col :span="4" class="tit">
-              <h2>合作要求</h2>
-            </el-col>
-            <el-col :span="20" class="info">
-              {{ form.condition || '暂无' }}
-            </el-col>
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="anniu" v-if="showBtn">
-          <el-button type="primary" size="mini" @click="btnPhone()">交流洽谈</el-button>
-          <el-button type="success" size="mini" @click="onSubmit()">供求对接</el-button>
-        </el-col>
-      </el-col>
-    </el-row>
-    <el-dialog title="对接" :visible.sync="dialogTableVisible" destroy-on-close>
-      <chat :room="room"></chat>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import chat from '@c/chat.vue';
-import _ from 'lodash';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: personRoom } = createNamespacedHelpers('personRoom');
-const { mapActions: transaction } = createNamespacedHelpers('transaction');
-export default {
-  name: 'techolInfo',
-  props: {
-    form: { type: Object },
-    showBtn: { type: Boolean, default: () => true },
-  },
-  components: { chat },
-  data: function() {
-    return {
-      value: 2,
-      max: 3,
-      colors: ['#ff0000', '#ff0000', '#ff0000'],
-      texts: ['一般', '紧急', '长期'],
-      // 对接
-      dialogTableVisible: false,
-      room: {},
-    };
-  },
-  created() {
-    console.log(this.form);
-  },
-  methods: {
-    ...personRoom(['create']),
-    ...transaction({ getTran: 'query', createTran: 'create' }),
-    async btnPhone() {
-      if (!this.room.id) {
-        //TODO 请求房间号
-        let obj = {};
-        if (!_.get(this.user, 'id')) {
-          // this.$message.error('游客身份无法与卖家对话,请先注册');
-          this.$message({
-            dangerouslyUseHTMLString: true,
-            message: '<strong><a href="http://broadcast.waityou24.cn/live/login" style="color:red;">游客身份无法与卖家对话,请先注册</a></strong>',
-            type: 'error',
-          });
-          return;
-        } else {
-          obj.p1_id = this.user.id;
-          obj.p1 = this.user.name;
-        }
-        if (!this.form.user_id) {
-          this.$message.error('缺少卖家信息,请联系卖家或管理员');
-          return;
-        } else {
-          obj.p2_id = this.form.user_id;
-          obj.p2 = this.form.contacts;
-        }
-        let res = await this.create(obj);
-        if (this.$checkRes(res)) {
-          this.$set(this, `room`, res.data);
-        }
-      }
-      this.dialogTableVisible = true;
-    },
-    //供求对接
-    async onSubmit() {
-      const data = _.cloneDeep(this.form);
-      const obj = {
-        dock_id: this.dock_id,
-        supplier: _.get(data, 'user_id'),
-        s_name: _.get(data, 'contacts'),
-        s_phone: _.get(data, 'phone'),
-        product_id: _.get(data, 'id'),
-        product: _.get(data, 'name'),
-        demander: _.get(this.user, 'id'),
-        d_name: _.get(this.user, 'name'),
-        d_phone: _.get(this.user, 'phone'),
-      };
-      if (obj.demander === obj.supplier) {
-        this.$message.error('您不能对自己的成果进行对接!');
-        return;
-      }
-      const list = await this.getTran({ product_id: obj.product_id, demander: obj.demander, dock_id: this.dock_id });
-      if (list.total > 0) {
-        this.$message.warning('您已申请供求对接,无需再次申请!');
-        return;
-      }
-      const res = await this.createTran(obj);
-      this.$checkRes(res, '对接成功', res.errmsg || '对接失败');
-    },
-    // 隐藏手机号
-    getphone(value) {
-      if (value == undefined) {
-        return '暂无';
-      } else {
-        if (value.length === 11) {
-          let start = value.slice(0, 4);
-          let end = value.slice(-3);
-          return `${start}****${end}`;
-        } else {
-          return value;
-        }
-      }
-    },
-    searchdegre() {
-      // if (this.form.degreeurgency == '一般') this.$set(this, `value`, 1);
-      // else if (this.form.degreeurgency == '紧急') this.$set(this, `value`, 2);
-      // else if (this.form.degreeurgency == '长期') this.$set(this, `value`, 3);
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    dock_id() {
-      return this.$route.query.dock_id;
-    },
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    form: {
-      deep: true,
-      immediate: true,
-      handler(val) {
-        this.searchdegre();
-      },
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .top {
-    height: 315px;
-    overflow: hidden;
-    .right {
-      padding: 0 0 0 10px;
-      .name {
-        font-size: 18px;
-        font-weight: bold;
-        padding: 10px;
-        border: 1px solid #ccc;
-        text-align: center;
-      }
-      .otherInfo {
-        padding: 10px;
-        font-size: 16px;
-        border: 1px solid #ccc;
-      }
-    }
-  }
-  .down {
-    margin: 0 0 15px 0;
-    .downInfo {
-      border: 1px solid #ccc;
-      .tit {
-        height: 150px;
-        line-height: 150px;
-        text-align: center;
-        border-right: 1px solid #ccc;
-      }
-      .info {
-        font-size: 16px;
-        padding: 10px;
-        min-height: 150px;
-      }
-    }
-  }
-  .anniu {
-    text-align: center;
-    /deep/.el-button {
-      margin: 0 10px;
-    }
-  }
-  .achieveImage {
-    height: 305px;
-    overflow: hidden;
-    p:nth-child(1) {
-      font-size: 25px;
-      text-align: left;
-      padding: 10px 0;
-    }
-    p:nth-child(2) {
-      margin: 60px 0 0 0;
-      text-align: center;
-      .el-rate__icon {
-        font-size: 60px;
-      }
-    }
-  }
-}
-/deep/.el-rate__icon {
-  font-size: 60px;
-}
-</style>