guhongwei 3 gadi atpakaļ
vecāks
revīzija
8364c389f2

+ 149 - 0
src/views/admin/live/achieve/apply copy.vue

@@ -0,0 +1,149 @@
+<template>
+  <div id="aApply">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="leftTop"> <span>|</span> <span>申请管理</span> </el-col>
+        <el-col :span="24" class="info">
+          <span v-if="display == 'list'">
+            <data-table :fields="fields" :opera="opera" :data="list" :total="total" @check="toCheck"></data-table>
+          </span>
+          <span v-else>
+            <el-col :span="24">
+              <!-- <el-table :data="goodsList" border style="width: 100%">
+                <el-table-column prop="name" label="产品名称" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column label="类型" align="center">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.type == '0' ? '科技需求' : scope.row.type == '1' ? '技术成果' : '商务服务' }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="contacts" label="联系人" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="phone" label="电话" align="center"> </el-table-column>
+                <el-table-column prop="field" label="所属领域" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="cooperation" label="合作方式" align="center"> </el-table-column>
+                <el-table-column label="用户状态" align="center">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.dockStatus == '0' ? '待审核' : scope.row.dockStatus == '1' ? '通过' : '拒绝' }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" align="center">
+                  <template slot-scope="scope">
+                    <el-button @click="toCheck(scope.row)" type="text" size="small">审核</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <el-col :span="24" class="page">
+                <el-pagination
+                  @current-change="handleCurrentChange1"
+                  :current-page="currentPage1"
+                  layout="total, prev, pager, next, jumper"
+                  :total="goodsTotal"
+                  :page-size="pageSize"
+                >
+                </el-pagination>
+              </el-col> -->
+              <goodsList :list="gList" :total="gTotal" @search="getGoodsList" @check="toGoodsCheck" @back="display = 'list'"></goodsList>
+            </el-col>
+          </span>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import goodsList from './apply/goodsList.vue';
+import dataTable from '@common/src/components/frame/filter-page-table.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: dockUser } = createNamespacedHelpers('dockUser');
+export default {
+  name: 'aApply',
+  props: {},
+  components: { dataTable, goodsList },
+  data: function() {
+    return {
+      display: 'list',
+      opera: [
+        {
+          label: '审核',
+          method: 'check',
+        },
+      ],
+      fields: [
+        { label: '姓名', prop: 'user_name' },
+        { label: '电话', prop: 'contact_tel' },
+        { label: '申请时间', prop: 'apply_time' },
+        { label: '用户状态', prop: 'status', format: i => (i == '1' ? '已通过' : i == '2' ? '已拒绝' : '未审核') },
+      ],
+      list: [],
+      total: 0,
+      gList: [],
+      gTotal: 0,
+      gListIndex: 0,
+      gUserid: '',
+    };
+  },
+  created() {
+    this.search();
+  },
+  methods: {
+    ...dockUser(['query', 'update', 'delete', 'goodsCheck']),
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      info.dock_id = this.user.id;
+      const res = await this.query({ skip, limit, ...info });
+      if (this.$checkRes(res)) {
+        this.$set(this, `list`, res.data);
+        this.$set(this, `total`, res.total);
+      }
+    },
+    toCheck({ index }) {
+      this.display = 'goodsList';
+      this.$set(this, `gListIndex`, index);
+      const list = _.slice(_.get(this.list[this.gListIndex], 'goodsList', []), 0, 20);
+      this.$set(this, `gList`, list);
+      this.$set(this, `gTotal`, _.get(this.list[this.gListIndex], 'goodsList', []).length);
+      this.$set(this, `gUserid`, _.get(this.list[this.gListIndex], 'id'));
+    },
+    getGoodsList({ skip, limit }) {
+      const list = _.slice(_.get(this.list[this.gListIndex], 'goodsList', []), skip, skip + limit);
+      this.$set(this, `gList`, list);
+    },
+    async toGoodsCheck(data) {
+      const res = await this.goodsCheck({ ...data, id: this.gUserid });
+      if (this.$checkRes(res, '审核完成', res.errmsg || '审核失败')) {
+        this.search();
+      }
+    },
+  },
+  computed: {
+    ...mapState(['user', 'menuParams']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.leftTop {
+  font-size: 18px;
+  width: 96%;
+  height: 41px;
+  line-height: 35px;
+  border-bottom: 1px solid #e5e5e5;
+  position: relative;
+  bottom: 1px;
+  margin: 10px;
+  font-weight: 600;
+  color: #22529a;
+}
+.info {
+  padding: 0 40px 0 10px;
+}
+.page {
+  text-align: center;
+  padding: 10px 0;
+}
+</style>

+ 72 - 90
src/views/admin/live/achieve/apply.vue

@@ -1,67 +1,46 @@
 <template>
-  <div id="aApply">
+  <div id="apply">
     <el-row>
-      <el-col :span="24">
+      <el-col :span="24" class="main">
         <el-col :span="24" class="leftTop"> <span>|</span> <span>申请管理</span> </el-col>
-        <el-col :span="24" class="info">
+        <el-col :span="24" class="two">
           <span v-if="display == 'list'">
-            <data-table :fields="fields" :opera="opera" :data="list" :total="total" @check="toCheck"></data-table>
+            <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @check="toCheck"></data-table>
           </span>
           <span v-else>
-            <el-col :span="24">
-              <!-- <el-table :data="goodsList" border style="width: 100%">
-                <el-table-column prop="name" label="产品名称" align="center" show-overflow-tooltip> </el-table-column>
-                <el-table-column label="类型" align="center">
-                  <template slot-scope="scope">
-                    <span>{{ scope.row.type == '0' ? '科技需求' : scope.row.type == '1' ? '技术成果' : '商务服务' }}</span>
-                  </template>
-                </el-table-column>
-                <el-table-column prop="contacts" label="联系人" align="center" show-overflow-tooltip> </el-table-column>
-                <el-table-column prop="phone" label="电话" align="center"> </el-table-column>
-                <el-table-column prop="field" label="所属领域" align="center" show-overflow-tooltip> </el-table-column>
-                <el-table-column prop="cooperation" label="合作方式" align="center"> </el-table-column>
-                <el-table-column label="用户状态" align="center">
-                  <template slot-scope="scope">
-                    <span>{{ scope.row.dockStatus == '0' ? '待审核' : scope.row.dockStatus == '1' ? '通过' : '拒绝' }}</span>
-                  </template>
-                </el-table-column>
-                <el-table-column fixed="right" label="操作" align="center">
-                  <template slot-scope="scope">
-                    <el-button @click="toCheck(scope.row)" type="text" size="small">审核</el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-              <el-col :span="24" class="page">
-                <el-pagination
-                  @current-change="handleCurrentChange1"
-                  :current-page="currentPage1"
-                  layout="total, prev, pager, next, jumper"
-                  :total="goodsTotal"
-                  :page-size="pageSize"
-                >
-                </el-pagination>
-              </el-col> -->
-              <goodsList :list="gList" :total="gTotal" @search="getGoodsList" @check="toGoodsCheck" @back="display = 'list'"></goodsList>
-            </el-col>
+            <product :productList="productList" :total="productTotal" @back="back" @toEdit="toEdit"></product>
           </span>
         </el-col>
       </el-col>
     </el-row>
+    <el-dialog title="产品审核" :visible.sync="productDialog" width="50%" :before-close="handleClose">
+      <achieve v-if="form.type == '1'" :form="form"></achieve>
+      <techol v-if="form.type == '0'" :form="form"></techol>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import goodsList from './apply/goodsList.vue';
+import achieve from './apply/achieve.vue';
+import techol from './apply/techol.vue';
+import product from './apply/product.vue';
 import dataTable from '@common/src/components/frame/filter-page-table.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: dockUser } = createNamespacedHelpers('dockUser');
 export default {
-  name: 'aApply',
+  name: 'apply',
   props: {},
-  components: { dataTable, goodsList },
+  components: {
+    dataTable,
+    product,
+    achieve,
+    techol,
+  },
   data: function() {
     return {
       display: 'list',
+      list: [],
+      total: 0,
       opera: [
         {
           label: '审核',
@@ -69,24 +48,24 @@ export default {
         },
       ],
       fields: [
-        { label: '姓名', prop: 'user_name' },
-        { label: '电话', prop: 'contact_tel' },
-        { label: '申请时间', prop: 'apply_time' },
-        { label: '用户状态', prop: 'status', format: i => (i == '1' ? '已通过' : i == '2' ? '已拒绝' : '未审核') },
+        { label: '姓名', prop: 'name' },
+        { label: '电话', prop: 'phone' },
+        { label: '申请时间', prop: 'create_time' },
+        { label: '用户状态', prop: 'status', format: i => (i == '1' ? '已通过' : i == '2' ? '已拒绝' : '待审中') },
       ],
-      list: [],
-      total: 0,
-      gList: [],
-      gTotal: 0,
-      gListIndex: 0,
-      gUserid: '',
+      // 产品列表
+      productList: [],
+      productTotal: 0,
+      // 审核产品
+      productDialog: false,
+      form: {},
     };
   },
   created() {
     this.search();
   },
   methods: {
-    ...dockUser(['query', 'update', 'delete', 'goodsCheck']),
+    ...dockUser(['query']),
     async search({ skip = 0, limit = 10, ...info } = {}) {
       info.dock_id = this.user.id;
       const res = await this.query({ skip, limit, ...info });
@@ -95,55 +74,58 @@ export default {
         this.$set(this, `total`, res.total);
       }
     },
-    toCheck({ index }) {
-      this.display = 'goodsList';
-      this.$set(this, `gListIndex`, index);
-      const list = _.slice(_.get(this.list[this.gListIndex], 'goodsList', []), 0, 20);
-      this.$set(this, `gList`, list);
-      this.$set(this, `gTotal`, _.get(this.list[this.gListIndex], 'goodsList', []).length);
-      this.$set(this, `gUserid`, _.get(this.list[this.gListIndex], 'id'));
+    // 审核产品
+    toCheck({ data }) {
+      this.$set(this, `productList`, data.productList);
+      this.$set(this, `productTotal`, data.productList.length);
+      this.display = 'product';
     },
-    getGoodsList({ skip, limit }) {
-      const list = _.slice(_.get(this.list[this.gListIndex], 'goodsList', []), skip, skip + limit);
-      this.$set(this, `gList`, list);
+    // 审核打开
+    toEdit(data) {
+      this.$set(this, `form`, data);
+      this.productDialog = true;
     },
-    async toGoodsCheck(data) {
-      const res = await this.goodsCheck({ ...data, id: this.gUserid });
-      if (this.$checkRes(res, '审核完成', res.errmsg || '审核失败')) {
-        this.search();
-      }
+    // 审核关闭
+    handleClose() {
+      this.productDialog = false;
+    },
+    // 返回
+    back() {
+      this.display = 'list';
     },
   },
   computed: {
-    ...mapState(['user', 'menuParams']),
-    pageTitle() {
-      return `${this.$route.meta.title}`;
-    },
+    ...mapState(['user']),
   },
   metaInfo() {
     return { title: this.$route.meta.title };
   },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
 };
 </script>
 
 <style lang="less" scoped>
-.leftTop {
-  font-size: 18px;
-  width: 96%;
-  height: 41px;
-  line-height: 35px;
-  border-bottom: 1px solid #e5e5e5;
-  position: relative;
-  bottom: 1px;
-  margin: 10px;
-  font-weight: 600;
-  color: #22529a;
-}
-.info {
-  padding: 0 40px 0 10px;
-}
-.page {
-  text-align: center;
-  padding: 10px 0;
+.main {
+  .leftTop {
+    font-size: 18px;
+    width: 96%;
+    height: 41px;
+    line-height: 35px;
+    border-bottom: 1px solid #e5e5e5;
+    position: relative;
+    bottom: 1px;
+    margin: 10px;
+    font-weight: 600;
+    color: #22529a;
+  }
+  .two {
+    padding: 0 30px 0 10px;
+  }
 }
 </style>

+ 258 - 0
src/views/admin/live/achieve/apply/achieve.vue

@@ -0,0 +1,258 @@
+<template>
+  <div id="achieve">
+    <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:305px;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>
+        </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>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'achieve',
+  props: {
+    form: { type: Object },
+  },
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</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;
+      }
+    }
+    .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;
+      }
+    }
+  }
+}
+</style>

+ 104 - 0
src/views/admin/live/achieve/apply/product.vue

@@ -0,0 +1,104 @@
+<template>
+  <div id="product">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <el-button type="primary" size="mini" @click="back">返回</el-button>
+        </el-col>
+        <el-col :span="24" class="two">
+          <el-table :data="list" border style="width: 100%">
+            <el-table-column prop="name" label="产品名称" align="center"> </el-table-column>
+            <el-table-column prop="company" label="申请单位" align="center"> </el-table-column>
+            <el-table-column prop="phone" label="联系电话" align="center"> </el-table-column>
+            <el-table-column prop="cooperation" label="合作方式" align="center"> </el-table-column>
+            <el-table-column prop="field" label="所属领域" align="center"> </el-table-column>
+            <el-table-column fixed="right" label="操作" align="center">
+              <template slot-scope="scope">
+                <el-button @click="edit(scope.row)" type="primary" size="mini">审核</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <el-col :span="24" class="page">
+            <el-pagination
+              background
+              @current-change="handleCurrentChange"
+              :current-page="currentPage"
+              layout="total, prev, pager, next"
+              :total="total"
+              :page-size="pageSize"
+            >
+            </el-pagination>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'product',
+  props: {
+    productList: { type: Array },
+    total: { type: Number },
+  },
+  components: {},
+  data: function() {
+    return {
+      currentPage: 1, //默认数据1
+      pageSize: 10, //每页显示数据数量
+      origin: [], //分割数据
+      list: [], //显示数据列表
+    };
+  },
+  created() {},
+  methods: {
+    back() {
+      this.$emit('back');
+    },
+    // 审核产品
+    edit(data) {
+      this.$emit('toEdit', data);
+    },
+    // 分页
+    searchPage(page = 1) {
+      this.$set(this, `list`, this.origin[page - 1]);
+    },
+    handleCurrentChange(currentPage) {
+      this.searchPage(currentPage);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    productList: {
+      deep: true,
+      immediate: true,
+      handler(val) {
+        if (val && val.length > 0) this.$set(this, `origin`, _.chunk(val, this.pageSize));
+        this.searchPage();
+      },
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .one {
+    text-align: right;
+    margin: 0 0 10px 0;
+  }
+  .two {
+    .page {
+      text-align: right;
+      margin: 10px 0;
+    }
+  }
+}
+</style>

+ 238 - 0
src/views/admin/live/achieve/apply/techol.vue

@@ -0,0 +1,238 @@
+<template>
+  <div id="techol">
+    <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" v-else 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>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'techol',
+  props: {
+    form: { type: Object },
+  },
+  components: {},
+  data: function() {
+    return {
+      value: 2,
+      max: 3,
+      colors: ['#ff0000', '#ff0000', '#ff0000'],
+      texts: ['一般', '紧急', '长期'],
+    };
+  },
+  created() {},
+  methods: {
+    // 隐藏手机号
+    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;
+        }
+      }
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</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;
+      }
+    }
+  }
+  .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>