guhongwei пре 4 година
родитељ
комит
4e02f54572
43 измењених фајлова са 1720 додато и 210 уклоњено
  1. 0 5
      public/home.html
  2. 0 2
      public/static/home.html
  3. 23 5
      public/static/liveIndex.html
  4. 15 9
      src/layout/adminCenter/menuInfo.vue
  5. 4 6
      src/layout/live/head.vue
  6. 35 51
      src/layout/login/loginMain.vue
  7. 4 10
      src/layout/vipCenter/menuInfo.vue
  8. 27 26
      src/store/index.js
  9. 39 0
      src/store/live/apply.js
  10. 39 0
      src/store/live/chat.js
  11. 42 0
      src/store/live/column.js
  12. 44 0
      src/store/live/comment.js
  13. 60 0
      src/store/live/dock.js
  14. 39 0
      src/store/live/news.js
  15. 44 0
      src/store/live/personalchat.js
  16. 49 0
      src/store/live/personalroom.js
  17. 39 0
      src/store/live/room-chat.js
  18. 130 0
      src/store/login.js
  19. 56 0
      src/store/market/enterpriseproject.js
  20. 42 0
      src/store/market/expertsaudit.js
  21. 51 0
      src/store/market/exportuser.js
  22. 39 0
      src/store/market/market.js
  23. 59 0
      src/store/market/marketproduct.js
  24. 39 0
      src/store/market/markettype.js
  25. 30 0
      src/store/market/newmarketproduct.js
  26. 43 0
      src/store/market/password.js
  27. 49 0
      src/store/market/productpact.js
  28. 38 0
      src/store/market/talentExperts.js
  29. 39 0
      src/store/market/tranaudit.js
  30. 38 0
      src/store/market/transaction.js
  31. 43 0
      src/store/place.js
  32. 27 27
      src/store/user/mutations.js
  33. 53 0
      src/views/adminCenter/applyInfo/index.vue
  34. 53 0
      src/views/adminCenter/dynamicInfo/index.vue
  35. 16 10
      src/views/adminCenter/index.vue
  36. 1 1
      src/views/adminCenter/transaction/index.vue
  37. 53 0
      src/views/adminCenter/vipInfo/index.vue
  38. 3 3
      src/views/hall/direct.vue
  39. 232 36
      src/views/hall/liveApply.vue
  40. 19 2
      src/views/newlogin.vue
  41. 6 8
      src/views/userCenter/productInfo/part/infoRelease.vue
  42. 53 0
      src/views/vipCenter/dynamicInfo/index.vue
  43. 5 9
      src/views/vipCenter/index.vue

+ 0 - 5
public/home.html

@@ -23,11 +23,6 @@
     </a>
     <img class='image' src="static/images/logo.png" alt="">
     <p class='title'>中科在线(长春)技术交易平台</p>
-    <p class='login'>
-      <a href=""><img src="./static/home/images/登录.png" alt=""></a>
-      <a href="http://free.liaoningdoupo.com/platlive/newlogin">个人登录</a>
-      <a href="http://free.liaoningdoupo.com/platlogin/">管理登录</a>
-    </p>
   </div>
   <img class="sci-wheel" src="static/home/images/sci.gif" alt="">
   <div class="center">

+ 0 - 2
public/static/home.html

@@ -19,8 +19,6 @@
 						<div class="homeTop">
 							<div class="homeTopInfo">
 								<span>欢迎来到中科在线(长春)技术交易平台</span>
-								<!-- <button type="button">登录</button>
-								<button type="button">注册</button> -->
 							</div>
 							<div class="homeTopLogo">
 								<img src="images/logo.png">

+ 23 - 5
public/static/liveIndex.html

@@ -21,13 +21,28 @@
   }
   .mubu_title{
     position: fixed;
-    top: 4%;
+    top: 1%;
     z-index: 999;
-    color: #fffa93;
     width: 100%;
+  }
+  .mubu_title span:first-child{
+    color: #fffa93;
     text-align: center;
-    font-size: 40px;
+    font-size: 20px;
     text-shadow: 2px 2px 5px #000;
+    float: left;
+    width: 25%;
+    text-align: center;
+    padding: 10px 0;
+  }
+  .mubu_title span:last-child{
+    color: #fffa93;
+    text-align: center;
+    font-size: 35px;
+    text-shadow: 2px 2px 5px #000;
+    float: left;
+    width: 47%;
+    padding: 30px 0;
   }
 </styLe>
 
@@ -37,7 +52,7 @@
       <div class="info">
         <div class="infoTwo">
           <div class="infoThree">
-              <img src="./images/logo.png">
+              <!-- <img src="./images/logo.png"> -->
             <p class="title" id="title"></p>
             <p>主办方:吉林省计算中心</p>
             <p>承办方:吉林省计算中心</p>
@@ -55,7 +70,10 @@
   <div class="mubu_left"></div>
   <div class="mubu_right"></div>
   <div class="mubu_top"></div>
-  <div class='mubu_title'>中科在线(长春)技术交易平台</div>
+  <div class='mubu_title'>
+    <span>中科在线(长春)</span>
+    <span>交易平台</span>
+  </div>
 
 </body>
 <script language="javascript">

+ 15 - 9
src/layout/adminCenter/menuInfo.vue

@@ -16,35 +16,41 @@
             </el-menu-item> -->
             <el-menu-item index="1">
               <template slot="title">
-                <i class="el-icon-tickets"></i>
-                <span>基本信息</span>
+                <i class="el-icon-pie-chart"></i>
+                <span>展会管理</span>
               </template>
             </el-menu-item>
             <el-menu-item index="2">
               <template slot="title">
                 <i class="el-icon-pie-chart"></i>
-                <span>展会管理</span>
+                <span>申请管理</span>
               </template>
             </el-menu-item>
             <el-menu-item index="3">
               <template slot="title">
-                <i class="el-icon-notebook-1"></i>
-                <span>交易审核</span>
+                <i class="el-icon-pie-chart"></i>
+                <span>VIP用户</span>
               </template>
             </el-menu-item>
             <el-menu-item index="4">
               <template slot="title">
                 <i class="el-icon-notebook-1"></i>
-                <span>统计报表</span>
+                <span>交易确定</span>
               </template>
             </el-menu-item>
             <el-menu-item index="5">
               <template slot="title">
