guhongwei 4 éve
szülő
commit
fd1c0204ad

+ 1 - 0
.gitignore

@@ -1,5 +1,6 @@
 .DS_Store
 node_modules
+package-lock.json
 
 # local env files
 .env.local

+ 5 - 0
package-lock.json

@@ -6929,6 +6929,11 @@
         }
       }
     },
+    "loadsh": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npm.taobao.org/loadsh/download/loadsh-0.0.4.tgz",
+      "integrity": "sha1-UxS6vRK7EzFd3gJKTKcHWMVInS0="
+    },
     "locate-path": {
       "version": "2.0.0",
       "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz",

+ 1 - 0
package.json

@@ -13,6 +13,7 @@
     "core-js": "^3.6.4",
     "element-ui": "^2.13.2",
     "jsonwebtoken": "^8.5.1",
+    "loadsh": "0.0.4",
     "lodash": "^4.17.15",
     "moment": "^2.26.0",
     "naf-core": "^0.1.2",

+ 15 - 0
src/router/index.js

@@ -240,6 +240,13 @@ const routes = [
     meta: { title: '申请管理', isleftarrow: true },
     component: () => import('../views/dockCenter/applyInfo/index.vue'),
   },
+  // 审核管理-审核产品
+  {
+    path: '/dockCenter/applyInfo/productList',
+    name: 'dockCenter_productList',
+    meta: { title: '审核产品', isleftarrow: true },
+    component: () => import('../views/dockCenter/applyInfo/productList.vue'),
+  },
   // VIP用户
   {
     path: '/dockCenter/vipInfo/index',
@@ -247,6 +254,14 @@ const routes = [
     meta: { title: 'VIP用户', isleftarrow: true },
     component: () => import('../views/dockCenter/vipInfo/index.vue'),
   },
+  // vip用户+添加用户
+  {
+    path: '/dockCenter/vipInfo/addUser',
+    name: 'dockCenter_addUser',
+    meta: { title: '添加&维护VIP用户', isleftarrow: true },
+    component: () => import('../views/dockCenter/vipInfo/addUser.vue'),
+  },
+
   // 交易备案
   {
     path: '/dockCenter/transaction/index',

+ 101 - 2
src/views/dockCenter/applyInfo/index.vue

@@ -6,7 +6,54 @@
           <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
         </el-col>
         <el-col :span="24" class="main">
-          申请管理
+          <el-tabs v-model="activeName" type="card">
+            <el-tab-pane label="待审核" name="first">
+              <el-col :span="24" class="onelist" v-for="(item, index) in oneList" :key="index">
+                <el-col :span="12" class="name">
+                  {{ item.user_name }}
+                </el-col>
+                <el-col :span="12" class="name">
+                  用户类别:{{ item.role == '4' ? '个人' : item.role == '5' ? '机构' : item.role == '6' ? '专家' : '未识别' }}
+                </el-col>
+                <el-col :span="24" class="tel">
+                  联系电话:<span>{{ item.contact_tel }} </span></el-col
+                >
+                <el-col :span="24" class="tel">
+                  申请时间:<span>{{ item.apply_time }} </span></el-col
+                >
+                <el-col :span="24" class="tel">
+                  用户状态:<span>{{ item.status == '0' ? '待审核' : item.status == '1' ? '通过' : item.status == '2' ? '拒绝' : '未识别' }}</span>
+                </el-col>
+                <el-col :span="24" class="btn">
+                  <el-button type="success" size="mini">同意参展</el-button>
+                  <el-button type="danger" size="mini">拒绝参展</el-button>
+                  <!-- <el-button type="primary" size="mini" v-if="item.status == '1'"> 审核参展产品</el-button> -->
+                  <el-button type="primary" size="mini" @click="$router.push({ path: '/dockCenter/applyInfo/productList', query: { id: item.id } })">
+                    审核参展产品</el-button
+                  >
+                </el-col>
+              </el-col>
+            </el-tab-pane>
+            <el-tab-pane label="审核完成" name="second">
+              <el-col :span="24" class="onelist" v-for="(item, index) in twoList" :key="index">
+                <el-col :span="12" class="name">
+                  {{ item.user_name }}
+                </el-col>
+                <el-col :span="12" class="name">
+                  用户类别: {{ item.role == '4' ? '个人' : item.role == '5' ? '机构' : item.role == '6' ? '专家' : '未识别' }}
+                </el-col>
+                <el-col :span="24" class="tel">
+                  联系电话:<span>{{ item.contact_tel }} </span></el-col
+                >
+                <el-col :span="24" class="tel">
+                  申请时间:<span>{{ item.apply_time }} </span></el-col
+                >
+                <el-col :span="24" class="tel">
+                  用户状态:<span>{{ item.status == '0' ? '待审核' : item.status == '1' ? '通过' : item.status == '2' ? '拒绝' : '未识别' }}</span>
+                </el-col>
+              </el-col>
+            </el-tab-pane>
+          </el-tabs>
         </el-col>
       </el-col>
     </el-row>
@@ -28,6 +75,27 @@ export default {
       isleftarrow: '',
       // 返回
       navShow: true,
+      activeName: 'first',
+      // 待审核
+      oneList: [
+        {
+          user_name: '测试',
+          role: '4',
+          contact_tel: '11111111111',
+          apply_time: '2020-02-02',
+          status: '0',
+        },
+      ],
+      // 审核完成
+      twoList: [
+        {
+          user_name: '测试',
+          role: '4',
+          contact_tel: '11111111111',
+          apply_time: '2020-02-02',
+          status: '1',
+        },
+      ],
     };
   },
   created() {},
@@ -45,7 +113,6 @@ export default {
   width: 100%;
   min-height: 667px;
   position: relative;
-  background-color: #f9fafc;
 }
 .top {
   height: 46px;
@@ -56,4 +123,36 @@ export default {
 .main {
   min-height: 570px;
 }
+.onelist {
+  margin: 0 5px 10px 5px;
+  width: 97%;
+  padding: 0 10px;
+  border-radius: 10px;
+  background: #f9fafc;
+  .name {
+    padding: 5px 0px;
+    font-size: 16px;
+  }
+  .tel {
+    padding: 5px 0;
+    font-size: 14px;
+    color: #ccc;
+    span {
+      color: #000;
+    }
+  }
+  .btn {
+    text-align: center;
+    margin: 10px 0;
+  }
+}
+/deep/.el-tabs--card > .el-tabs__header {
+  position: fixed;
+  width: 100%;
+  z-index: 999;
+  background: #fff;
+}
+/deep/.el-tabs__content {
+  top: 55px;
+}
 </style>

+ 173 - 0
src/views/dockCenter/applyInfo/productList.vue

@@ -0,0 +1,173 @@
+<template>
+  <div id="productList">
+    <el-row>
+      <el-col :span="24" class="style">
+        <el-col :span="24" class="top">
+          <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
+        </el-col>
+        <el-col :span="24" class="main">
+          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
+            <el-col :span="20" class="name textOver">
+              {{ item.name }}
+            </el-col>
+            <el-col :span="4" class="name" style="text-align:center;">
+              {{ item.totaltype == '0' ? '技术' : item.totaltype == '1' ? '产品' : item.totaltype == '2' ? '服务' : '未识别' }}
+            </el-col>
+            <el-col :span="24" class="info">
+              所属领域:
+              <span>{{
+                item.field == '0'
+                  ? '先进制造'
+                  : item.field == '1'
+                  ? '新材料'
+                  : item.field == '2'
+                  ? '光电子'
+                  : item.field == '3'
+                  ? '信息技术'
+                  : item.field == '4'
+                  ? '文化和科技融合'
+                  : '未识别'
+              }}</span>
+            </el-col>
+            <el-col :span="24" class="info">
+              合作方式:
+              <span>{{
+                item.coopermode == '0'
+                  ? '技术转让'
+                  : item.coopermode == '1'
+                  ? '技术服务'
+                  : item.coopermode == '2'
+                  ? '技术许可'
+                  : item.coopermode == '3'
+                  ? '技术融资'
+                  : item.coopermode == '4'
+                  ? '其他'
+                  : '未识别'
+              }}</span>
+            </el-col>
+            <el-col :span="24" class="info">
+              状态:
+              <span>{{ item.dockStatus == '0' ? '待审核' : item.dockStatus == '1' ? '通过' : item.dockStatus == '2' ? '拒绝' : '未识别' }}</span>
+            </el-col>
+            <el-col :span="24" class="btn">
+              <el-button type="success" size="mini">同意参展</el-button>
+              <el-button type="danger" size="mini">拒绝参展</el-button>
+            </el-col>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+import NavBar from '@/layout/common/topInfo.vue';
+export default {
+  name: 'productList',
+  props: {},
+  components: { NavBar },
+  data: function() {
+    return {
+      // 头部标题
+      title: '',
+      // meta为true
+      isleftarrow: '',
+      // 返回
+      navShow: true,
+      list: [
+        {
+          name: '测试测hi策划书',
+          totaltype: '1',
+          field: '1',
+          coopermode: '1',
+          dockStatus: '0',
+        },
+        {
+          name: '测试测hi策划书',
+          totaltype: '1',
+          field: '1',
+          coopermode: '1',
+          dockStatus: '0',
+        },
+        {
+          name: '测试测hi策划书',
+          totaltype: '1',
+          field: '1',
+          coopermode: '1',
+          dockStatus: '0',
+        },
+        {
+          name: '测试测hi策划书',
+          totaltype: '1',
+          field: '1',
+          coopermode: '1',
+          dockStatus: '0',
+        },
+        {
+          name: '测试测hi策划书',
+          totaltype: '1',
+          field: '1',
+          coopermode: '1',
+          dockStatus: '0',
+        },
+        {
+          name: '测试测hi策划书测试测hi策划书测试测hi策划书测试测hi策划书测试测hi策划书测试测hi策划书测试测hi策划书',
+          totaltype: '1',
+          field: '1',
+          coopermode: '1',
+          dockStatus: '0',
+        },
+      ],
+    };
+  },
+  created() {},
+  methods: {},
+  computed: { ...mapState(['user']) },
+  mounted() {
+    this.title = this.$route.meta.title;
+    this.isleftarrow = this.$route.meta.isleftarrow;
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.style {
+  width: 100%;
+  min-height: 667px;
+  position: relative;
+}
+.top {
+  height: 46px;
+  overflow: hidden;
+  position: relative;
+  z-index: 999;
+}
+.main {
+  min-height: 570px;
+  margin: 10px 0 0 0;
+}
+.list {
+  margin: 0 5px 10px 5px;
+  width: 97%;
+  padding: 0 10px;
+  border-radius: 10px;
+  background: #f9fafc;
+  .name {
+    padding: 5px 0px;
+    font-size: 16px;
+  }
+  .info {
+    padding: 5px 0;
+    font-size: 14px;
+    color: #ccc;
+    span {
+      color: #000;
+    }
+  }
+  .btn {
+    text-align: center;
+    margin: 10px 0;
+  }
+}
+</style>

+ 97 - 3
src/views/dockCenter/dockInfo/index.vue

@@ -6,7 +6,59 @@
           <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
         </el-col>
         <el-col :span="24" class="main">
-          展会信息
+          <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
+            <el-form-item label="对接会标题">
+              <el-input v-model="form.title" placeholder="请输入对接会标题"></el-input>
+            </el-form-item>
+            <el-form-item label="开始时间">
+              <el-date-picker v-model="form.start_time" type="datetime" placeholder="请选择开始时间" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="结束时间">
+              <el-date-picker v-model="form.end_time" type="datetime" placeholder="请选择结束时间" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="报名截止时间">
+              <el-date-picker
+                v-model="form.join_end"
+                type="datetime"
+                placeholder="请选择报名截止时间"
+                format="yyyy-MM-dd HH:mm"
+                value-format="yyyy-MM-dd HH:mm"
+              >
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="省份">
+              <el-select v-model="form.province" placeholder="请选择省份" @change="changeshenge">
+                <el-option v-for="item in option" :key="item.code" :label="item.name" :value="item.code"> </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="市区">
+              <el-select v-model="form.place" placeholder="请选择市区">
+                <el-option v-for="item in options" :key="item.code" :label="item.name" :value="item.code"> </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="简介">
+              <el-input type="textarea" v-model="form.desc" placeholder="请输入简介"></el-input>
+            </el-form-item>
+            <el-form-item label="负责人">
+              <el-input v-model="form.adminuser" placeholder="请输入用户名"></el-input>
+            </el-form-item>
+            <el-form-item label="负责人手机号">
+              <el-input v-model="form.phone" maxlength="11" placeholder="请输入手机号"> </el-input>
+            </el-form-item>
+            <!-- <el-form-item label="对接会视频">
+              <upload :limit="1" :data="form.file_path" type="file_path" listType="" :url="'/files/imgpath/upload'" @upload="uploadSuccess"></upload>
+            </el-form-item> -->
+            <el-form-item label="状态">
+              <el-radio v-model="form.status" label="1">开始</el-radio>
+              <el-radio v-model="form.status" label="2">结束</el-radio>
+            </el-form-item>
+            <el-col :span="24" style="text-align:center;">
+              <el-button type="primary" @click="submitForm('form')">保存</el-button>
+              <el-button type="primary" @click="submitStatus('form')" v-if="this.form.status == '1' || this.form.status == '2'">展会开启&结束提交</el-button>
+            </el-col>
+          </el-form>
         </el-col>
       </el-col>
     </el-row>
@@ -16,6 +68,7 @@
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
 import NavBar from '@/layout/common/topInfo.vue';
+const { mapActions: place } = createNamespacedHelpers('place');
 export default {
   name: 'index',
   props: {},
@@ -28,10 +81,50 @@ export default {
       isleftarrow: '',
       // 返回
       navShow: true,
+      form: {},
+      rules: {},
+      option: [],
+      options: [],
     };
   },
-  created() {},
-  methods: {},
+  created() {
+    this.searcOption();
+    this.changeshenge();
+  },
+  methods: {
+    ...place({ palcequery: 'query', transactiondtetle: 'delete' }),
+    submitForm(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          console.log('提交');
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    submitStatus(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          console.log('提交');
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    async searcOption() {
+      let level = 1;
+      let res = await this.palcequery({ level });
+      this.$set(this, `option`, res.data);
+    },
+    async changeshenge(value) {
+      let level = 2;
+      let parent = value;
+      let res = await this.palcequery({ level, parent });
+      this.$set(this, `options`, res.data);
+    },
+  },
   computed: { ...mapState(['user']) },
   mounted() {
     this.title = this.$route.meta.title;
@@ -55,5 +148,6 @@ export default {
 }
 .main {
   min-height: 570px;
+  padding: 10px 10px 10px 0px;
 }
 </style>

+ 12 - 2
src/views/dockCenter/statisInfo/index.vue

@@ -6,7 +6,14 @@
           <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
         </el-col>
         <el-col :span="24" class="main">
-          统计报表
+          <el-tabs v-model="activeName" type="card">
+            <el-tab-pane label="技术需求" name="first">
+              <technology></technology>
+            </el-tab-pane>
+            <el-tab-pane label="可转化成果" name="second">
+              <achievements></achievements>
+            </el-tab-pane>
+          </el-tabs>
         </el-col>
       </el-col>
     </el-row>
@@ -16,10 +23,12 @@
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
 import NavBar from '@/layout/common/topInfo.vue';
+import technology from './parts/technology.vue';
+import achievements from './parts/achievements.vue';
 export default {
   name: 'index',
   props: {},
-  components: { NavBar },
+  components: { NavBar, technology, achievements },
   data: function() {
     return {
       // 头部标题
@@ -28,6 +37,7 @@ export default {
       isleftarrow: '',
       // 返回
       navShow: true,
+      activeName: 'first',
     };
   },
   created() {},

+ 181 - 0
src/views/dockCenter/statisInfo/parts/achievements.vue

@@ -0,0 +1,181 @@
+<template>
+  <div id="column">
+    <el-row>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="list">
+          <template>
+            <el-col :span="24" class="search">
+              <el-col :span="5">
+                <el-select v-model="field" filterable clearable placeholder="请选择所属领域" @change="changeField">
+                  <el-option label="先进制造" value="0"></el-option>
+                  <el-option label="新材料" value="1"></el-option>
+                  <el-option label="光电子" value="2"></el-option>
+                  <el-option label="信息技术" value="3"></el-option>
+                  <el-option label="文化和科技融合" value="4"></el-option>
+                </el-select>
+              </el-col>
+              <el-col :span="12">
+                <el-radio-group v-model="radio1" @change="changeRadio">
+                  <el-radio label="0" border>是我处支持范围</el-radio>
+                  <el-radio label="1" border>不是我处支持范围</el-radio>
+                </el-radio-group>
+              </el-col>
+            </el-col>
+            <el-table :data="list" style="width: 100%" border>
+              <el-table-column type="index" label="序号" width="50" align="center"> </el-table-column>
+              <el-table-column prop="name" label="商品名称 " align="center"> </el-table-column>
+              <el-table-column prop="field" label="所属技术领域" align="center">
+                <template v-slot="scoped">
+                  {{
+                    scoped.row.field == '0'
+                      ? '先进制造'
+                      : scoped.row.field == '1'
+                      ? '新材料'
+                      : scoped.row.field == '2'
+                      ? '光电子'
+                      : scoped.row.field == '3'
+                      ? '信息技术'
+                      : scoped.row.field == '4'
+                      ? '文化和科技融合'
+                      : '暂无'
+                  }}
+                </template>
+              </el-table-column>
+              <el-table-column prop="phase" label="研发阶段" align="center">
+                <template v-slot="scoped">
+                  {{ scoped.row.phase == '0' ? '阶段成果' : scoped.row.phase == '1' ? '最终成果' : '暂无' }}
+                </template>
+              </el-table-column>
+              <el-table-column prop="coopermode" label="合作方式" align="center">
+                <template v-slot="scoped">
+                  {{
+                    scoped.row.coopermode == '0'
+                      ? '技术转让'
+                      : scoped.row.coopermode == '1'
+                      ? '技术服务'
+                      : scoped.row.coopermode == '2'
+                      ? '技术许可'
+                      : scoped.row.coopermode == '3'
+                      ? '技术融资'
+                      : scoped.row.coopermode == '4'
+                      ? '其他'
+                      : '暂无'
+                  }}
+                </template>
+              </el-table-column>
+              <el-table-column prop="business" label="交易方式" align="center">
+                <template v-slot="scoped">
+                  {{ scoped.row.business == '0' ? '公用' : scoped.row.business == '1' ? '竞价' : scoped.row.business == '2' ? '转让' : '暂无' }}
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-col :span="24" class="page">
+              <el-pagination
+                @current-change="handleCurrentChange"
+                :current-page="currentPage"
+                layout="total, prev, pager, next, jumper"
+                :total="total"
+                :page-size="pageSize"
+              >
+              </el-pagination>
+            </el-col>
+          </template>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { createNamespacedHelpers, mapGetters, mapState } from 'vuex';
+const { mapActions: dock } = createNamespacedHelpers('dock');
+import _ from 'loadsh';
+export default {
+  name: 'column',
+  props: {},
+  components: {},
+  data: () => ({
+    applyList: [], //查询数据
+    currentPage: 1, //默认数据1
+    pageSize: 10, //每页显示数据数量
+    origin: [], //分割数据
+    list: [], //显示数据列表
+    total: 0,
+    // 技术领域
+    field: '',
+    // 是否我处支持
+    radio1: '',
+  }),
+  created() {
+    this.search();
+  },
+  methods: {
+    ...dock(['query', 'delete', 'update', 'fetch']),
+    async search() {
+      let res = await this.fetch(this.user.uid);
+      let arr = res.data.apply.map(item => item.goodsList);
+      arr = _.flattenDeep(arr);
+      var newArr = arr.filter(item => item.totaltype === '1');
+      this.$set(this, `applyList`, newArr);
+      this.$set(this, `total`, newArr.length);
+    },
+    searchPage(page = 1) {
+      this.$set(this, `list`, this.origin[page - 1]);
+    },
+    handleCurrentChange(currentPage) {
+      this.searchPage(currentPage);
+    },
+    // 筛选技术领域
+    changeField(value) {
+      var arr = this.applyList.filter(item => item.field === value);
+      this.$set(this, `list`, arr);
+      this.$set(this, `total`, arr.length);
+    },
+    // 筛选是否是我处支持
+    changeRadio() {},
+  },
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    applyList: {
+      immediate: true,
+      deep: true,
+      handler(val) {
+        if (val && val.length > 0) this.$set(this, `origin`, _.chunk(val, this.pageSize));
+        this.searchPage();
+      },
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.top {
+  padding: 15px 0;
+  border-bottom: 1px solid #cccc;
+}
+.top .topTitle {
+  padding: 0 10px;
+}
+.top .topAdd {
+  padding: 0 10px 0 0;
+  text-align: right;
+}
+.search {
+  padding: 0 0 18px 0;
+}
+.anniu {
+  padding: 0 10px 0 0;
+}
+.page {
+  padding: 20px 0;
+  text-align: center;
+}
+</style>

+ 181 - 0
src/views/dockCenter/statisInfo/parts/technology.vue

@@ -0,0 +1,181 @@
+<template>
+  <div id="column">
+    <el-row>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="list">
+          <template>
+            <el-col :span="24" class="search">
+              <el-col :span="5">
+                <el-select v-model="field" filterable clearable placeholder="请选择所属领域" @change="changeField">
+                  <el-option label="先进制造" value="0"></el-option>
+                  <el-option label="新材料" value="1"></el-option>
+                  <el-option label="光电子" value="2"></el-option>
+                  <el-option label="信息技术" value="3"></el-option>
+                  <el-option label="文化和科技融合" value="4"></el-option>
+                </el-select>
+              </el-col>
+              <el-col :span="12">
+                <el-radio-group v-model="radio1" @change="changeRadio">
+                  <el-radio label="0" border>是我处支持范围</el-radio>
+                  <el-radio label="1" border>不是我处支持范围</el-radio>
+                </el-radio-group>
+              </el-col>
+            </el-col>
+            <el-table :data="list" style="width: 100%" border>
+              <el-table-column type="index" label="序号" width="50" align="center"> </el-table-column>
+              <el-table-column prop="name" label="商品名称 " align="center"> </el-table-column>
+              <el-table-column prop="field" label="所属技术领域" align="center">
+                <template v-slot="scoped">
+                  {{
+                    scoped.row.field == '0'
+                      ? '先进制造'
+                      : scoped.row.field == '1'
+                      ? '新材料'
+                      : scoped.row.field == '2'
+                      ? '光电子'
+                      : scoped.row.field == '3'
+                      ? '信息技术'
+                      : scoped.row.field == '4'
+                      ? '文化和科技融合'
+                      : '暂无'
+                  }}
+                </template>
+              </el-table-column>
+              <el-table-column prop="phase" label="研发阶段" align="center">
+                <template v-slot="scoped">
+                  {{ scoped.row.phase == '0' ? '阶段成果' : scoped.row.phase == '1' ? '最终成果' : '暂无' }}
+                </template>
+              </el-table-column>
+              <el-table-column prop="coopermode" label="合作方式" align="center">
+                <template v-slot="scoped">
+                  {{
+                    scoped.row.coopermode == '0'
+                      ? '技术转让'
+                      : scoped.row.coopermode == '1'
+                      ? '技术服务'
+                      : scoped.row.coopermode == '2'
+                      ? '技术许可'
+                      : scoped.row.coopermode == '3'
+                      ? '技术融资'
+                      : scoped.row.coopermode == '4'
+                      ? '其他'
+                      : '暂无'
+                  }}
+                </template>
+              </el-table-column>
+              <el-table-column prop="business" label="交易方式" align="center">
+                <template v-slot="scoped">
+                  {{ scoped.row.business == '0' ? '公用' : scoped.row.business == '1' ? '竞价' : scoped.row.business == '2' ? '转让' : '暂无' }}
+                </template>
+              </el-table-column>
+            </el-table>
+            <el-col :span="24" class="page">
+              <el-pagination
+                @current-change="handleCurrentChange"
+                :current-page="currentPage"
+                layout="total, prev, pager, next, jumper"
+                :total="total"
+                :page-size="pageSize"
+              >
+              </el-pagination>
+            </el-col>
+          </template>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { createNamespacedHelpers, mapGetters, mapState } from 'vuex';
+const { mapActions: dock } = createNamespacedHelpers('dock');
+import _ from 'loadsh';
+export default {
+  name: 'column',
+  props: {},
+  components: {},
+  data: () => ({
+    applyList: [], //查询数据
+    currentPage: 1, //默认数据1
+    pageSize: 10, //每页显示数据数量
+    origin: [], //分割数据
+    list: [], //显示数据列表
+    total: 0,
+    // 技术领域
+    field: '',
+    // 是否我处支持
+    radio1: '',
+  }),
+  created() {
+    this.search();
+  },
+  methods: {
+    ...dock(['query', 'delete', 'update', 'fetch']),
+    async search() {
+      let res = await this.fetch(this.user.uid);
+      let arr = res.data.apply.map(item => item.goodsList);
+      arr = _.flattenDeep(arr);
+      var newArr = arr.filter(item => item.totaltype === '0');
+      this.$set(this, `applyList`, newArr);
+      this.$set(this, `total`, newArr.length);
+    },
+    searchPage(page = 1) {
+      this.$set(this, `list`, this.origin[page - 1]);
+    },
+    handleCurrentChange(currentPage) {
+      this.searchPage(currentPage);
+    },
+    // 筛选技术领域
+    changeField(value) {
+      var arr = this.applyList.filter(item => item.field === value);
+      this.$set(this, `list`, arr);
+      this.$set(this, `total`, arr.length);
+    },
+    // 筛选是否是我处支持
+    changeRadio() {},
+  },
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    applyList: {
+      immediate: true,
+      deep: true,
+      handler(val) {
+        if (val && val.length > 0) this.$set(this, `origin`, _.chunk(val, this.pageSize));
+        this.searchPage();
+      },
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.top {
+  padding: 15px 0;
+  border-bottom: 1px solid #cccc;
+}
+.top .topTitle {
+  padding: 0 10px;
+}
+.top .topAdd {
+  padding: 0 10px 0 0;
+  text-align: right;
+}
+.search {
+  padding: 0 0 18px 0;
+}
+.anniu {
+  padding: 0 10px 0 0;
+}
+.page {
+  padding: 20px 0;
+  text-align: center;
+}
+</style>

+ 100 - 3
src/views/dockCenter/transaction/index.vue

@@ -6,10 +6,62 @@
           <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
         </el-col>
         <el-col :span="24" class="main">
-          交易备案
+          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
+            <el-col :span="24" class="name"> {{ item.product_name }} </el-col>
+            <el-col :span="24" class="text">
+              购买人名称:<span>{{ item.username }} </span>
+            </el-col>
+            <el-col :span="24" class="text">
+              营销人名称:<span>{{ item.market_username }}</span>
+            </el-col>
+            <el-col :span="24" class="status">
+              状态:
+              <span>
+                {{
+                  `${item.status}` === `0`
+                    ? '未交易'
+                    : `${item.status}` === `1`
+                    ? '交易中'
+                    : `${item.status}` === `2`
+                    ? '交易成功'
+                    : `${item.status}` === `3`
+                    ? '交易失败'
+                    : `${item.status}` === `4`
+                    ? '待确定'
+                    : '未识别'
+                }}
+              </span>
+            </el-col>
+            <el-col :span="24" class="btn">
+              <el-button type="primary" size="mini" @click="clickBtn()">交易确定</el-button>
+            </el-col>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
+    <el-dialog title="交易确定" :visible.sync="dialogVisible" width="90%" :before-close="handleClose">
+      <el-form ref="form" :model="form" label-width="80px">
+        <el-form-item label="产品名称">
+          <el-input v-model="form.product_name" :disabled="true"></el-input>
+        </el-form-item>
+        <el-form-item label=" 营销人">
+          <el-input v-model="form.market_username" :disabled="true"></el-input>
+        </el-form-item>
+        <el-form-item label="购买人">
+          <el-input v-model="form.username" :disabled="true"></el-input>
+        </el-form-item>
+        <el-form-item label="审核">
+          <el-radio v-model="form.status" label="0">待确定</el-radio>
+          <el-radio v-model="form.status" label="1">交易确定</el-radio>
+        </el-form-item>
+        <el-form-item label="描述">
+          <el-input type="textarea" v-model="form.description"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="onSubmit()">提交</el-button>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
   </div>
 </template>
 
@@ -28,10 +80,32 @@ export default {
       isleftarrow: '',
       // 返回
       navShow: true,
+      list: [
+        {
+          product_name: '产品名称',
+          username: '购买人',
+          market_username: '营销人名称',
+          status: '0',
+        },
+      ],
+      dialogVisible: false,
+      form: {},
     };
   },
   created() {},
-  methods: {},
+  methods: {
+    // 交易确定打开
+    clickBtn() {
+      this.dialogVisible = true;
+    },
+    // 提交
+    onSubmit() {
+      this.dialogVisible = false;
+    },
+    handleClose(done) {
+      done();
+    },
+  },
   computed: { ...mapState(['user']) },
   mounted() {
     this.title = this.$route.meta.title;
@@ -45,7 +119,6 @@ export default {
   width: 100%;
   min-height: 667px;
   position: relative;
-  background-color: #f9fafc;
 }
 .top {
   height: 46px;
@@ -55,5 +128,29 @@ export default {
 }
 .main {
   min-height: 570px;
+  margin: 10px 0 0 0;
+}
+.list {
+  margin: 0 5px 10px 5px;
+  width: 97%;
+  padding: 0 10px;
+  border-radius: 10px;
+  background: #f9fafc;
+  .name {
+    padding: 5px 0px;
+    font-size: 16px;
+  }
+  .text {
+    padding: 5px 0;
+    font-size: 14px;
+    color: #ccc;
+    span {
+      color: #000;
+    }
+  }
+  .btn {
+    text-align: center;
+    margin: 10px 0;
+  }
 }
 </style>

+ 95 - 0
src/views/dockCenter/vipInfo/addUser.vue

@@ -0,0 +1,95 @@
+<template>
+  <div id="addUser">
+    <el-row>
+      <el-col :span="24" class="style">
+        <el-col :span="24" class="top">
+          <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
+        </el-col>
+        <el-col :span="24" class="main">
+          <el-form :model="form">
+            <el-form-item label="用户名" :label-width="formLabelWidth">
+              <el-input v-model="form.name" autocomplete="off" placeholder="请输入用户名"></el-input>
+            </el-form-item>
+            <el-form-item label="手机号" :label-width="formLabelWidth">
+              <el-input v-model="form.phone" autocomplete="off" maxlength="11" placeholder="请输入手机号" :disabled="disabled"></el-input>
+            </el-form-item>
+            <el-form-item label="密码" :label-width="formLabelWidth">
+              <el-input v-model="form.passwd" autocomplete="off" placeholder="请输入密码" show-password :disabled="disabled"></el-input>
+            </el-form-item>
+            <el-form-item label="单位名称" :label-width="formLabelWidth">
+              <el-input v-model="form.company" autocomplete="off" placeholder="请输入单位名称"></el-input>
+            </el-form-item>
+            <el-form-item label="email" :label-width="formLabelWidth">
+              <el-input v-model="form.email" autocomplete="off" placeholder="请输入email"></el-input>
+            </el-form-item>
+            <el-form-item label="简介" :label-width="formLabelWidth">
+              <el-input v-model="form.content" type="textarea" autocomplete="off" placeholder="请输入简介"></el-input>
+            </el-form-item>
+            <el-col :span="24" style="text-align:center">
+              <el-button @click="closeBtn">取 消</el-button>
+              <el-button type="primary" @click="onSubmit">确 定</el-button>
+            </el-col>
+          </el-form>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+import NavBar from '@/layout/common/topInfo.vue';
+export default {
+  name: 'addUser',
+  props: {},
+  components: { NavBar },
+  data: function() {
+    return {
+      // 头部标题
+      title: '',
+      // meta为true
+      isleftarrow: '',
+      // 返回
+      navShow: true,
+      form: {},
+      formLabelWidth: '70px',
+    };
+  },
+  created() {},
+  methods: {
+    // 提交添加
+    onSubmit() {},
+    // 取消添加
+    closeBtn() {
+      this.form = {};
+      this.$router.push({ path: '/dockCenter/vipInfo/index' });
+    },
+  },
+  computed: { ...mapState(['user']) },
+  mounted() {
+    this.title = this.$route.meta.title;
+    this.isleftarrow = this.$route.meta.isleftarrow;
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.style {
+  width: 100%;
+  min-height: 667px;
+  position: relative;
+  background-color: #f9fafc;
+}
+.top {
+  height: 46px;
+  overflow: hidden;
+  position: relative;
+  z-index: 999;
+}
+
+.main {
+  min-height: 570px;
+  min-height: 570px;
+  padding: 10px 5px;
+}
+</style>

+ 65 - 2
src/views/dockCenter/vipInfo/index.vue

@@ -6,7 +6,28 @@
           <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
         </el-col>
         <el-col :span="24" class="main">
-          VIP用户
+          <el-col :span="24" class="add">
+            <el-button type="primary" size="mini" @click="$router.push({ path: '/dockCenter/vipInfo/addUser' })">添加用户</el-button>
+          </el-col>
+          <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="name">
+                {{ item.vipname }}
+              </el-col>
+              <el-col :span="24" class="text">
+                联系电话:<span>{{ item.vipphone }}</span>
+              </el-col>
+              <el-col :span="24" class="text">
+                单位名称:<span>{{ item.company }}</span>
+              </el-col>
+              <el-col :span="24" class="text">
+                email:<span>{{ item.email }}</span>
+              </el-col>
+              <el-col :span="24" class="btn">
+                <el-button type="primary" size="mini" @click="$router.push({ path: '/dockCenter/vipInfo/addUser', query: { id: item.id } })">编辑</el-button>
+              </el-col>
+            </el-col>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
@@ -28,6 +49,14 @@ export default {
       isleftarrow: '',
       // 返回
       navShow: true,
+      list: [
+        {
+          vipname: '测试联系人',
+          vipphone: '11111111111',
+          company: '长春市福瑞科技有限公司',
+          email: '12345678901@163.com',
+        },
+      ],
     };
   },
   created() {},
@@ -45,7 +74,6 @@ export default {
   width: 100%;
   min-height: 667px;
   position: relative;
-  background-color: #f9fafc;
 }
 .top {
   height: 46px;
@@ -56,4 +84,39 @@ export default {
 .main {
   min-height: 570px;
 }
+.add {
+  text-align: center;
+  padding: 10px 0;
+  position: fixed;
+  width: 100%;
+  z-index: 999;
+  background: #fff;
+}
+.info {
+  position: relative;
+  top: 60px;
+  .list {
+    margin: 0 5px 10px 5px;
+    width: 97%;
+    padding: 0 10px;
+    border-radius: 10px;
+    background: #f9fafc;
+    .name {
+      padding: 5px 0px;
+      font-size: 16px;
+    }
+    .text {
+      padding: 5px 0;
+      font-size: 14px;
+      color: #ccc;
+      span {
+        color: #000;
+      }
+    }
+    .btn {
+      margin: 10px 0;
+      text-align: center;
+    }
+  }
+}
 </style>

+ 1 - 1
src/views/user/index.vue

@@ -78,7 +78,7 @@ export default {
     text-align: center;
     background-color: #fff;
     padding: 15px 0;
-    margin: 0 0 15px 0;
+    margin: 0 0 1px 0;
     .el-image {
       width: 80px;
       height: 80px;