-                <i class="el-icon-video-camera"></i>
-                <span>修改密码</span>
+                <i class="el-icon-notebook-1"></i>
+                <span>统计报表</span>
               </template>
             </el-menu-item>
             <el-menu-item index="6">
+              <template slot="title">
+                <i class="el-icon-notebook-1"></i>
+                <span>动态监测</span>
+              </template>
+            </el-menu-item>
+            <el-menu-item index="7">
               <template slot="title">
                 <i class="el-icon-circle-close"></i>
                 <span>退出登录</span>
@@ -80,7 +86,7 @@ export default {
     ...login({ logout: 'logout', transactiondtetle: 'delete' }),
     // 菜单跳转
     selectMenu(key) {
-      if (key == '6') {
+      if (key == '7') {
         this.logout();
         this.$message({
           message: '退出登录成功',

+ 4 - 6
src/layout/live/head.vue

@@ -16,7 +16,7 @@
                 type="text"
                 class="userCenter"
                 @click="stnmae"
-                v-if="user.role == '2' || user.role == '3' || user.role == '4' || user.role == '6' || user.role == '7' || user.role == '9'"
+                v-if="user.role == '2' || user.role == '3' || user.role == '4' || user.role == '5' || user.role == '6' || user.role == '7' || user.role == '8'"
               >
                 个人中心
               </button>
@@ -105,13 +105,11 @@ export default {
       this.$router.push({ path: '/newlogin' });
     },
     stnmae() {
-      if (this.user.role == '2' || this.user.role == '3' || this.user.role == '6' || this.user.role == '7') {
+      if (this.user.role == '4' || this.user.role == '5' || this.user.role == '6' || this.user.role == '7') {
         this.$router.push({ path: '/userCenter/index', query: { num: '1' } });
-      } else if (this.user.role == '5') {
-        this.$router.push('/hallList/index');
-      } else if (this.user.role == '4') {
+      } else if (this.user.role == '3') {
         this.$router.push({ path: '/adminCenter/index', query: { num: '1' } });
-      } else if (this.user.role == '9') {
+      } else if (this.user.role == '8') {
         this.$router.push({ path: '/vipCenter/index', query: { num: '1' } });
       } else {
         this.$router.push('/market/index');

+ 35 - 51
src/layout/login/loginMain.vue

@@ -2,38 +2,51 @@
   <div id="loginMain">
     <el-row class="loginMains">
       <el-col :span="24" class="top">
-        <el-col :span="6" class="info"> </el-col>
-        <el-col :span="12" class="context">
+        <el-col :span="4" class="info"></el-col>
+        <el-col :span="14" class="context">
           <el-tabs v-model="activeName" @tab-click="handleClick">
-            <el-tab-pane label="登录" name="first">
+            <el-tab-pane label="管理登录" name="first">
               <el-col :span="24">
-                <el-form ref="form" :model="form" label-width="90px">
-                  <el-form-item label="用户/手机号">
+                <el-form ref="form" :model="form" label-width="120px">
+                  <el-form-item label="房间号&手机号">
                     <el-input v-model="form.phone" placeholder="请输入用户/手机号" :minlength="11" :maxlength="11"></el-input>
                   </el-form-item>
                   <el-form-item label="登录密码">
                     <el-input v-model="form.passwd" placeholder="请输入登录密码" show-password></el-input>
                   </el-form-item>
-                  <!-- <el-form-item label="用户类别">
+                  <el-form-item label="用户类别">
                     <el-radio-group v-model="form.role">
-                      <el-radio label="7">临时用户</el-radio>
-                      <el-radio label="2">个人用户</el-radio>
-                      <el-radio label="3">机构用户</el-radio>
-                      <el-radio label="6">专家用户</el-radio>
+                      <el-radio label="3">管理用户 </el-radio>
                       <el-radio label="8">VIP用户</el-radio>
-                      <el-radio label="4">管理用户</el-radio>
                     </el-radio-group>
-                  </el-form-item> -->
+                  </el-form-item>
+                  <el-col :span="24" class="loginSubmit"><el-button type="primary" @click="adminSubmit">登录</el-button></el-col>
+                </el-form>
+              </el-col>
+            </el-tab-pane>
+            <el-tab-pane label="个人登录" name="second">
+              <el-col :span="24">
+                <el-form ref="form" :model="form" label-width="120px">
+                  <el-form-item label="用户名&手机号">
+                    <el-input v-model="form.phone" placeholder="请输入用户/手机号" :minlength="11" :maxlength="11"></el-input>
+                  </el-form-item>
+                  <el-form-item label="登录密码">
+                    <el-input v-model="form.passwd" placeholder="请输入登录密码" show-password></el-input>
+                  </el-form-item>
                   <el-form-item label="用户类别">
-                    <el-select v-model="form.role" placeholder="请选择用户类别">
-                      <el-option v-for="item in roleList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
-                    </el-select>
+                    <el-radio-group v-model="form.role">
+                      <el-radio label="7">临时用户</el-radio>
+                      <el-radio label="4">个人用户</el-radio>
+                      <el-radio label="5">机构用户</el-radio>
+                      <el-radio label="6">专家用户</el-radio>
+                      <el-radio label="2">VIP用户</el-radio>
+                    </el-radio-group>
                   </el-form-item>
                   <el-col :span="24" class="loginSubmit"><el-button type="primary" @click="loginSubmit">登录</el-button></el-col>
                 </el-form>
               </el-col>
             </el-tab-pane>
-            <el-tab-pane label="注册" name="second">
+            <el-tab-pane label="注册" name="third">
               <el-col :span="24">
                 <el-form ref="forms" :model="forms" :rules="rules" label-width="130px">
                   <el-form-item label="用户名称" prop="name">
@@ -247,37 +260,6 @@ export default {
       paper: [{ required: false, message: '请输入论文', trigger: 'blur' }],
       remark: [{ required: false, message: '请输入备注', trigger: 'blur' }],
     },
-    // 用户类型
-    roleList: [
-      {
-        value: '7',
-        label: '临时用户',
-      },
-      {
-        value: '2',
-        label: '个人用户',
-      },
-      {
-        value: '3',
-        label: '机构用户',
-      },
-      {
-        value: '6',
-        label: '专家用户',
-      },
-      {
-        value: '8',
-        label: 'VIP用户',
-      },
-      {
-        value: '9',
-        label: '展会VIP用户',
-      },
-      {
-        value: '4',
-        label: '管理用户',
-      },
-    ],
   }),
   created() {},
   computed: {},
@@ -285,6 +267,11 @@ export default {
     handleClick(tab, event) {
       console.log(tab, event);
     },
+    // 管理登录
+    adminSubmit() {
+      this.$emit('adminSubmit', this.form);
+    },
+    // 用户登录
     loginSubmit() {
       this.$emit('submitDate', this.form);
     },
@@ -319,12 +306,9 @@ export default {
   background: #ffffff;
 }
 .info {
-  width: 25%;
+  // width: 25%;
   height: 800px;
 }
-.context {
-  width: 50%;
-}
 /deep/.el-tabs__header {
   margin: 0;
 }

+ 4 - 10
src/layout/vipCenter/menuInfo.vue

@@ -15,24 +15,18 @@
               </template>
             </el-menu-item> -->
             <el-menu-item index="1">
-              <template slot="title">
-                <i class="el-icon-tickets"></i>
-                <span>基本信息</span>
-              </template>
-            </el-menu-item>
-            <el-menu-item index="2">
               <template slot="title">
                 <i class="el-icon-notebook-1"></i>
                 <span>统计报表</span>
               </template>
             </el-menu-item>
-            <el-menu-item index="3">
+            <el-menu-item index="2">
               <template slot="title">
                 <i class="el-icon-video-camera"></i>
-                <span>修改密码</span>
+                <span>动态监测</span>
               </template>
             </el-menu-item>
-            <el-menu-item index="4">
+            <el-menu-item index="3">
               <template slot="title">
                 <i class="el-icon-circle-close"></i>
                 <span>退出登录</span>
@@ -68,7 +62,7 @@ export default {
     ...login({ logout: 'logout', transactiondtetle: 'delete' }),
     // 菜单跳转
     selectMenu(key) {
-      if (key == '4') {
+      if (key == '3') {
         this.logout();
         this.$message({
           message: '退出登录成功',

+ 27 - 26
src/store/index.js

@@ -1,31 +1,32 @@
 import Vue from 'vue';
 import Vuex from 'vuex';
-import login from '@common/store/login';
-import chat from '@common/store/live/chat';
-import roomchat from '@common/store/live/room-chat';
-import apply from '@common/store/live/apply';
-import dock from '@common/store/live/dock';
-import column from '@common/store/live/column';
-import news from '@common/store/live/news';
-import market from '@common/store/market/market';
-import transaction from '@common/store/market/transaction';
-import expertsaudit from '@common/store/market/expertsaudit';
-import marketproduct from '@common/store/market/marketproduct';
-import talentExperts from '@common/store/market/talentExperts';
-import * as ustate from '@common/store/user/state';
-import * as umutations from '@common/store/user/mutations';
-import personalchat from '@common/store/live/personalchat';
-import personalroom from '@common/store/live/personalroom';
-import markettype from '@common/store/market/markettype';
-import enterpriseproject from '@common/store/market/enterpriseproject';
-import newmarketproduct from '@common/store/market/newmarketproduct';
-import place from '@common/store/place/place';
-import password from '@common/store/market/password';
-import maarkettype from '@common/store/market/markettype';
-import comment from '@common/store/live/comment';
-import tranaudit from '@common/store/market/tranaudit';
-import expertsuser from '@common/store/market/exportuser';
-import productpact from '@common/store/market/productpact';
+
+import login from './login';
+import chat from './live/chat';
+import roomchat from './live/room-chat';
+import apply from './live/apply';
+import dock from './live/dock';
+import column from './live/column';
+import news from './live/news';
+import personalchat from './live/personalchat';
+import personalroom from './live/personalroom';
+import comment from './live/comment';
+import market from './market/market';
+import transaction from './market/transaction';
+import expertsaudit from './market/expertsaudit';
+import marketproduct from './market/marketproduct';
+import talentExperts from './market/talentExperts';
+import markettype from './market/markettype';
+import maarkettype from './market/markettype';
+import enterpriseproject from './market/enterpriseproject';
+import newmarketproduct from './market/newmarketproduct';
+import password from './market/password';
+import tranaudit from './market/tranaudit';
+import expertsuser from './market/exportuser';
+import productpact from './market/productpact';
+import * as ustate from './user/state';
+import * as umutations from './user/mutations';
+import place from './place';
 import wxchattest from './user/wxchattest';
 import users from './user';
 // 新增

+ 39 - 0
src/store/live/apply.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  applyInfo: `/api/live/dock/apply`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.applyInfo, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.applyInfo}/${id}`, { ...info });
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.applyInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { dock_id, id, ...data }) {
+    const res = await this.$axios.$post(`${api.applyInfo}/${dock_id}/check/${id}`, data);
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.applyInfo}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 39 - 0
src/store/live/chat.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  interface: `/api/live/chat`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.interface, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.interface}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.interface}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.interface}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.interface}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 42 - 0
src/store/live/column.js

@@ -0,0 +1,42 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  columnInfo: `/api/live/column`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.columnInfo}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.columnInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.columnInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.columnInfo}/update/${id}`, data);
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.columnInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 44 - 0
src/store/live/comment.js

@@ -0,0 +1,44 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  newsInfo: `/api/live/comment`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.newsInfo}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.newsInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.newsInfo}/update/${id}`, data);
+    return res;
+  },
+
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 60 - 0
src/store/live/dock.js

@@ -0,0 +1,60 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  dockInfo: `/api/live/dock`,
+  myapplyInfo: `/api/live/dock/myapply`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.dockInfo, { skip, limit, ...info });
+    return res;
+  },
+  async myapply({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.myapplyInfo, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.dockInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.dockInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.dockInfo}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.dockInfo}/${payload}`);
+    return res;
+  },
+  async shenhe({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.dockInfo}/check/${id}`, data);
+    return res;
+  },
+  async updateVip({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.dockInfo}/updatevipuser/${id}`, data);
+    return res;
+  },
+  async createvipuser({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.dockInfo}/createvipuser/${id}`, data);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 39 - 0
src/store/live/news.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  newsInfo: `/api/live/news`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.newsInfo, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.newsInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.newsInfo}/update/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 44 - 0
src/store/live/personalchat.js

@@ -0,0 +1,44 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  interface: `/api/live/personchat`,
+  isRead: `/api/live/personchat/received`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.interface, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.interface}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.interface}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.interface}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.interface}/${payload}`);
+    return res;
+  },
+  async isRead({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.isRead}`, payload);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 49 - 0
src/store/live/personalroom.js

@@ -0,0 +1,49 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  interface: `/api/live/personroom`,
+  roomCountDelete: id => `/api/live/personroomtalk/${id}`,
+  roomCount: `/api/live/personroomtalk/countroom`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.interface, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.interface}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.interface}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.interface}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.interface}/${payload}`);
+    return res;
+  },
+  async countRoom({ commit }, payload) {
+    const res = await this.$axios.$get(api.roomCount);
+    return res;
+  },
+  async countDelete({ commit }, payload) {
+    const res = await this.$axios.$delete(api.roomCountDelete(payload));
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 39 - 0
src/store/live/room-chat.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  interface: `/api/live/roomchat`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.interface, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.interface}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.interface}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.interface}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.interface}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 130 - 0
src/store/login.js

@@ -0,0 +1,130 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import axios from 'axios';
+import _ from 'lodash';
+import { Notification } from 'element-ui';
+const jwt = require('jsonwebtoken');
+Vue.use(Vuex);
+const api = {
+  interface: `/api/auth/login`,
+  getUser: `/api/auth/token`,
+  logout: '/api/auth/logout',
+  getMenu: `/api/auth/user/menus`,
+  updatePassword: '/api/user/pwd_edit',
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  /**
+    user:Object required 登陆信息 
+    router:router 如果跳转就传
+    path:String 跳转到的路由位置
+    needReturn: Boolean 是否返回结果
+    typeCheck: Boolean 是否检查身份对应匹配的前端项目
+    isWx: Boolean 是否是微信登陆
+    needNotice:Boolean 是否需要提示
+   */
+  async login({ commit, dispatch }, { user, router, path = '/', needReturn = false, typeCheck = false, isWx = false, needNotice = true }) {
+    let res;
+    //wx登陆,openid存在,user中是openid和qrcode;正常登陆,user中是mobile和passwd
+    if (isWx) res = await this.$axios.$post(`${api.wxLogin}`, user);
+    else res = await this.$axios.$post(`${api.interface}`, user);
+    const setUser = async (token, commit) => {
+      localStorage.setItem('token', token);
+      let userInfo = await dispatch('toGetUser');
+      return userInfo;
+    };
+    let userInfo = {};
+    if (res.errcode == '0') {
+      userInfo = await setUser(res.data.key, commit);
+      Notification({
+        title: '登录成功',
+        // message: `欢迎,${user.user_name}`,
+        type: 'success',
+        duration: 2000,
+      });
+      return userInfo;
+    } else {
+      if (needReturn) return res;
+      else {
+        Notification({
+          title: '登录失败',
+          message: `失败原因:${res.errmsg || '登陆失败'}`,
+          type: 'error',
+        });
+      }
+    }
+  },
+  async toGetUser({ commit }, payload) {
+    let key = localStorage.getItem('token');
+    if (!key) {
+      if (_.isFunction(payload)) {
+        payload();
+        return;
+      }
+      console.log('游客身份');
+      let user = localStorage.getItem('user');
+      if (user) {
+        commit('setUser', JSON.parse(user), { root: true });
+      } else {
+        let stamp = new Date().getTime();
+        let name = `游客${stamp}`;
+        localStorage.setItem('user', JSON.stringify({ name }));
+        commit('setUser', { name }, { root: true });
+      }
+      return;
+    }
+    console.log('用户');
+    let res = await axios.post(api.getUser, { key: key });
+    let user = {};
+    if (res.data.errcode == '0') {
+      let token = _.get(res, `data.data.token`);
+      if (token) {
+        user = jwt.decode(token);
+        commit('setUser', user, { root: true });
+      }
+    }
+    return user;
+  },
+  async toGetMenu({ commit }, payload) {
+    const res = await this.$axios.$get(api.getMenu, payload);
+    return res;
+  },
+  async logout({ commit }, payload) {
+    let key = localStorage.removeItem('token');
+    const res = await this.$axios.$post(api.logout, { key: key });
+    commit('deleteUser');
+  },
+  async update({ commit }, payload) {
+    let res = await this.$axios.$post(`${api.updatePassword}`, {
+      data: payload,
+    });
+    return res;
+  },
+  async bind({ commit }, payload) {
+    let res = await this.$axios.$post(`${api.bind}`, payload);
+    return res;
+  },
+  async userBind({ commit }, payload) {
+    let res = await this.$axios.$post(`${api.userBind}`, payload);
+    return res;
+  },
+  async getQrcode({ commit }, payload) {
+    let res = await this.$axios.$get(`${api.connection}`);
+    if (res.errcode === 0) return res.data;
+    else {
+      console.warn('请求qrcode失败');
+    }
+  },
+  async wxCheck({ commit }, payload) {
+    let res = await this.$axios.$post(`${api.wxCheck}`, payload);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 56 - 0
src/store/market/enterpriseproject.js

@@ -0,0 +1,56 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  columnInfo: `/api/market/product`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.columnInfo}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.columnInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.columnInfo}/${payload}`);
+    return res;
+  },
+  async newfetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.columnInfo}/newfetch/${payload}`);
+    return res;
+  },
+
+  async newquery({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.columnInfo}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.columnInfo}/update/${id}`, data);
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.columnInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 42 - 0
src/store/market/expertsaudit.js

@@ -0,0 +1,42 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  expertsauditInfo: `/api/market/expertsaudit`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.expertsauditInfo}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.expertsauditInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.expertsauditInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.expertsauditInfo}/update/${id}`, data);
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.expertsauditInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 51 - 0
src/store/market/exportuser.js

@@ -0,0 +1,51 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  expertsuserInfo: `/api/market/expertsuser`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.expertsuserInfo, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.expertsuserInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.expertsuserInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.expertsuserInfo}/update/${id}`, {
+      ...info,
+    });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.expertsuserInfo}/${payload}`);
+    return res;
+  },
+  async upgrade({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.expertsuserInfo}/upgrade/${id}`, {
+      ...info,
+    });
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 39 - 0
src/store/market/market.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  userInfo: `/api/market/user`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.userInfo}`, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.userInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.userInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.userInfo}/${id}`, data);
+    return res;
+  },
+
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.userInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 59 - 0
src/store/market/marketproduct.js

@@ -0,0 +1,59 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  newsInfo: `/api/market/product`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.newsInfo}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async newquery({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.newsInfo}/newquery`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async newfetch({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.newsInfo}/newfetch`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.newsInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.newsInfo}/update/${id}`, data);
+    return res;
+  },
+
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 39 - 0
src/store/market/markettype.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  codeitemInfo: `/api/setting/codeitem`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = 10, ...info } = {}) {
+    console.log(info);
+    const res = await this.$axios.$get(api.codeitemInfo, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.codeitemInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.codeitemInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.codeitemInfo}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.codeitemInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 30 - 0
src/store/market/newmarketproduct.js

@@ -0,0 +1,30 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = { newsInfo: `/api/market/product` };
+const state = () => ({});
+const mutations = {};
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.newsInfo}`, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.newsInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.newsInfo}/newfetch/${id}`, data);
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+};
+export default { namespaced: true, state, mutations, actions };

+ 43 - 0
src/store/market/password.js

@@ -0,0 +1,43 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  userInfo: `/api/auth/user/uppasswd`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.userInfo}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.userInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.userInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.userInfo}`, payload);
+    return res;
+  },
+
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.userInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 49 - 0
src/store/market/productpact.js

@@ -0,0 +1,49 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  productpactInfo: `/api/market/productpact`,
+  findpactInfo: `/api/market/productpact/findpact`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(api.productpactInfo, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.productpactInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.productpactInfo}/${payload}`);
+    return res;
+  },
+
+  async findpact({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.findpactInfo}/${payload}`);
+    return res;
+  },
+
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.productpactInfo}/update/${id}`, data);
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.productpactInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 38 - 0
src/store/market/talentExperts.js

@@ -0,0 +1,38 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  expertsInfo: `/api/talent/experts`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.expertsInfo}`, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.expertsInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.expertsInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.expertsInfo}/update/${id}`, data);
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.expertsInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 39 - 0
src/store/market/tranaudit.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  newsInfo: `/api/market/tranaudit`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.newsInfo}`, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.newsInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.newsInfo}/update/${id}`, data);
+    return res;
+  },
+
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 38 - 0
src/store/market/transaction.js

@@ -0,0 +1,38 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  transactionInfo: `/api/market/transaction`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.transactionInfo}`, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.transactionInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.transactionInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.transactionInfo}/update/${id}`, data);
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.transactionInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 43 - 0
src/store/place.js

@@ -0,0 +1,43 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  userInfo: `/api/setting/xzqh/items`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.userInfo}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.userInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.userInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...data }) {
+    const res = await this.$axios.$post(`${api.userInfo}/${id}`, data);
+    return res;
+  },
+
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.userInfo}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 27 - 27
src/store/user/mutations.js

@@ -1,33 +1,33 @@
-const jwt = require('jsonwebtoken');
 export const setUser = (state, payload) => {
-  let res = true;
-  //登陆时
-  if (payload) {
-    state.token = payload;
-  } else {
-    //已经登陆,切换路由时取出用户信息放在总store中
-    let token = localStorage.getItem('token');
-    if (token && token !== 'guest') {
-      state.user = jwt.decode(token);
-    } else if (token && token == 'guest') {
-      let user = localStorage.getItem('user');
-      state.user = JSON.parse(user);
-    } else {
-      let timestamp = new Date().getTime();
-      let user = {
-        // id: `guest${timestamp}`,
-        name: `游客${timestamp}`,
-      };
-      state.user = user;
-      localStorage.setItem('token', 'guest');
-      localStorage.setItem('user', JSON.stringify(user));
-      console.warn('游客身份');
-    }
-  }
-  return res;
+  state.user = payload;
+  // let res = true;
+  // //登陆时
+  // if (payload) {
+  //   state.token = payload;
+  // } else {
+  //   //已经登陆,切换路由时取出用户信息放在总store中
+  //   let token = localStorage.getItem('token');
+  //   if (token && token !== 'guest') {
+  //     state.user = jwt.decode(token);
+  //   } else if (token && token == 'guest') {
+  //     let user = localStorage.getItem('user');
+  //     state.user = JSON.parse(user);
+  //   } else {
+  //     let timestamp = new Date().getTime();
+  //     let user = {
+  //       // id: `guest${timestamp}`,
+  //       name: `游客${timestamp}`,
+  //     };
+  //     state.user = user;
+  //     localStorage.setItem('token', 'guest');
+  //     localStorage.setItem('user', JSON.stringify(user));
+  //     console.warn('游客身份');
+  //   }
+  // }
+  // return res;
 };
 
 export const deleteUser = (state, payload) => {
   state.user = {};
-  localStorage.removeItem('user');
+  localStorage.removeItem('token');
 };

+ 53 - 0
src/views/adminCenter/applyInfo/index.vue

@@ -0,0 +1,53 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="leftTop"> <span>|</span> <span>申请管理</span> </el-col>
+        <el-col :span="24" class="info">
+          申请管理
+        </el-col>
+      </el-col></el-row
+    >
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    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 0;
+}
+</style>

+ 53 - 0
src/views/adminCenter/dynamicInfo/index.vue

@@ -0,0 +1,53 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="leftTop"> <span>|</span> <span>动态监测</span> </el-col>
+        <el-col :span="24" class="info">
+          动态监测
+        </el-col>
+      </el-col></el-row
+    >
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    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 0;
+}
+</style>

+ 16 - 10
src/views/adminCenter/index.vue

@@ -12,19 +12,22 @@
             </el-col>
             <el-col :span="19" class="mainMess">
               <span v-if="num == '1'">
-                <basicInfo></basicInfo>
+                <dockInfo></dockInfo>
               </span>
               <span v-else-if="num == '2'">
-                <dockInfo></dockInfo>
+                <applyInfo></applyInfo>
               </span>
               <span v-else-if="num == '3'">
-                <transaction></transaction>
+                <vipInfo></vipInfo>
               </span>
               <span v-else-if="num == '4'">
-                <statisInfo></statisInfo>
+                <transaction></transaction>
               </span>
               <span v-else-if="num == '5'">
-                <password></password>
+                <statisInfo></statisInfo>
+              </span>
+              <span v-else-if="num == '6'">
+                <dynamicInfo></dynamicInfo>
               </span>
               <span v-else>
                 退出登录
@@ -44,11 +47,12 @@
 import heads from '@/layout/userCenter/heads.vue';
 import menuInfo from '@/layout/adminCenter/menuInfo.vue';
 import foot from '@/layout/live/foot.vue';
-import basicInfo from './basicInfo/index.vue';
 import transaction from './transaction/index.vue';
 import dockInfo from './dockInfo/index.vue';
 import statisInfo from './statisInfo/index.vue';
-import password from './password/index.vue';
+import applyInfo from './applyInfo/index.vue';
+import vipInfo from './vipInfo/index.vue';
+import dynamicInfo from './dynamicInfo/index.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'index',
@@ -57,11 +61,13 @@ export default {
     heads,
     menuInfo,
     foot,
-    basicInfo, //个人中心
+
     dockInfo, //展会管理
-    transaction, //交易审核
+    applyInfo, //申请管理
+    vipInfo, //VIP用户
+    transaction, //交易确定
     statisInfo, //统计报表
-    password, //修改密码
+    dynamicInfo, //动态监测
   },
   data: function() {
     return {};

+ 1 - 1
src/views/adminCenter/transaction/index.vue

@@ -2,7 +2,7 @@
   <div id="index">
     <el-row>
       <el-col :span="24">
-        <el-col :span="24" class="leftTop"> <span>|</span> <span>交易审核</span> </el-col>
+        <el-col :span="24" class="leftTop"> <span>|</span> <span>交易确定</span> </el-col>
         <el-col :span="24" class="info">
           <span v-if="view">
             <list :recruitInfo="recruitInfo" :total="total" @handleCurrentChange="handleCurrentChange" @shareBtn="shareBtn"></list>

+ 53 - 0
src/views/adminCenter/vipInfo/index.vue

@@ -0,0 +1,53 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="leftTop"> <span>|</span> <span>VIP用户</span> </el-col>
+        <el-col :span="24" class="info">
+          VIP用户
+        </el-col>
+      </el-col></el-row
+    >
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    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 0;
+}
+</style>

+ 3 - 3
src/views/hall/direct.vue

@@ -387,14 +387,14 @@
             <el-button
               type="info"
               size="mini"
-              v-if="this.user.role == '2' || this.user.role == '3' || this.user.role == '6'"
+              v-if="this.user.role == '4' || this.user.role == '5' || this.user.role == '6' || this.user.role == '7'"
               @click="$router.push({ path: '/userCenter/index', query: { num: 1 } })"
               >个人中心</el-button
             >
-            <el-button type="info" size="mini" v-else-if="this.user.role == '4'" @click="$router.push({ path: '/adminCenter/index', query: { num: 1 } })"
+            <el-button type="info" size="mini" v-else-if="this.user.role == '3'" @click="$router.push({ path: '/adminCenter/index', query: { num: 1 } })"
               >管理中心</el-button
             >
-            <el-button type="info" size="mini" v-else-if="this.user.role == '9'" @click="$router.push({ path: '/vipCenter/index', query: { num: 1 } })"
+            <el-button type="info" size="mini" v-else-if="this.user.role == '8'" @click="$router.push({ path: '/vipCenter/index', query: { num: 1 } })"
               >管理中心</el-button
             >
           </el-col>

+ 232 - 36
src/views/hall/liveApply.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="liveApply">
-    <div class="w_0100">
+    <!-- <div class="w_0100">
       <div class="w_1200">
         <div class="liveApply">
           <el-col :span="24" class="liveApplyTop">
@@ -50,33 +50,225 @@
           </el-col>
         </div>
       </div>
-    </div>
+    </div> -->
+    <el-row>
+      <el-col :span="24">
+        <div class="w_1200">
+          <el-col :span="24" class="top">
+            <el-col :span="3">
+              <el-image :src="logo" style="width:105px;height:105px;"></el-image>
+            </el-col>
+            <el-col :span="20">
+              <p>温馨提示:</p>
+              <p>1、为了保证您的信息能顺利通过我们的审核,请将信息的真实情况尽可能全面的发布出来!</p>
+              <p>
+                2、根据我们的长期跟踪统计,信息完整度越高,越容易获得目标客户的关注!3、信息完整度越高,将在我们的平台搜索结果排序靠前、获得推荐机会,以及享受增值服务试用机会!
+              </p>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="info">
+            <el-tabs v-model="activeName" @tab-click="handleClick">
+              <el-tab-pane label="需求申请" name="first">
+                <el-form :model="demandForm" :rules="demandFormrules" ref="ruleForm" label-width="130px" class="demo-ruleForm">
+                  <el-form-item label="产品类型" prop="totaltype">
+                    <el-select v-model="demandForm.totaltype" placeholder="请选择产品类型">
+                      <el-option label="技术" value="0"></el-option>
+                      <el-option label="产品" value="1" disabled></el-option>
+                      <el-option label="服务" value="2" disabled></el-option>
+                    </el-select>
+                  </el-form-item>
+                  <el-form-item label="活动名称">
+                    <el-input v-model="demandForm.name"></el-input>
+                  </el-form-item>
+                  <el-form-item label="名称" prop="name">
+                    <el-input v-model="demandForm.name" placeholder="请输入名称"></el-input>
+                  </el-form-item>
+                  <el-form-item label="类型">
+                    <el-select v-model="demandForm.product_type_id" filterable @change="selectChild">
+                      <el-option v-for="(item, index) in columnList" :key="index" :value="item.id" :label="item.name"></el-option>
+                    </el-select>
+                  </el-form-item>
+                  <el-form-item label="产品简介">
+                    <el-input type="textarea" v-model="demandForm.introduction" placeholder="请输入产品简介"></el-input>
+                  </el-form-item>
+                  <el-form-item label="研发阶段">
+                    <el-select v-model="demandForm.phase" placeholder="请选择研发阶段">
+                      <el-option label="阶段成果" value="0"></el-option>
+                      <el-option label="最终成果" value="1"></el-option>
+                    </el-select>
+                  </el-form-item>
+                  <el-row>
+                    <el-col :span="12">
+                      <el-form-item label="产品单价">
+                        <el-input v-model="demandForm.price" placeholder="请输入产品单价"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                      <el-form-item label="产品单位">
+                        <el-select v-model="demandForm.priceunit" placeholder="请选择产品单位">
+                          <el-option label="公斤" value="0"></el-option>
+                          <el-option label="套" value="1"></el-option>
+                          <el-option label="件" value="2"></el-option>
+                        </el-select>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-form-item label="产品图片" prop="image">
+                    <upload
+                      :limit="6"
+                      :data="demandForm.image"
+                      :uploadBtn="true"
+                      type="image"
+                      :url="`/files/image/upload`"
+                      @upload="uploadSuccess"
+                      @delete="uploadDelete"
+                    ></upload>
+                  </el-form-item>
+                  <span>
+                    <el-form-item label="所属领域">
+                      <el-select v-model="demandForm.field" placeholder="请选择所属领域">
+                        <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-form-item>
+                  </span>
+                  <el-form-item label="服务范围">
+                    <el-input type="textarea" v-model="demandForm.scope" placeholder="请输入服务范围"></el-input>
+                  </el-form-item>
+                  <el-form-item label="合作方式">
+                    <el-select v-model="demandForm.coopermode" placeholder="请选择合作方式">
+                      <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-form-item>
+                  <el-form-item label="交易方式">
+                    <el-select v-model="demandForm.business" placeholder="请选择交易方式">
+                      <el-option label="公用" value="0"></el-option>
+                      <el-option label="竞价" value="1"></el-option>
+                      <el-option label="转让" value="2"></el-option>
+                    </el-select>
+                  </el-form-item>
+                  <el-form-item label="投入预算">
+                    <el-input v-model="demandForm.budget" placeholder="请输入投入预算"></el-input>
+                  </el-form-item>
+                  <el-form-item label="需求截止日期">
+                    <el-date-picker v-model="demandForm.end_date" type="date" placeholder="请选择需求截止日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
+                    </el-date-picker>
+                  </el-form-item>
+                  <el-form-item>
+                    <span slot="label">
+                      <el-popover
+                        placement="top-start"
+                        width="200"
+                        trigger="hover"
+                        content="(阐述在生产经营、项目建设、科研活动、产业化方向中遇到的技术难题或瓶颈问题及需达到的技术指标)"
+                      >
+                        <span slot="reference" style="color:#409eff">难题或瓶颈问题</span>
+                      </el-popover>
+                    </span>
+                    <el-input type="textarea" v-model="demandForm.difficult_problem" placeholder="请输入难题或瓶颈问题"></el-input>
+                  </el-form-item>
+                  <el-form-item>
+                    <span slot="label">
+                      <el-popover
+                        placement="top-start"
+                        width="200"
+                        trigger="hover"
+                        content="(企业承接成果、技术所具备的技术人员、设备、资金等基础条件及其他配套条件)"
+                      >
+                        <span slot="reference" style="color:#409eff">企业解决技术需求已具备的条件</span>
+                      </el-popover>
+                    </span>
+                    <el-input type="textarea" v-model="demandForm.demand" placeholder="请输入企业解决需求"></el-input>
+                  </el-form-item>
+                  <el-form-item label="联系人" prop="contact_user">
+                    <el-input v-model="demandForm.contact_user" placeholder="请输入联系人"></el-input>
+                  </el-form-item>
+                  <el-form-item label="联系电话" prop="contact_tel">
+                    <el-input v-model.number="demandForm.contact_tel" placeholder="请输入联系电话" maxlength="11"></el-input>
+                  </el-form-item>
+                  <el-form-item>
+                    <el-button type="primary" @click="submitForm('ruleForm')">确定</el-button>
+                    <el-button @click="resetForm('ruleForm')">取消</el-button>
+                  </el-form-item>
+                </el-form>
+              </el-tab-pane>
+              <el-tab-pane label="产品申请" name="second">
+                <el-form :model="productForm" :rules="productFormrules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
+                  <el-form-item label="选择产品">
+                    <el-select v-model="productForm.goodsList" multiple placeholder="请选择选择产品">
+                      <el-option v-for="(item, index) in goodsLists" :key="index" :label="item.name" :value="item"> </el-option>
+                    </el-select>
+                  </el-form-item>
+                  <el-form-item>
+                    <el-button type="primary" @click="submitForm('ruleForm')">确定</el-button>
+                    <el-button @click="resetForm('ruleForm')">取消</el-button>
+                  </el-form-item>
+                </el-form>
+              </el-tab-pane>
+            </el-tabs>
+          </el-col>
+        </div>
+      </el-col>
+    </el-row>
   </div>
 </template>
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
+import _ from 'lodash';
+import upload from '@/components/upload.vue';
 const { mapActions: mapProduct } = createNamespacedHelpers('marketproduct');
 const { mapActions: apply } = createNamespacedHelpers('apply');
-import upload from '@/components/upload.vue';
+const { mapActions: mapMarkettype } = createNamespacedHelpers('markettype');
 export default {
   name: 'liveApply',
   props: {},
   components: {
-    // upload,
+    upload,
   },
   data: () => ({
-    form: {},
     logo: require('@/assets/live/d10_fbb1.png'),
-    resource: '',
+    activeName: 'first',
+    // 需求
+    demandForm: {
+      totaltype: '0',
+    },
+    columnList: [], //类型
+    demandFormrules: {
+      name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
+      totaltype: [{ required: true, message: '请输入名称', trigger: 'change' }],
+      contact_user: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
+      contact_tel: [{ required: true, message: '请输入联系电话', trigger: 'blur' }],
+    },
+    // 产品
+    productForm: {},
     goodsLists: [],
+    productFormrules: {},
   }),
   created() {
     this.searchInfo();
+    // 查询类型
+    this.maarkettype();
   },
   methods: {
     ...mapProduct({ mapProductQuery: 'query', mapProductFetch: 'fetch' }),
     ...apply({ applyCreate: 'create' }),
+    ...mapMarkettype({ markettypeList: 'query' }),
+    // 查询产品
+    async searchInfo() {
+      let res = await this.mapProductQuery({ userid: this.user.uid });
+      if (res.errcode === 0) {
+        this.$set(this, `goodsLists`, res.data);
+      }
+    },
+    // 提交
     async onSubmit() {
       let duplicate = JSON.parse(JSON.stringify(this.form));
       let data = { ...duplicate };
@@ -114,17 +306,38 @@ export default {
       let index = this.goodsLists.find(item => item.id == id);
       return index;
     },
-    async searchInfo() {
-      let res = await this.mapProductQuery({ userid: this.user.uid });
-      if (res.errcode === 0) {
-        this.$set(this, `goodsLists`, res.data);
+    // 查询类型
+    async maarkettype({ category = 54, ...info } = {}) {
+      const res = await this.markettypeList({ category, ...info });
+      if (this.$checkRes(res)) {
+        this.$set(this, `columnList`, res.data);
       }
     },
-    changeuser(label) {
-      this.$set(this, 'resource', label);
+    // 类型选择
+    selectChild(product_type_id) {
+      let res = this.columnList.filter(fil => fil.id === product_type_id);
+      if (res.length > 0) {
+        this.$set(this.demandForm, `product_type_name`, res[0].name);
+      }
+      this.$forceUpdate();
     },
+    // 图片
     uploadSuccess({ type, data }) {
-      this.$set(this.form, `${type}`, data.uri);
+      let arr = _.get(this.demandForm, type);
+      if (_.isArray(arr)) {
+        let datas = { name: data.name, url: data.uri };
+        this.demandForm[type].push({ name: data.name, url: data.uri });
+      } else {
+        let newArr = [{ name: data.name, url: data.uri }];
+        this.$set(this.demandForm, `${type}`, newArr);
+      }
+    },
+    // 删除图片
+    uploadDelete(index) {
+      this.demandForm.image.splice(index, 1);
+    },
+    handleClick(tab, event) {
+      console.log(tab, event);
     },
   },
   computed: {
@@ -140,34 +353,17 @@ export default {
 </script>
 
 <style lang="less" scoped>
-@import '~@/style/style.css';
-.liveApply {
-  float: left;
-  margin: 30px 0;
+.w_1200 {
+  width: 80%;
+  margin: 0 auto;
 }
-.liveApply .liveApplyTop {
-  float: left;
+.top {
   background: #f3faff;
   padding: 15px;
   border: 1px solid #ccc;
-  margin: 0 0 15px 0;
-}
-.liveApplyTop p:first-child {
-  font-size: 14px;
-  font-weight: bold;
+  margin: 15px 0;
 }
-.liveApplyTop p:nth-child(2n) {
-  font-size: 12px;
+.info {
   padding: 15px 0;
 }
-.liveApplyTop p:last-child {
-  font-size: 12px;
-}
-.liveApplyInfo {
-  padding: 0 100px;
-}
-
-/deep/.el-input__inner {
-  width: 1300px;
-}
 </style>

+ 19 - 2
src/views/newlogin.vue

@@ -1,6 +1,13 @@
 <template>
   <div id="login">
-    <login-detail :info="info" :form="form" @submitDate="submitnewLogin" :forms="forms" @submitDates="submitRegisters"></login-detail>
+    <login-detail
+      :info="info"
+      :form="form"
+      @submitDate="submitnewLogin"
+      @adminSubmit="adminSubmit"
+      :forms="forms"
+      @submitDates="submitRegisters"
+    ></login-detail>
   </div>
 </template>
 
@@ -32,14 +39,24 @@ export default {
     ...mapMarket({ userFetch: 'fetch', userCreate: 'create', userUpdate: 'update' }),
     ...login({ toLogin: 'login' }),
     ...expertsuser({ expertsuserCreate: 'create' }),
+    // 管理登录
+    async adminSubmit(form) {
+      console.log(form);
+      //   let res = await this.toLogin({ user: form });
+      // if (res.uid) {
+      //   history.back();
+      // }
+    },
+    // 用户登录
     async submitnewLogin(form) {
       let res = await this.toLogin({ user: form });
       if (res.uid) {
         history.back();
       }
     },
+    // 注册
     async submitRegisters({ data }) {
-      if (data.role == '2' || data.role == '3') {
+      if (data.role == '24' || data.role == '5') {
         let res = await this.userCreate(data);
         let msg = `注册成功,等待管理员审核,方可登录`;
         this.$checkRes(res, msg);

+ 6 - 8
src/views/userCenter/productInfo/part/infoRelease.vue

@@ -46,14 +46,12 @@
             <el-form-item label="产品简介">
               <el-input type="textarea" v-model="form.introduction" placeholder="请输入产品简介"></el-input>
             </el-form-item>
-            <span>
-              <el-form-item label="研发阶段" v-if="form.totaltype == null || form.totaltype == '0'">
-                <el-select v-model="form.phase" placeholder="请选择研发阶段">
-                  <el-option label="阶段成果" value="0"></el-option>
-                  <el-option label="最终成果" value="1"></el-option>
-                </el-select>
-              </el-form-item>
-            </span>
+            <el-form-item label="研发阶段" v-if="form.totaltype == null || form.totaltype == '0'">
+              <el-select v-model="form.phase" placeholder="请选择研发阶段">
+                <el-option label="阶段成果" value="0"></el-option>
+                <el-option label="最终成果" value="1"></el-option>
+              </el-select>
+            </el-form-item>
             <el-row>
               <el-col :span="12">
                 <el-form-item label="产品单价" v-if="form.totaltype == null || form.totaltype == '0' || form.totaltype == '1'">

+ 53 - 0
src/views/vipCenter/dynamicInfo/index.vue

@@ -0,0 +1,53 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24">
+        <el-col :span="24" class="leftTop"> <span>|</span> <span>动态监测</span> </el-col>
+        <el-col :span="24" class="info">
+          动态监测
+        </el-col>
+      </el-col></el-row
+    >
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    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 0;
+}
+</style>

+ 5 - 9
src/views/vipCenter/index.vue

@@ -12,13 +12,10 @@
             </el-col>
             <el-col :span="19" class="mainMess">
               <span v-if="num == '1'">
-                <basicInfo></basicInfo>
-              </span>
-              <span v-else-if="num == '2'">
                 <statisInfo></statisInfo>
               </span>
-              <span v-else-if="num == '3'">
-                <password></password>
+              <span v-else-if="num == '2'">
+                <dynamicInfo></dynamicInfo>
               </span>
               <span v-else>
                 退出登录
@@ -38,9 +35,9 @@
 import heads from '@/layout/userCenter/heads.vue';
 import menuInfo from '@/layout/vipCenter/menuInfo.vue';
 import foot from '@/layout/live/foot.vue';
-import basicInfo from './basicInfo/index.vue';
 import statisInfo from './statisInfo/index.vue';
-import password from './password/index.vue';
+import dynamicInfo from './dynamicInfo/index.vue';
+
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'index',
@@ -49,9 +46,8 @@ export default {
     heads,
     menuInfo,
     foot,
-    basicInfo, //个人中心
     statisInfo, //统计报表
-    password, //修改密码
+    dynamicInfo, //动态监测
   },
   data: function() {
     return {};