Browse Source

Merge branch 'master' of http://git.cc-lotus.info/service-platform/web-test into master

wxy 4 years ago
parent
commit
5692b79155

BIN
src/assets/bg1.jpg


BIN
src/assets/expert.jpg


BIN
src/assets/live/222.png


BIN
src/assets/personal1.jpg


+ 16 - 12
src/router/index.js

@@ -283,12 +283,7 @@ const live = [
     meta: { title: '直播首页', subSite: true },
     component: () => import('../views/hall/index.vue'),
   },
-  // {
-  //   path: '/live/liveList',
-  //   meta: { title: '直播中心', subSite: true },
-  //   name: 'live_list',
-  //   component: () => import('../views/hall/liveList.vue'),
-  // },
+
   {
     path: '/live/hallDetail',
     meta: { title: '直播详情', subSite: true },
@@ -301,12 +296,6 @@ const live = [
     name: 'dock_Detail',
     component: () => import('../views/hall/dock/dockDetail.vue'),
   },
-  // {
-  //   path: '/live/hall/dock/zhuanjiaDetail',
-  //   meta: { title: '专家信息详情', subSite: true },
-  //   name: 'zhuanjiaDetail',
-  //   component: () => import('../views/hall/dock/zhuanjiaDetail.vue'),
-  // },
   {
     path: '/live/hall/dock/zhanjiaduijie',
     meta: { title: '专家信息详情', subSite: true },
@@ -350,6 +339,21 @@ const live = [
     meta: { title: '个人中心', subSite: true },
     component: () => import('../views/superAdminCenter/index.vue'),
   },
+  // 10-17
+  // 人才招聘展会
+  {
+    path: '/personalhall/index',
+    name: 'personalhall',
+    meta: { title: '人才招聘展会' },
+    component: () => import('../views/personalhall/index.vue'),
+  },
+  // 专家培训在线
+  {
+    path: '/exporthall/index',
+    name: 'exporthall',
+    meta: { title: '专家培训在线展会' },
+    component: () => import('../views/exporthall/index.vue'),
+  },
 ];
 const routes = [...live];
 

+ 4 - 2
src/store/market/exportuser.js

@@ -10,18 +10,20 @@ const state = () => ({});
 const mutations = {};
 
 const actions = {
-  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+  async query({ commit }, { skip = 0, limit = undefined, isdel = '0', ...info } = {}) {
     const res = await this.$axios.$get(api.expertsuserInfo, {
       skip,
       limit,
+      isdel,
       ...info,
     });
     return res;
   },
-  async expertquery({ commit }, { skip = 0, limit, ...info } = {}) {
+  async expertquery({ commit }, { skip = 0, limit, isdel = '0', ...info } = {}) {
     const res = await this.$axios.$get(`${api.indexqueryinfo}`, {
       skip,
       limit,
+      isdel,
       ...info,
     });
     return res;

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

@@ -18,6 +18,14 @@ const actions = {
     });
     return res;
   },
+  async operaQuery({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.operaInfo}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
   async operaFetch({ commit }, { skip = 0, limit, ...info } = {}) {
     const res = await this.$axios.$get(`${api.operaInfo}`, {
       skip,

+ 4 - 3
src/store/user/user.js

@@ -10,14 +10,15 @@ 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 });
+  async query({ commit }, { skip = 0, limit = undefined, isdel = '0', ...info } = {}) {
+    const res = await this.$axios.$get(api.interface, { skip, limit, isdel, ...info });
     return res;
   },
-  async userquery({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+  async userquery({ commit }, { skip = 0, limit = undefined, isdel = '0', ...info } = {}) {
     const res = await this.$axios.$get(api.userinterface, {
       skip,
       limit,
+      isdel,
       ...info,
     });
     return res;

+ 104 - 70
src/views/adminCenter/applyInfo/index.vue

@@ -5,14 +5,74 @@
         <el-col :span="24" class="leftTop"> <span>|</span> <span>申请管理</span> </el-col>
         <el-col :span="24" class="info">
           <span v-if="display == 'list'">
-            <data-table :fields="fields" :opera="opera" :data="list" :total="total" @edit="toEdit" @query="search"></data-table>
+            <el-table :data="list" border style="width: 100%">
+              <el-table-column prop="user_name" label="姓名" align="center" show-overflow-tooltip> </el-table-column>
+              <el-table-column prop="contact_tel" label="电话" align="center"> </el-table-column>
+              <el-table-column prop="apply_time" label="申请时间" align="center" show-overflow-tooltip> </el-table-column>
+              <el-table-column label="用户类型" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.role == '4' ? '个人' : scope.row.role == '5' ? '机构' : '专家' }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column label="用户状态" align="center">
+                <template slot-scope="scope">
+                  <span>{{ scope.row.status == '0' ? '待审核' : scope.row.status == '1' ? '通过' : '拒绝' }}</span>
+                </template>
+              </el-table-column>
+              <el-table-column fixed="right" label="操作" align="center">
+                <template slot-scope="scope">
+                  <el-button @click="toEdit(scope.row)" type="text" size="small">审核</el-button>
+                </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>
           </span>
           <span v-else>
             <el-col :span="24" style="text-align:right;">
               <el-button type="primary" size="mini" @click="display = 'list'">返回</el-button>
             </el-col>
             <el-col :span="24">
-              <data-table :fields="goodsfields" :opera="goodsopera" :data="goodsList" :total="goodsTotal" @check="toCheck" @query="search"></data-table>
+              <el-table :data="goodsList" border style="width: 100%">
+                <el-table-column prop="name" label="产品名称" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column label="类型" align="center">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.type == '0' ? '技术' : scope.row.type == '1' ? '产品' : '商务' }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="contacts" label="联系人" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="phone" label="电话" align="center"> </el-table-column>
+                <el-table-column prop="field" label="所属领域" align="center" show-overflow-tooltip> </el-table-column>
+                <el-table-column prop="cooperation" label="合作方式" align="center"> </el-table-column>
+                <el-table-column label="用户状态" align="center">
+                  <template slot-scope="scope">
+                    <span>{{ scope.row.dockStatus == '0' ? '待审核' : scope.row.dockStatus == '1' ? '通过' : '拒绝' }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" label="操作" align="center">
+                  <template slot-scope="scope">
+                    <el-button @click="toCheck(scope.row)" type="text" size="small">审核</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <el-col :span="24" class="page">
+                <el-pagination
+                  @current-change="handleCurrentChange1"
+                  :current-page="currentPage1"
+                  layout="total, prev, pager, next, jumper"
+                  :total="goodsTotal"
+                  :page-size="pageSize"
+                >
+                </el-pagination>
+              </el-col>
             </el-col>
           </span>
         </el-col>
@@ -341,73 +401,26 @@ export default {
   name: 'index',
   props: {},
   components: {
-    dataTable,
+    // dataTable,
     upload,
   },
   data: function() {
     return {
       display: 'list',
-      opera: [
-        {
-          label: '审核',
-          icon: 'el-icon-view',
-          method: 'edit',
-        },
-      ],
-      fields: [
-        { label: '姓名', prop: 'user_name', filter: 'input' },
-        { label: '电话', prop: 'contact_tel' },
-        { label: '申请时间', prop: 'apply_time' },
-        {
-          label: '用户类别',
-          prop: 'role',
-          format: item => {
-            return item === '4' ? '个人' : item === '5' ? '机构' : item === '6' ? '专家' : '';
-          },
-        },
-        {
-          label: '用户状态',
-          prop: 'status',
-          format: item => {
-            return item === '0' ? '待审核' : item === '1' ? '通过' : item === '2' ? '拒绝' : '';
-          },
-        },
-      ],
+      currentPage: 1,
+      pageSize: 10,
+      origin: [],
       list: [],
+      applylist: [],
       total: 0,
       // 对接会id
       dock_id: '',
       // 审核产品列表
-      goodsopera: [
-        {
-          label: '审核',
-          icon: 'el-icon-check',
-          method: 'check',
-        },
-      ],
-      goodsfields: [
-        { label: '产品名称', prop: 'name', filter: 'input' },
-        {
-          label: '产品类别',
-          prop: 'type',
-          format: item => {
-            return item === '0' ? '技术' : item === '1' ? '产品' : item === '2' ? '商务' : '';
-          },
-        },
-        { label: '联系人', prop: 'contacts' },
-        { label: '联系电话', prop: 'phone' },
-        { label: '所属领域', prop: 'field' },
-        { label: '合作方式', prop: 'cooperation' },
-        {
-          label: '申请产品状态',
-          prop: 'dockStatus',
-          format: item => {
-            return item === '0' ? '待审核' : item === '1' ? '通过' : item === '2' ? '拒绝' : '';
-          },
-        },
-      ],
       goodsList: [],
       goodsTotal: 0,
+      currentPage1: 1,
+      origin1: [],
+      good: [],
       // 审核产品
       dialogVisible: false,
       // 产品详情
@@ -420,9 +433,9 @@ export default {
       cooperationList: [],
     };
   },
-  created() {
-    this.search();
-    this.searchtype();
+  async created() {
+    await this.searchtype();
+    await this.search();
   },
   methods: {
     ...dock(['fetch', 'query', 'delete', 'update', 'delete', 'updateGood']),
@@ -431,7 +444,7 @@ export default {
     async search() {
       let res = await this.fetch(this.user.uid);
       if (this.$checkRes(res)) {
-        this.$set(this, `list`, res.data.apply);
+        this.$set(this, `applylist`, res.data.apply);
         this.$set(this, `dock_id`, res.data.id);
         this.$set(this, `total`, res.data.apply.length);
       }
@@ -455,13 +468,13 @@ export default {
       }
     },
     // 审核
-    toEdit({ data }) {
-      this.$set(this, `goodsList`, data.goodsList);
+    toEdit(data) {
+      this.$set(this, `good`, data.goodsList);
       this.$set(this, `goodsTotal`, data.goodsList.length);
       this.display = 'view';
     },
     // 审核产品
-    toCheck({ data }) {
+    toCheck(data) {
       this.$set(this, `form`, data);
       this.dialogVisible = true;
     },
@@ -492,17 +505,38 @@ export default {
     uploadDelete(index) {
       this.form.image.splice(index, 1);
     },
-    updataApply() {
-      let data = this.list.goodsList;
-      console.log(data);
+    // 分页
+    searchpage(page = 1) {
+      this.$set(this, `list`, this.origin[page - 1]);
+    },
+    handleCurrentChange(currentPage) {
+      this.searchpage(currentPage);
+    },
+    // 产品分页
+    // 分页
+    searchpage1(page = 1) {
+      this.$set(this, `goodsList`, this.origin1[page - 1]);
+    },
+    handleCurrentChange1(currentPage1) {
+      this.searchpage1(currentPage1);
     },
   },
   watch: {
-    list: {
+    applylist: {
+      immediate: true,
+      deep: true,
       handler(val) {
-        this.updataApply();
+        if (val && val.length > 0) this.$set(this, `origin`, _.chunk(val, this.pageSize));
+        this.searchpage();
       },
+    },
+    good: {
       immediate: true,
+      deep: true,
+      handler(val) {
+        if (val && val.length > 0) this.$set(this, `origin1`, _.chunk(val, this.pageSize));
+        this.searchpage1();
+      },
     },
   },
   computed: {
@@ -534,7 +568,7 @@ export default {
   padding: 0 40px 0 10px;
 }
 .page {
-  text-align: right;
+  text-align: center;
   padding: 10px 0;
 }
 </style>

+ 211 - 0
src/views/exporthall/index.vue

@@ -0,0 +1,211 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="main">
+        <div class="w_1200">
+          <el-col :span="24" class="one">
+            <el-col :span="24" class="top">
+              <p>专家培训在线展会模板</p>
+              <p>主办方:吉林省计算中心</p>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="two">
+            <el-col :span="22" class="left" :offset="1">
+              <el-col :span="24" class="top">
+                <span style="color:#409eff">专家培训直播</span>
+                <span>直播</span>
+              </el-col>
+              <el-col :span="24" class="down">
+                视频播放框
+              </el-col>
+            </el-col>
+            <el-col :span="22" class="right" :offset="1">
+              <el-col :span="24" class="top">
+                公共聊天
+              </el-col>
+              <el-col :span="24" class="down">
+                <el-col :span="24" class="list">
+                  <el-col :span="24" class="chatList" v-for="(item, index) in chatList" :key="index">
+                    <el-col :span="1" class="image">
+                      <el-image :src="touxiang" style="width:30px;height:30px"></el-image>
+                    </el-col>
+                    <el-col :span="23" class="other">
+                      <el-col :span="24" class="otherone">
+                        <span>{{ item.name }}</span>
+                        <span>{{ item.date }}</span>
+                      </el-col>
+                      <el-col :span="24" class="othertwo">
+                        <p class="remark">{{ item.content }}</p>
+                      </el-col>
+                    </el-col>
+                  </el-col>
+                </el-col>
+                <el-col :span="24" class="chat">
+                  <el-col :span="21" class="input">
+                    <el-input v-model="text" placeholder="请输入聊天内容"></el-input>
+                  </el-col>
+                  <el-col :span="3" class="btn">
+                    <el-button type="primary" size="mini">发送</el-button>
+                  </el-col>
+                </el-col>
+              </el-col>
+            </el-col>
+          </el-col>
+        </div>
+        <div class="pz_down">
+          <live-foot></live-foot>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import liveFoot from '@/layout/live/foot.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: { liveFoot },
+  data: function() {
+    return {
+      // 聊天列表 超过6个就有滚动条
+      chatList: [
+        { name: '顾红伟', date: '10:00', content: '信息内容' },
+        { name: '顾红伟', date: '10:00', content: '信息内容' },
+      ],
+      touxiang: require('@/assets/emotion/touxiang.png'),
+      // 发言内容
+      text: '',
+      per: require('@/assets/personal.jpg'),
+      // 招聘信息
+    };
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .one {
+    .top {
+      text-align: center;
+      margin: 50px 0;
+      p:nth-child(1) {
+        font-size: 50px;
+        font-family: cursive;
+      }
+      p:nth-child(2) {
+        font-size: 18px;
+        padding: 15px 0;
+      }
+    }
+  }
+  .two {
+    margin: 0 0 15px 0;
+    text-align: center;
+    .left {
+      height: 600px;
+      overflow: hidden;
+      border: 5px solid #000;
+      background: #fff;
+      border-radius: 5px;
+      padding: 10px;
+      .top {
+        height: 30px;
+        line-height: 30px;
+        font-weight: bold;
+        font-size: 20px;
+        margin: 0 0 5px 0;
+      }
+      .down {
+        height: 535px;
+        background-color: #000;
+        color: #fff;
+      }
+    }
+    .right {
+      height: 560px;
+      margin-top: 30px;
+      border-top-left-radius: 5px;
+      border-bottom-left-radius: 5px;
+      overflow: hidden;
+      background: #f0ffff5f;
+      border-bottom: 1px solid #f1f1f1;
+      .top {
+        height: 40px;
+        line-height: 40px;
+        padding: 0 10px;
+        font-weight: bold;
+        font-size: 18px;
+        color: #fff;
+        background-color: #409eff;
+      }
+      .down {
+        overflow: hidden;
+        padding: 0 0 0 10px;
+        .list {
+          height: 480px;
+          overflow-y: auto;
+          .chatList {
+            padding: 10px 0;
+            border-bottom: 1px dashed #409eff;
+            .image {
+              text-align: center;
+            }
+            .other {
+              .otherone {
+                text-align: left;
+                span:nth-child(1) {
+                  color: #000;
+                  font-size: 16px;
+                  font-weight: bold;
+                }
+                span:nth-child(2) {
+                  display: inline-block;
+                  margin: 0 0 0 15px;
+                  color: #ccc;
+                }
+              }
+              .othertwo {
+                margin: 5px 0 0 0;
+                color: #000;
+                .remark {
+                  min-height: 20px;
+                  font-size: 15px;
+                  padding: 5px;
+                  border-radius: 5px;
+                  background: #cccccc5f;
+                }
+              }
+            }
+          }
+        }
+        .chat {
+          height: 40px;
+          .input {
+            /deep/.el-input__inner {
+              height: 35px;
+              line-height: 35px;
+            }
+          }
+          .btn {
+            /deep/.el-button--mini,
+            .el-button--mini.is-round {
+              padding: 10px 15px;
+              width: 100%;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+</style>

+ 10 - 8
src/views/hall/direct.vue

@@ -502,7 +502,7 @@ export default {
   },
   methods: {
     ...mapProduct({ mapProductQuery: 'newquery' }),
-    ...market({ marketFetch: 'fetch', operaFetch: 'operaFetch', sendMsg: 'operationCreate' }),
+    ...market({ marketFetch: 'fetch', operaFetch: 'operaFetch', sendMsg: 'operationCreate', operaQuery: 'operaQuery' }),
     ...dock({ dockQuery: 'query', dockFetch: 'fetch', goodsquery: 'goodsquery' }),
     ...expertsuser({ expertQuery: 'query' }),
     ...transaction({ tquery: 'query' }),
@@ -577,8 +577,10 @@ export default {
         val.date = date;
       }
       // 同时在线
-      let tszx = jioayi.data.filter(f => f.type == '0');
-      if (tszx) this.$set(this.statNum, `tszx`, tszx.length);
+      let tszx = await this.operaQuery({ type: '0' });
+      if (tszx) {
+        this.$set(this.statNum, `tszx`, tszx.total);
+      }
       this.$set(this, `lunboList`, jioayi.data.reverse());
       // 展会动态结束
       let zxzd = await this.danceQuery({ dock_id: this.dock_id });
@@ -844,12 +846,12 @@ export default {
     height: 470px;
     overflow: hidden;
     .left {
-      float: left;
       height: 470px;
       overflow: hidden;
       border: 5px solid #000;
       background: #fff;
       border-radius: 5px;
+      margin: 0 15px 0 0;
       .lefttop {
         padding: 0 10px;
         height: 60px;
@@ -907,12 +909,12 @@ export default {
       }
     }
     .right {
-      height: 470px;
-      border-top-left-radius: 5px;
-      border-bottom-left-radius: 5px;
+      width: 48%;
+      height: 468px;
       overflow: hidden;
       background: #f0ffff5f;
-      border-bottom: 1px solid #f1f1f1;
+      box-shadow: 0 0 5px #409eff;
+      border-radius: 5px;
       .rightFirst {
         color: #fff;
         height: 430px;

+ 35 - 7
src/views/hallList/index.vue

@@ -5,13 +5,13 @@
         <div class="w_1200">
           <el-tabs type="border-card" class="tabs">
             <el-tab-pane label="科技成果在线">
-              <product></product>
+              <product :province="province" :place="place"></product>
             </el-tab-pane>
-            <el-tab-pane label="人才在线">
-              <personal></personal>
+            <el-tab-pane label="人才对接在线">
+              <personal :province="province" :place="place"></personal>
             </el-tab-pane>
             <el-tab-pane label="专家培训在线">
-              <exports></exports>
+              <exports :province="province" :place="place"></exports>
             </el-tab-pane>
           </el-tabs>
         </div>
@@ -25,6 +25,7 @@ import product from './parts/product.vue';
 import personal from './parts/personal.vue';
 import exports from './parts/export.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: place } = createNamespacedHelpers('place');
 export default {
   name: 'index',
   props: {},
@@ -34,10 +35,27 @@ export default {
     exports,
   },
   data: function() {
-    return {};
+    return {
+      // 省
+      province: [],
+      // 市
+      place: [],
+    };
+  },
+  async created() {
+    await this.searchplace();
+  },
+  methods: {
+    ...place({ palcequery: 'query', transactiondtetle: 'delete' }),
+    async searchplace() {
+      let res = await this.palcequery({ level: 1 });
+      let arr = await this.palcequery({ level: 2 });
+      if (res || arr) {
+        this.$set(this, `province`, res.data);
+        this.$set(this, `place`, arr.data);
+      }
+    },
   },
-  created() {},
-  methods: {},
   computed: {
     ...mapState(['user']),
   },
@@ -55,4 +73,14 @@ export default {
     min-height: 600px;
   }
 }
+/deep/.el-tabs__item {
+  height: 50px;
+  line-height: 50px;
+  font-size: 18px;
+  font-weight: bold;
+}
+/deep/.el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
+  background-color: #409eff;
+  color: #fff;
+}
 </style>

+ 72 - 177
src/views/hallList/parts/export.vue

@@ -1,82 +1,90 @@
 <template>
   <div id="export">
     <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <el-col :span="24" class="top">
-            <p>专家培训在线展会模板</p>
-            <p>主办方:吉林省计算中心</p>
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="two">
-          <el-col :span="22" class="left" :offset="1">
-            <el-col :span="24" class="top">
-              <span style="color:#409eff">专家培训直播</span>
-              <span>直播</span>
-            </el-col>
-            <el-col :span="24" class="down">
-              视频播放框
-            </el-col>
-          </el-col>
-          <el-col :span="22" class="right" :offset="1">
-            <el-col :span="24" class="top">
-              公共聊天
-            </el-col>
-            <el-col :span="24" class="down">
-              <el-col :span="24" class="list">
-                <el-col :span="24" class="chatList" v-for="(item, index) in chatList" :key="index">
-                  <el-col :span="1" class="image">
-                    <el-image :src="touxiang" style="width:30px;height:30px"></el-image>
-                  </el-col>
-                  <el-col :span="23" class="other">
-                    <el-col :span="24" class="otherone">
-                      <span>{{ item.name }}</span>
-                      <span>{{ item.date }}</span>
-                    </el-col>
-                    <el-col :span="24" class="othertwo">
-                      <p class="remark">{{ item.content }}</p>
-                    </el-col>
-                  </el-col>
-                </el-col>
-              </el-col>
-              <el-col :span="24" class="chat">
-                <el-col :span="21" class="input">
-                  <el-input v-model="text" placeholder="请输入聊天内容"></el-input>
-                </el-col>
-                <el-col :span="3" class="btn">
-                  <el-button type="primary" size="mini">发送</el-button>
-                </el-col>
-              </el-col>
-            </el-col>
-          </el-col>
-        </el-col>
+      <el-col :span="24" class="product">
+        <!-- 是否支持多开 accordion -->
+        <el-collapse v-model="activeName" accordion>
+          <el-collapse-item title="正在直播" name="1">
+            <exportlist :list="listNow" :total="nowTotal" status="1" @query="searchList" :province="province" :place="place"></exportlist>
+          </el-collapse-item>
+          <el-collapse-item title="下期预告" name="2">
+            <exportlist :list="listPre" :total="preTotal" status="0" @query="searchList" :province="province" :place="place"></exportlist>
+          </el-collapse-item>
+          <el-collapse-item title="往期直播" name="3">
+            <exportlist :list="listPast" :total="pastTotal" status="2" @query="searchList" :province="province" :place="place"></exportlist>
+          </el-collapse-item>
+        </el-collapse>
       </el-col>
     </el-row>
   </div>
 </template>
 
 <script>
+import _ from 'lodash';
+import exportlist from './exportlist.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: dock } = createNamespacedHelpers('dock');
 export default {
   name: 'export',
-  props: {},
-  components: {},
+  props: {
+    // 省
+    province: { type: Array, default: () => [] },
+    // 市
+    place: { type: Array, default: () => [] },
+  },
+  components: {
+    exportlist,
+  },
   data: function() {
     return {
-      // 聊天列表 超过6个就有滚动条
-      chatList: [
-        { name: '顾红伟', date: '10:00', content: '信息内容' },
-        { name: '顾红伟', date: '10:00', content: '信息内容' },
+      activeName: '1',
+      // 下期预告
+      listPre: [
+        {
+          end_time: '2020-10-23 00:00',
+          place: '220100',
+          province: '220000',
+          start_time: '2020-10-16 10:00',
+          status: '1',
+          title: '专家培训在线模板',
+        },
+      ],
+      preTotal: 0,
+      // 正在直播
+      listNow: [
+        {
+          end_time: '2020-10-23 00:00',
+          place: '220100',
+          province: '220000',
+          start_time: '2020-10-16 10:00',
+          status: '1',
+          title: '专家培训在线模板',
+        },
       ],
-      touxiang: require('@/assets/emotion/touxiang.png'),
-      // 发言内容
-      text: '',
-      per: require('@/assets/personal.jpg'),
-      // 招聘信息
+      nowTotal: 0,
+      // 往期直播
+      listPast: [
+        {
+          end_time: '2020-10-23 00:00',
+          place: '220100',
+          province: '220000',
+          start_time: '2020-10-16 10:00',
+          status: '1',
+          title: '专家培训在线模板',
+        },
+      ],
+      pastTotal: 0,
     };
   },
-  created() {},
-  methods: {},
+  async created() {
+    await this.searchList({ status: '0' });
+    await this.searchList({ status: '1' });
+    await this.searchList({ status: '2' });
+  },
+  methods: {
+    ...dock({ dockQuery: 'query' }),
+    async searchList({ skip = 0, limit = 10, status, ...info } = {}) {},
+  },
   computed: {
     ...mapState(['user']),
   },
@@ -87,120 +95,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.main {
-  .one {
-    .top {
-      margin: 0 0 15px 0;
-      text-align: center;
-      p:nth-child(1) {
-        font-size: 40px;
-      }
-      p:nth-child(2) {
-        font-size: 18px;
-        padding: 15px 0;
-      }
-    }
-  }
-  .two {
-    // height: 900px;
-    margin: 0 0 15px 0;
-    text-align: center;
-    .left {
-      height: 600px;
-      overflow: hidden;
-      border: 5px solid #000;
-      background: #fff;
-      border-radius: 5px;
-      padding: 10px;
-      .top {
-        height: 30px;
-        line-height: 30px;
-        font-weight: bold;
-        font-size: 20px;
-        margin: 0 0 5px 0;
-      }
-      .down {
-        height: 535px;
-        background-color: #000;
-        color: #fff;
-      }
-    }
-    .right {
-      height: 560px;
-      margin-top: 30px;
-      border-top-left-radius: 5px;
-      border-bottom-left-radius: 5px;
-      overflow: hidden;
-      background: #f0ffff5f;
-      border-bottom: 1px solid #f1f1f1;
-      .top {
-        height: 40px;
-        line-height: 40px;
-        padding: 0 10px;
-        font-weight: bold;
-        font-size: 18px;
-        color: #fff;
-        background-color: #409eff;
-      }
-      .down {
-        // height: 560px;
-        overflow: hidden;
-        padding: 0 0 0 10px;
-        .list {
-          height: 480px;
-          overflow-y: auto;
-          .chatList {
-            padding: 10px 0;
-            border-bottom: 1px dashed #409eff;
-            .image {
-              text-align: center;
-            }
-            .other {
-              .otherone {
-                text-align: left;
-                span:nth-child(1) {
-                  color: #000;
-                  font-size: 16px;
-                  font-weight: bold;
-                }
-                span:nth-child(2) {
-                  display: inline-block;
-                  margin: 0 0 0 15px;
-                  color: #ccc;
-                }
-              }
-              .othertwo {
-                margin: 5px 0 0 0;
-                color: #000;
-                .remark {
-                  min-height: 20px;
-                  font-size: 15px;
-                  padding: 5px;
-                  border-radius: 5px;
-                  background: #cccccc5f;
-                }
-              }
-            }
-          }
-        }
-        .chat {
-          height: 40px;
-          .input {
-            /deep/.el-input__inner {
-              height: 35px;
-              line-height: 35px;
-            }
-          }
-          .btn {
-            /deep/.el-button--mini,
-            .el-button--mini.is-round {
-              padding: 10px 15px;
-              width: 100%;
-            }
-          }
-        }
-      }
-    }
-  }
+/deep/.el-collapse-item__content {
+  padding-bottom: 0;
 }
 </style>

+ 137 - 0
src/views/hallList/parts/exportlist.vue

@@ -0,0 +1,137 @@
+<template>
+  <div id="personallist">
+    <el-row>
+      <el-col :span="24" class="productlist">
+        <el-col :span="8" class="list" v-for="(item, index) in list" :key="index">
+          <el-image :src="hall" style="width:100%;height:200px;"></el-image>
+          <el-col :span="24" class="other">
+            <p class="textOver">{{ item.title }}</p>
+            <p class="textOver">
+              <span><i class="el-icon-location-outline"></i>{{ getprovince(item.province) }}-{{ getplace(item.place) }}</span>
+              <span><i class="el-icon-time"></i>{{ item.start_time }}-{{ item.end_time }}</span>
+            </p>
+            <p>
+              <el-button type="warning" size="mini" @click="linkBtn(item)">进入对接会</el-button>
+              <!-- <el-button type="warning" size="mini" @click="dockBtn()" v-if="user.role == '3' || user.role == '7'">管理进入</el-button> -->
+              <!-- <el-button type="warning" size="mini" @click="linkBtn(item)" v-if="status == '1'">进入对接会</el-button> -->
+              <!-- <el-button type="warning" size="mini" @click="apply(item)" v-if="status == '0' && user.uid != undefined">申请对接会</el-button>
+              <el-button type="warning" size="mini" @click="check(item)" v-if="status == '2' && user.role == '3'">查看成果</el-button> -->
+            </p>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import page from '@/components/pagination.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: dock } = createNamespacedHelpers('dock');
+export default {
+  name: 'personallist',
+  props: {
+    list: { type: Array, default: () => [] },
+    status: { type: String, default: '0' },
+    // 省
+    province: { type: Array, default: () => [] },
+    // 市
+    place: { type: Array, default: () => [] },
+  },
+  components: {},
+  data: () => {
+    return {
+      hall: require('@a/expert.jpg'),
+    };
+  },
+  created() {},
+  methods: {
+    ...dock({ livefetch: 'fetch', livelist: 'query', livecreate: 'create', liveupdate: 'update' }),
+    // 过滤省
+    getprovince(item) {
+      let res = this.province.find(i => i.code == item);
+      if (res) return res.name;
+    },
+    // 过滤市
+    getplace(item) {
+      let res = this.place.find(i => i.code == item);
+      if (res) return res.name;
+    },
+
+    // 管理进入
+    dockBtn() {
+      // if (this.user.uid) {
+      //   this.$router.push({ path: '/adminCenter/index', query: { num: '1' } });
+      // } else {
+      //   this.$router.push({ path: '/dockLogin' });
+      // }
+    },
+    // 进入对接会
+    async linkBtn(item) {
+      if (this.user.uid || this.user.suid) {
+        if (
+          this.user.role == '2' ||
+          this.user.role == '3' ||
+          this.user.role == '4' ||
+          this.user.role == '5' ||
+          this.user.role == '6' ||
+          this.user.role == '7' ||
+          this.user.role == '8'
+        ) {
+          this.$router.push({ path: '/exporthall/index', query: { id: item.id } });
+        } else {
+          this.$router.push({ path: '/webLogin' });
+        }
+      } else {
+        this.$router.push({ path: '/webLogin' });
+      }
+    },
+    // 申请对接会
+    apply(item) {
+      // this.$router.push({ path: '/live/liveApply', query: { id: item.id } });
+    },
+    // 查看成果
+    check(item) {
+      // this.$router.push({ path: '/hallList/zongjie', query: { id: item.id } });
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.productlist {
+  .list {
+    position: relative;
+    width: 32%;
+    height: 310px;
+    border: 1px solid #ccc;
+    margin: 0 15px 10px 0;
+    .other {
+      p:nth-child(1) {
+        padding: 0 10px;
+        font-size: 16px;
+        font-weight: bold;
+      }
+      p:nth-child(2) {
+        padding: 5px;
+        span:nth-child(2) {
+          float: right;
+        }
+      }
+      p:nth-child(3) {
+        position: absolute;
+        width: 100%;
+        bottom: 5px;
+        text-align: center;
+      }
+    }
+  }
+  .list:nth-child(3n) {
+    width: 33%;
+    margin: 0 0 10px 0;
+  }
+}
+</style>

+ 64 - 379
src/views/hallList/parts/personal.vue

@@ -1,175 +1,90 @@
 <template>
   <div id="personal">
     <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <el-col :span="24" class="top">
-            <p>人才招聘展会</p>
-            <p>主办方:吉林省计算中心</p>
-          </el-col>
-          <el-col :span="24" class="down">
-            <p v-for="(item, index) in numList" :key="index">
-              <span>{{ item.name }}</span>
-              <span>{{ item.num }}人</span>
-            </p>
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="two">
-          <el-col :span="12" class="left">
-            <el-col :span="24" class="top">
-              <span style="color:#409eff">人才视频</span>
-              <span>直播</span>
-            </el-col>
-            <el-col :span="24" class="down">
-              视频播放框
-            </el-col>
-          </el-col>
-          <el-col :span="12" class="right">
-            <el-col :span="24" class="top">
-              公共聊天
-            </el-col>
-            <el-col :span="24" class="down">
-              <el-col :span="24" class="list">
-                <el-col :span="24" class="chatList" v-for="(item, index) in chatList" :key="index">
-                  <el-col :span="2" class="image">
-                    <el-image :src="touxiang" style="width:30px;height:30px"></el-image>
-                  </el-col>
-                  <el-col :span="22" class="other">
-                    <el-col :span="24" class="otherone">
-                      <span>{{ item.name }}</span>
-                      <span>{{ item.date }}</span>
-                    </el-col>
-                    <el-col :span="24" class="othertwo">
-                      <p class="remark">{{ item.content }}</p>
-                    </el-col>
-                  </el-col>
-                </el-col>
-              </el-col>
-              <el-col :span="24" class="chat">
-                <el-col :span="21" class="input">
-                  <el-input v-model="text" placeholder="请输入聊天内容"></el-input>
-                </el-col>
-                <el-col :span="3" class="btn">
-                  <el-button type="primary" size="mini">发送</el-button>
-                </el-col>
-              </el-col>
-            </el-col>
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="three">
-          <el-image :src="per"></el-image>
-        </el-col>
-        <el-col :span="24" class="four">
-          <el-tabs type="border-card">
-            <el-tab-pane label="招聘信息">
-              <el-col :span="24" class="fourone">
-                <el-col :span="24" class="zpxxList" v-for="(item, index) in zpxxList" :key="index">
-                  <el-col :span="16" class="name textOver">
-                    {{ item.name }}
-                  </el-col>
-                  <el-col :span="4" class="type textOver"> 类型:{{ item.type }} </el-col>
-                  <el-col :span="4" class="date textOver">
-                    {{ item.date }}
-                  </el-col>
-                  <el-col :span="24" class="content">
-                    {{ item.content }}
-                  </el-col>
-                </el-col>
-              </el-col>
-            </el-tab-pane>
-            <el-tab-pane label="正式岗位">
-              <el-col :span="24" class="fourtwo">
-                <el-col :span="12" class="zsgwList" v-for="(item, index) in zsgwList" :key="index">
-                  <el-col :span="20" class="name textOver">
-                    {{ item.name }}
-                  </el-col>
-                  <el-col :span="4" class="date textOver">
-                    {{ item.date }}
-                  </el-col>
-                  <el-col :span="24" class="other">
-                    <span class="textOver">需求人数:{{ item.num }}</span>
-                    <span class="textOver" style="color:#ff0000;">薪资:{{ item.xz }}</span>
-                  </el-col>
-                  <el-col :span="24" class="other">
-                    <span class="textOver">福利待遇:{{ item.fldy }}</span>
-                    <span class="textOver">职位诱惑:{{ item.zwyh }}</span>
-                  </el-col>
-                </el-col>
-              </el-col>
-            </el-tab-pane>
-            <el-tab-pane label="实习岗位">
-              <el-col :span="24" class="fourthree">
-                <el-col :span="6" v-for="(item, index) in sxList" :key="index">
-                  <el-image :src="sx"></el-image>
-                  <el-col :span="24">
-                    {{ item.name }}
-                  </el-col>
-                </el-col>
-              </el-col>
-            </el-tab-pane>
-          </el-tabs>
-        </el-col>
+      <el-col :span="24" class="product">
+        <!-- 是否支持多开 accordion -->
+        <el-collapse v-model="activeName" accordion>
+          <el-collapse-item title="正在直播" name="1">
+            <personallist :list="listNow" :total="nowTotal" status="1" @query="searchList" :province="province" :place="place"></personallist>
+          </el-collapse-item>
+          <el-collapse-item title="下期预告" name="2">
+            <personallist :list="listPre" :total="preTotal" status="0" @query="searchList" :province="province" :place="place"></personallist>
+          </el-collapse-item>
+          <el-collapse-item title="往期直播" name="3">
+            <personallist :list="listPast" :total="pastTotal" status="2" @query="searchList" :province="province" :place="place"></personallist>
+          </el-collapse-item>
+        </el-collapse>
       </el-col>
     </el-row>
   </div>
 </template>
 
 <script>
+import _ from 'lodash';
+import personallist from './personallist.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: dock } = createNamespacedHelpers('dock');
 export default {
   name: 'personal',
-  props: {},
-  components: {},
+  props: {
+    // 省
+    province: { type: Array, default: () => [] },
+    // 市
+    place: { type: Array, default: () => [] },
+  },
+  components: {
+    personallist,
+  },
   data: function() {
     return {
-      numList: [
-        { name: '同时在线', num: 1000 },
-        { name: '特邀嘉宾', num: 1000 },
-        { name: '洽谈合作', num: 1000 },
-        { name: '达成意向', num: 1000 },
-        { name: '对接成功', num: 1000 },
-        { name: '参展职位', num: 1000 },
-      ],
-      // 聊天列表
-      chatList: [
-        { name: '顾红伟', date: '10:00', content: '信息内容' },
-        { name: '顾红伟', date: '10:00', content: '信息内容' },
-      ],
-      touxiang: require('@/assets/emotion/touxiang.png'),
-      // 发言内容
-      text: '',
-      per: require('@/assets/personal.jpg'),
-      // 招聘信息
-      zpxxList: [
+      activeName: '1',
+      // 下期预告
+      listPre: [
         {
-          name: '长春市福瑞科技有限公司',
-          date: '2020-10-16',
-          type: '全职',
-          content: '长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司',
+          end_time: '2020-10-23 00:00',
+          place: '220100',
+          province: '220000',
+          start_time: '2020-10-16 10:00',
+          status: '1',
+          title: '人才招聘会模板',
         },
       ],
-      // 正式岗位
-      zsgwList: [
+      preTotal: 0,
+      // 正在直播
+      listNow: [
         {
-          name: '应届管培生',
-          date: '2020-10-16',
-          xz: '3k-6k/月',
-          fldy: '五险一金',
-          num: '10',
-          zwyh: '扁平管理,节日礼物,岗前培训,岗位晋升',
+          end_time: '2020-10-23 00:00',
+          place: '220100',
+          province: '220000',
+          start_time: '2020-10-16 10:00',
+          status: '1',
+          title: '人才招聘会模板',
         },
       ],
-      // 实习岗位
-      sx: require('@/assets/sx.png'),
-      sxList: [
+      nowTotal: 0,
+      // 往期直播
+      listPast: [
         {
-          name: '前端开发工程师',
+          end_time: '2020-10-23 00:00',
+          place: '220100',
+          province: '220000',
+          start_time: '2020-10-16 10:00',
+          status: '1',
+          title: '人才招聘会模板',
         },
       ],
+      pastTotal: 0,
     };
   },
-  created() {},
-  methods: {},
+  async created() {
+    await this.searchList({ status: '0' });
+    await this.searchList({ status: '1' });
+    await this.searchList({ status: '2' });
+  },
+  methods: {
+    ...dock({ dockQuery: 'query' }),
+    async searchList({ skip = 0, limit = 10, status, ...info } = {}) {},
+  },
   computed: {
     ...mapState(['user']),
   },
@@ -180,237 +95,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-.main {
-  .one {
-    .top {
-      margin: 0 0 15px 0;
-      text-align: center;
-      p:nth-child(1) {
-        font-size: 40px;
-      }
-      p:nth-child(2) {
-        font-size: 18px;
-        padding: 15px 0;
-      }
-    }
-    .down {
-      margin: 0 0 15px 0;
-      p {
-        float: left;
-        width: 16%;
-        background: #cccccc5f;
-        color: #000;
-        height: 50px;
-        line-height: 50px;
-        border-radius: 30px;
-        margin: 0 7px 0 0;
-        span:first-child {
-          display: inline-block;
-          width: 56%;
-          text-align: center;
-          height: 50px;
-          line-height: 50px;
-          font-size: 16px;
-          background: #76bdfe;
-          border-radius: 30px;
-          color: #fff;
-          font-weight: 700;
-        }
-        span:last-child {
-          display: inline-block;
-          width: 42%;
-          text-align: center;
-          font-size: 15px;
-          font-weight: 700;
-        }
-      }
-    }
-  }
-  .two {
-    height: 450px;
-    margin: 0 0 15px 0;
-    .left {
-      height: 450px;
-      overflow: hidden;
-      border: 5px solid #000;
-      background: #fff;
-      border-radius: 5px;
-      padding: 10px;
-      .top {
-        height: 30px;
-        line-height: 30px;
-        font-weight: bold;
-        font-size: 20px;
-        margin: 0 0 5px 0;
-      }
-      .down {
-        height: 385px;
-        background-color: #000;
-        color: #fff;
-      }
-    }
-    .right {
-      height: 450px;
-      border-top-left-radius: 5px;
-      border-bottom-left-radius: 5px;
-      overflow: hidden;
-      background: #f0ffff5f;
-      border-bottom: 1px solid #f1f1f1;
-      .top {
-        height: 40px;
-        line-height: 40px;
-        padding: 0 10px;
-        font-weight: bold;
-        font-size: 18px;
-        color: #fff;
-        background-color: #409eff;
-      }
-      .down {
-        height: 410px;
-        overflow: hidden;
-        padding: 0 0 0 10px;
-        .list {
-          height: 370px;
-          overflow-y: auto;
-          .chatList {
-            padding: 10px 0;
-            border-bottom: 1px dashed #409eff;
-            .image {
-              text-align: center;
-            }
-            .other {
-              .otherone {
-                span:nth-child(1) {
-                  color: #000;
-                  font-size: 16px;
-                  font-weight: bold;
-                }
-                span:nth-child(2) {
-                  display: inline-block;
-                  margin: 0 0 0 15px;
-                  color: #ccc;
-                }
-              }
-              .othertwo {
-                margin: 5px 0 0 0;
-                color: #000;
-                .remark {
-                  min-height: 20px;
-                  font-size: 15px;
-                  padding: 5px;
-                  border-radius: 5px;
-                  background: #cccccc5f;
-                }
-              }
-            }
-          }
-        }
-        .chat {
-          height: 40px;
-          .input {
-            /deep/.el-input__inner {
-              height: 35px;
-              line-height: 35px;
-            }
-          }
-          .btn {
-            /deep/.el-button--mini,
-            .el-button--mini.is-round {
-              padding: 10px 15px;
-              width: 100%;
-            }
-          }
-        }
-      }
-    }
-  }
-  .three {
-    height: 120px;
-    margin: 10px 0 15px 0;
-    .el-image {
-      width: 100%;
-      height: 120px;
-      border: 1px solid #f1f1f1;
-      box-shadow: 0 0 10px #f1f1f1;
-    }
-  }
-  .four {
-    height: 500px;
-    overflow: hidden;
-    .el-tabs {
-      height: 497px;
-      overflow: hidden;
-    }
-    .fourone {
-      height: 430px;
-      overflow: hidden;
-      .zpxxList {
-        border-bottom: 1px dashed #ccc;
-        margin: 0 0 10px 0;
-        height: 100px;
-        .name {
-          font-size: 18px;
-          font-weight: bold;
-          padding: 0 0 5px 0;
-        }
-        .type {
-          font-size: 16px;
-          padding: 0 0 5px 0;
-          text-align: left;
-        }
-        .date {
-          font-size: 16px;
-          padding: 0 0 5px 0;
-          text-align: right;
-        }
-        .content {
-          font-size: 16px;
-          overflow: hidden;
-          text-overflow: ellipsis;
-          -webkit-line-clamp: 2;
-          word-break: break-all;
-          display: -webkit-box;
-          -webkit-box-orient: vertical;
-          margin: 10px 0 0 0;
-        }
-      }
-      .zpxxList:hover {
-        .name {
-          color: #409eff;
-        }
-      }
-    }
-    .fourtwo {
-      height: 430px;
-      overflow: hidden;
-      .zsgwList {
-        border: 1px solid #ccc;
-        padding: 10px;
-        margin: 0 0 5px 0;
-        height: 103px;
-        .name {
-          font-size: 18px;
-          font-weight: bold;
-        }
-        .date {
-          text-align: right;
-          font-size: 16px;
-        }
-        .other {
-          padding: 2px 0 1px 0;
-          font-size: 16px;
-          span {
-            display: inline-block;
-            width: 50%;
-          }
-        }
-      }
-      .zsgwList:hover {
-        .name {
-          color: #409eff;
-        }
-      }
-    }
-  }
+/deep/.el-collapse-item__content {
+  padding-bottom: 0;
 }
 </style>

+ 135 - 0
src/views/hallList/parts/personallist.vue

@@ -0,0 +1,135 @@
+<template>
+  <div id="personallist">
+    <el-row>
+      <el-col :span="24" class="productlist">
+        <el-col :span="8" class="list" v-for="(item, index) in list" :key="index">
+          <el-image :src="hall" style="width:100%;height:200px;"></el-image>
+          <el-col :span="24" class="other">
+            <p class="textOver">{{ item.title }}</p>
+            <p class="textOver">
+              <span><i class="el-icon-location-outline"></i>{{ getprovince(item.province) }}-{{ getplace(item.place) }}</span>
+              <span><i class="el-icon-time"></i>{{ item.start_time }}-{{ item.end_time }}</span>
+            </p>
+            <p>
+              <el-button type="warning" size="mini" @click="linkBtn(item)">进入对接会</el-button>
+              <!-- <el-button type="warning" size="mini" @click="dockBtn()" v-if="user.role == '3' || user.role == '7'">管理进入</el-button> -->
+              <!-- <el-button type="warning" size="mini" @click="linkBtn(item)" v-if="status == '1'">进入对接会</el-button> -->
+              <!-- <el-button type="warning" size="mini" @click="apply(item)" v-if="status == '0' && user.uid != undefined">申请对接会</el-button>
+              <el-button type="warning" size="mini" @click="check(item)" v-if="status == '2' && user.role == '3'">查看成果</el-button> -->
+            </p>
+          </el-col>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import page from '@/components/pagination.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: dock } = createNamespacedHelpers('dock');
+export default {
+  name: 'personallist',
+  props: {
+    list: { type: Array, default: () => [] },
+    status: { type: String, default: '0' }, // 省
+    province: { type: Array, default: () => [] },
+    // 市
+    place: { type: Array, default: () => [] },
+  },
+  components: {},
+  data: () => {
+    return {
+      hall: require('@a/personal1.jpg'),
+    };
+  },
+  created() {},
+  methods: {
+    ...dock({ livefetch: 'fetch', livelist: 'query', livecreate: 'create', liveupdate: 'update' }),
+    // 过滤省
+    getprovince(item) {
+      let res = this.province.find(i => i.code == item);
+      if (res) return res.name;
+    },
+    // 过滤市
+    getplace(item) {
+      let res = this.place.find(i => i.code == item);
+      if (res) return res.name;
+    },
+    // 管理进入
+    dockBtn() {
+      // if (this.user.uid) {
+      //   this.$router.push({ path: '/adminCenter/index', query: { num: '1' } });
+      // } else {
+      //   this.$router.push({ path: '/dockLogin' });
+      // }
+    },
+    // 进入对接会
+    async linkBtn(item) {
+      if (this.user.uid || this.user.suid) {
+        if (
+          this.user.role == '2' ||
+          this.user.role == '3' ||
+          this.user.role == '4' ||
+          this.user.role == '5' ||
+          this.user.role == '6' ||
+          this.user.role == '7' ||
+          this.user.role == '8'
+        ) {
+          this.$router.push({ path: '/personalhall/index', query: { id: item.id } });
+        } else {
+          this.$router.push({ path: '/webLogin' });
+        }
+      } else {
+        this.$router.push({ path: '/webLogin' });
+      }
+    },
+    // 申请对接会
+    apply(item) {
+      // this.$router.push({ path: '/live/liveApply', query: { id: item.id } });
+    },
+    // 查看成果
+    check(item) {
+      // this.$router.push({ path: '/hallList/zongjie', query: { id: item.id } });
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.productlist {
+  .list {
+    position: relative;
+    width: 32%;
+    height: 310px;
+    border: 1px solid #ccc;
+    margin: 0 15px 10px 0;
+    .other {
+      p:nth-child(1) {
+        padding: 0 10px;
+        font-size: 16px;
+        font-weight: bold;
+      }
+      p:nth-child(2) {
+        padding: 5px;
+        span:nth-child(2) {
+          float: right;
+        }
+      }
+      p:nth-child(3) {
+        position: absolute;
+        width: 100%;
+        bottom: 5px;
+        text-align: center;
+      }
+    }
+  }
+  .list:nth-child(3n) {
+    width: 33%;
+    margin: 0 0 10px 0;
+  }
+}
+</style>

+ 13 - 8
src/views/hallList/parts/product.vue

@@ -5,13 +5,13 @@
         <!-- 是否支持多开 accordion -->
         <el-collapse v-model="activeName" accordion>
           <el-collapse-item title="正在直播" name="1">
-            <productlist :list="listNow" :total="nowTotal" status="1" @query="searchList"></productlist>
+            <productlist :list="listNow" :total="nowTotal" status="1" @query="searchList" :province="province" :place="place"></productlist>
           </el-collapse-item>
           <el-collapse-item title="下期预告" name="2">
-            <productlist :list="listPre" :total="preTotal" status="0" @query="searchList"></productlist>
+            <productlist :list="listPre" :total="preTotal" status="0" @query="searchList" :province="province" :place="place"></productlist>
           </el-collapse-item>
           <el-collapse-item title="往期直播" name="3">
-            <productlist :list="listPast" :total="pastTotal" status="2" @query="searchList"></productlist>
+            <productlist :list="listPast" :total="pastTotal" status="2" @query="searchList" :province="province" :place="place"></productlist>
           </el-collapse-item>
         </el-collapse>
       </el-col>
@@ -26,7 +26,12 @@ import { mapState, createNamespacedHelpers } from 'vuex';
 const { mapActions: dock } = createNamespacedHelpers('dock');
 export default {
   name: 'product',
-  props: {},
+  props: {
+    // 省
+    province: { type: Array, default: () => [] },
+    // 市
+    place: { type: Array, default: () => [] },
+  },
   components: {
     productlist,
   },
@@ -44,10 +49,10 @@ export default {
       pastTotal: 0,
     };
   },
-  created() {
-    this.searchList({ status: '0' });
-    this.searchList({ status: '1' });
-    this.searchList({ status: '2' });
+  async created() {
+    await this.searchList({ status: '0' });
+    await this.searchList({ status: '1' });
+    await this.searchList({ status: '2' });
   },
   methods: {
     ...dock({ dockQuery: 'query' }),

+ 9 - 17
src/views/hallList/parts/productlist.vue

@@ -30,22 +30,22 @@ const { mapActions: dock } = createNamespacedHelpers('dock');
 const { mapActions: place } = createNamespacedHelpers('place');
 export default {
   name: 'list',
-  props: { list: { type: Array, default: () => [] }, status: { type: String, default: '0' } },
+  props: {
+    list: { type: Array, default: () => [] },
+    status: { type: String, default: '0' },
+    // 省
+    province: { type: Array, default: () => [] },
+    // 市
+    place: { type: Array, default: () => [] },
+  },
   components: {},
   data: () => {
     return {
       hall: require('@a/hall.jpg'),
-      // 省
-      province: [],
-      // 市
-      place: [],
     };
   },
-  created() {
-    this.searchplace();
-  },
+  created() {},
   methods: {
-    ...place({ palcequery: 'query', transactiondtetle: 'delete' }),
     ...dock({ livefetch: 'fetch', livelist: 'query', livecreate: 'create', liveupdate: 'update' }),
     // 过滤省
     getprovince(item) {
@@ -57,14 +57,6 @@ export default {
       let res = this.place.find(i => i.code == item);
       if (res) return res.name;
     },
-    async searchplace() {
-      let res = await this.palcequery({ level: 1 });
-      let arr = await this.palcequery({ level: 2 });
-      if (res || arr) {
-        this.$set(this, `province`, res.data);
-        this.$set(this, `place`, arr.data);
-      }
-    },
     // 管理进入
     dockBtn() {
       if (this.user.uid) {

+ 20 - 2
src/views/market/detail/techDetail.vue

@@ -179,7 +179,7 @@ export default {
       dialogTableVisible: false,
       room: {},
       achievezb: require('@/assets/3.png'),
-      value: 2,
+      value: 1,
       max: 3,
       colors: ['#ff0000', '#ff0000', '#ff0000'],
       texts: ['一般', '紧急', '长期'],
@@ -213,7 +213,6 @@ export default {
           obj.seller_id = this.detailInfo.userid;
           obj.seller_name = this.detailInfo.contacts;
         }
-        console.log(obj);
         let res = await this.create(obj);
         if (this.$checkRes(res)) {
           this.$set(this, `room`, res.data);
@@ -225,6 +224,22 @@ export default {
     onSubmit() {
       this.$emit('onSubmit', { data: this.detailInfo });
     },
+    searchrate() {
+      let data = this.detailInfo;
+      if (data.degreeurgency == '一般') this.$set(this, `value`, 1);
+      else if (data.degreeurgency == '特急') this.$set(this, `value`, 2);
+      else if (data.degreeurgency == '特急') this.$set(this, `value`, 1);
+      else this.$set(this, `value`, 0);
+    },
+  },
+  watch: {
+    detailInfo: {
+      immediate: true,
+      deep: true,
+      handler(val) {
+        this.searchrate();
+      },
+    },
   },
   computed: {
     ...mapState(['user']),
@@ -364,4 +379,7 @@ export default {
     // }
   }
 }
+/deep/.el-rate__icon {
+  font-size: 60px;
+}
 </style>

+ 11 - 6
src/views/market/index.vue

@@ -713,14 +713,16 @@ export default {
   margin: 0 auto;
 }
 .top {
-  margin: 15px 0;
-  height: 530px;
+  padding: 15px 0;
+  height: 560px;
   overflow: hidden;
+  background-image: linear-gradient(#ffffff, #a3d5f6);
   .left {
-    background: #f5f5f5;
+    background: #ffffff;
     padding: 15px;
     border-radius: 20px;
-    margin: 0 15px 0 0;
+    margin: 0 24px 0 0;
+    box-shadow: 0 0 5px #409eff;
     .leftTop {
       height: 50px;
       .txt {
@@ -837,9 +839,10 @@ export default {
   }
   .right {
     width: 48%;
-    background: #f5f5f5;
+    background: #ffffff;
     border-radius: 20px;
     padding: 15px;
+    box-shadow: 0 0 5px #409eff;
     .rightTop {
       height: 50px;
       .txt {
@@ -881,6 +884,7 @@ export default {
         border-bottom: 1px dashed #ccc;
         .name {
           font-size: 18px;
+          font-weight: bold;
         }
         .date {
           text-align: center;
@@ -915,7 +919,7 @@ export default {
   .left {
     border-radius: 20px;
     padding: 15px;
-    margin: 0 15px 0 0;
+    margin: 0 24px 0 0;
     background: #e9ecf2;
     box-shadow: 0 0 5px #409eff;
     overflow: hidden;
@@ -1054,6 +1058,7 @@ export default {
           .name {
             font-size: 18px;
             padding: 7px 0 0 0;
+            // font-weight: bold;
           }
           .school {
             font-size: 16px;

+ 476 - 0
src/views/personalhall/index.vue

@@ -0,0 +1,476 @@
+<template>
+  <div id="index">
+    <el-row>
+      <el-col :span="24" class="main">
+        <div class="w_1200">
+          <el-col :span="24" class="one">
+            <el-col :span="24" class="top">
+              <p>人才招聘展会模板</p>
+              <p>主办方:吉林省计算中心</p>
+            </el-col>
+            <el-col :span="24" class="down">
+              <p v-for="(item, index) in numList" :key="index">
+                <span>{{ item.name }}</span>
+                <span>{{ item.num }}人</span>
+              </p>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="two">
+            <el-col :span="12" class="left">
+              <el-col :span="24" class="top">
+                <span style="color:#409eff">人才视频</span>
+                <span>直播</span>
+              </el-col>
+              <el-col :span="24" class="down">
+                视频播放框
+              </el-col>
+            </el-col>
+            <el-col :span="12" class="right">
+              <el-col :span="24" class="top">
+                公共聊天
+              </el-col>
+              <el-col :span="24" class="down">
+                <el-col :span="24" class="list">
+                  <el-col :span="24" class="chatList" v-for="(item, index) in chatList" :key="index">
+                    <el-col :span="2" class="image">
+                      <el-image :src="touxiang" style="width:30px;height:30px"></el-image>
+                    </el-col>
+                    <el-col :span="22" class="other">
+                      <el-col :span="24" class="otherone">
+                        <span>{{ item.name }}</span>
+                        <span>{{ item.date }}</span>
+                      </el-col>
+                      <el-col :span="24" class="othertwo">
+                        <p class="remark">{{ item.content }}</p>
+                      </el-col>
+                    </el-col>
+                  </el-col>
+                </el-col>
+                <el-col :span="24" class="chat">
+                  <el-col :span="21" class="input">
+                    <el-input v-model="text" placeholder="请输入聊天内容"></el-input>
+                  </el-col>
+                  <el-col :span="3" class="btn">
+                    <el-button type="primary" size="mini">发送</el-button>
+                  </el-col>
+                </el-col>
+              </el-col>
+            </el-col>
+          </el-col>
+          <el-col :span="24" class="three">
+            <el-image :src="per"></el-image>
+          </el-col>
+          <el-col :span="24" class="four">
+            <el-tabs type="border-card">
+              <el-tab-pane label="招聘信息">
+                <el-col :span="24" class="fourone">
+                  <el-col :span="24" class="zpxxList" v-for="(item, index) in zpxxList" :key="index">
+                    <el-col :span="16" class="name textOver">
+                      {{ item.name }}
+                    </el-col>
+                    <el-col :span="4" class="type textOver"> 类型:{{ item.type }} </el-col>
+                    <el-col :span="4" class="date textOver">
+                      {{ item.date }}
+                    </el-col>
+                    <el-col :span="24" class="content">
+                      {{ item.content }}
+                    </el-col>
+                  </el-col>
+                </el-col>
+              </el-tab-pane>
+              <el-tab-pane label="正式岗位">
+                <el-col :span="24" class="fourtwo">
+                  <el-col :span="12" class="zsgwList" v-for="(item, index) in zsgwList" :key="index">
+                    <el-col :span="20" class="name textOver">
+                      {{ item.name }}
+                    </el-col>
+                    <el-col :span="4" class="date textOver">
+                      {{ item.date }}
+                    </el-col>
+                    <el-col :span="24" class="other">
+                      <span class="textOver">需求人数:{{ item.num }}</span>
+                      <span class="textOver" style="color:#ff0000;">薪资:{{ item.xz }}</span>
+                    </el-col>
+                    <el-col :span="24" class="other">
+                      <span class="textOver">福利待遇:{{ item.fldy }}</span>
+                      <span class="textOver">职位诱惑:{{ item.zwyh }}</span>
+                    </el-col>
+                  </el-col>
+                </el-col>
+              </el-tab-pane>
+              <el-tab-pane label="实习岗位">
+                <el-col :span="24" class="fourthree">
+                  <el-col :span="6" class="sxList" v-for="(item, index) in sxList" :key="index">
+                    <el-image :src="sx" class="image"></el-image>
+                    <el-col :span="24" class="name textOver">
+                      {{ item.name }}
+                    </el-col>
+                    <el-col :span="24" class="other">
+                      <span class="textOver"><i class="el-icon-coin"></i>{{ item.xz }}</span>
+                      <span class="textOver"><i class="el-icon-location"></i>{{ item.address }}</span>
+                    </el-col>
+                    <el-col :span="24" class="fldy textOver">
+                      <span>福利待遇:{{ item.fldy }}</span>
+                    </el-col>
+                  </el-col>
+                </el-col>
+              </el-tab-pane>
+            </el-tabs>
+          </el-col>
+        </div>
+        <div class="pz_down">
+          <live-foot></live-foot>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import liveFoot from '@/layout/live/foot.vue';
+import { zpxx } from './js/zpxxList.js';
+import { zsgw } from './js/zsgwList.js';
+import { sx } from './js/sxList.js';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {
+    liveFoot,
+  },
+  data: function() {
+    return {
+      numList: [
+        { name: '同时在线', num: 1000 },
+        { name: '特邀嘉宾', num: 1000 },
+        { name: '洽谈合作', num: 1000 },
+        { name: '达成意向', num: 1000 },
+        { name: '对接成功', num: 1000 },
+        { name: '参展职位', num: 1000 },
+      ],
+      // 聊天列表
+      chatList: [
+        { name: '顾红伟', date: '10:00', content: '信息内容' },
+        { name: '顾红伟', date: '10:00', content: '信息内容' },
+      ],
+      touxiang: require('@/assets/emotion/touxiang.png'),
+      // 发言内容
+      text: '',
+      per: require('@/assets/personal.jpg'),
+      // 招聘信息
+      zpxxList: zpxx,
+      // 正式岗位
+      zsgwList: zsgw,
+      // 实习岗位
+      sx: require('@/assets/sx.png'),
+      sxList: sx,
+    };
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  background: url('~@/assets/bg1.jpg');
+  background-repeat: no-repeat;
+  background-size: 100%;
+  .one {
+    .top {
+      margin: 50px 0;
+      text-align: center;
+      p:nth-child(1) {
+        font-size: 70px;
+        font-family: cursive;
+        transform: scale(0.8);
+        font-weight: bolder;
+        -webkit-text-stroke: 1px #fff;
+        -webkit-text-fill-color: #191970;
+        letter-spacing: 3px;
+      }
+      p:nth-child(2) {
+        font-size: 30px;
+        padding: 20px 0;
+        font-family: cursive;
+        color: #fff;
+      }
+    }
+    .down {
+      margin: 0 0 15px 0;
+      p {
+        float: left;
+        width: 16%;
+        background: #ffffff5f;
+        color: #000;
+        height: 50px;
+        line-height: 50px;
+        border-radius: 30px;
+        margin: 0 7px 0 0;
+        span:first-child {
+          display: inline-block;
+          width: 56%;
+          text-align: center;
+          height: 50px;
+          line-height: 50px;
+          font-size: 16px;
+          background: #76bdfe;
+          border-radius: 30px;
+          color: #fff;
+          font-weight: 700;
+        }
+        span:last-child {
+          display: inline-block;
+          width: 42%;
+          text-align: center;
+          font-size: 15px;
+          font-weight: 700;
+        }
+      }
+    }
+  }
+  .two {
+    height: 450px;
+    margin: 0 0 15px 0;
+    .left {
+      height: 450px;
+      overflow: hidden;
+      border: 5px solid #000;
+      background: #fff;
+      border-radius: 5px;
+      padding: 10px;
+      margin: 0 15px 0 0;
+      .top {
+        height: 30px;
+        line-height: 30px;
+        font-weight: bold;
+        font-size: 20px;
+        margin: 0 0 5px 0;
+      }
+      .down {
+        height: 385px;
+        background-color: #000;
+        color: #fff;
+      }
+    }
+    .right {
+      width: 48%;
+      height: 450px;
+      overflow: hidden;
+      background: #f0ffff5f;
+      box-shadow: 0 0 5px #409eff;
+      border-radius: 5px;
+      .top {
+        height: 40px;
+        line-height: 40px;
+        padding: 0 10px;
+        font-weight: bold;
+        font-size: 18px;
+        color: #fff;
+        background-color: #409eff;
+      }
+      .down {
+        height: 410px;
+        overflow: hidden;
+        padding: 0 0 0 10px;
+        .list {
+          height: 370px;
+          overflow-y: auto;
+          .chatList {
+            padding: 10px 0;
+            border-bottom: 1px dashed #409eff;
+            .image {
+              text-align: center;
+            }
+            .other {
+              .otherone {
+                span:nth-child(1) {
+                  color: #000;
+                  font-size: 16px;
+                  font-weight: bold;
+                }
+                span:nth-child(2) {
+                  display: inline-block;
+                  margin: 0 0 0 15px;
+                  color: #ccc;
+                }
+              }
+              .othertwo {
+                margin: 5px 0 0 0;
+                color: #000;
+                .remark {
+                  min-height: 20px;
+                  font-size: 15px;
+                  padding: 5px;
+                  border-radius: 5px;
+                  background: #cccccc5f;
+                }
+              }
+            }
+          }
+        }
+        .chat {
+          height: 40px;
+          .input {
+            /deep/.el-input__inner {
+              height: 35px;
+              line-height: 35px;
+            }
+          }
+          .btn {
+            /deep/.el-button--mini,
+            .el-button--mini.is-round {
+              padding: 10px 15px;
+              width: 100%;
+            }
+          }
+        }
+      }
+    }
+  }
+  .three {
+    height: 120px;
+    margin: 10px 0 15px 0;
+    .el-image {
+      width: 100%;
+      height: 120px;
+      border: 1px solid #f1f1f1;
+      box-shadow: 0 0 10px #f1f1f1;
+    }
+  }
+  .four {
+    height: 494px;
+    overflow: hidden;
+    .el-tabs {
+      height: 480px;
+      overflow: hidden;
+    }
+    .el-tabs--border-card {
+      background-color: #ffffff9f;
+    }
+    .fourone {
+      height: 430px;
+      overflow: hidden;
+      .zpxxList {
+        border-bottom: 1px dashed #ccc;
+        margin: 0 0 10px 0;
+        height: 100px;
+        .name {
+          font-size: 18px;
+          font-weight: bold;
+          padding: 0 0 5px 0;
+        }
+        .type {
+          font-size: 16px;
+          padding: 0 0 5px 0;
+          text-align: left;
+        }
+        .date {
+          font-size: 16px;
+          padding: 0 0 5px 0;
+          text-align: right;
+        }
+        .content {
+          font-size: 16px;
+          overflow: hidden;
+          text-overflow: ellipsis;
+          -webkit-line-clamp: 2;
+          word-break: break-all;
+          display: -webkit-box;
+          -webkit-box-orient: vertical;
+          margin: 10px 0 0 0;
+        }
+      }
+      .zpxxList:hover {
+        cursor: pointer;
+        .name {
+          color: #409eff;
+        }
+      }
+    }
+    .fourtwo {
+      height: 430px;
+      overflow: hidden;
+      .zsgwList {
+        border: 1px solid #ccc;
+        padding: 10px;
+        margin: 0 0 5px 0;
+        height: 100px;
+        .name {
+          font-size: 18px;
+          font-weight: bold;
+        }
+        .date {
+          text-align: right;
+          font-size: 16px;
+        }
+        .other {
+          padding: 2px 0 1px 0;
+          font-size: 16px;
+          span {
+            display: inline-block;
+            width: 50%;
+          }
+        }
+      }
+      .zsgwList:hover {
+        cursor: pointer;
+        .name {
+          color: #409eff;
+        }
+      }
+    }
+    .fourthree {
+      .sxList {
+        padding: 15px;
+        margin: 0 15px 10px 0;
+        height: 205px;
+        width: 24%;
+        border-radius: 10px;
+        box-shadow: 0 0px 5px #3333334f;
+        .image {
+          height: 100px;
+          padding: 0 60px;
+        }
+        .name {
+          font-size: 18px;
+          text-align: center;
+          font-weight: bold;
+          padding: 5px 0 0 0;
+        }
+        .other {
+          font-size: 16px;
+          text-align: center;
+          padding: 5px 0;
+          span {
+            display: inline-block;
+            margin: 0 10px;
+          }
+          span:nth-child(1) {
+            color: #ff0000;
+          }
+        }
+        .fldy {
+          font-size: 16px;
+          text-align: center;
+        }
+      }
+      .sxList:nth-child(4n) {
+        margin: 0 0 10px 0;
+      }
+      .sxList:hover {
+        cursor: pointer;
+        .name {
+          color: #409eff;
+        }
+      }
+    }
+  }
+}
+</style>

+ 50 - 0
src/views/personalhall/js/sxList.js

@@ -0,0 +1,50 @@
+export const sx = [
+  {
+    name: '前端开发工程师',
+    xz: '3k-6k/月',
+    address: '长春市',
+    fldy: '五险一金',
+  },
+  {
+    name: '前端开发工程师',
+    xz: '3k-6k/月',
+    address: '长春市',
+    fldy: '五险一金',
+  },
+  {
+    name: '前端开发工程师',
+    xz: '3k-6k/月',
+    address: '长春市',
+    fldy: '五险一金',
+  },
+  {
+    name: '前端开发工程师',
+    xz: '3k-6k/月',
+    address: '长春市',
+    fldy: '五险一金',
+  },
+  {
+    name: '前端开发工程师',
+    xz: '3k-6k/月',
+    address: '长春市',
+    fldy: '五险一金',
+  },
+  {
+    name: '前端开发工程师',
+    xz: '3k-6k/月',
+    address: '长春市',
+    fldy: '五险一金',
+  },
+  {
+    name: '前端开发工程师',
+    xz: '3k-6k/月',
+    address: '长春市',
+    fldy: '五险一金',
+  },
+  {
+    name: '前端开发工程师',
+    xz: '3k-6k/月',
+    address: '长春市',
+    fldy: '五险一金',
+  },
+];

+ 26 - 0
src/views/personalhall/js/zpxxList.js

@@ -0,0 +1,26 @@
+export const zpxx = [
+  {
+    name: '长春市福瑞科技有限公司',
+    date: '2020-10-16',
+    type: '全职',
+    content: '长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司',
+  },
+  {
+    name: '长春市福瑞科技有限公司',
+    date: '2020-10-16',
+    type: '全职',
+    content: '长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司',
+  },
+  {
+    name: '长春市福瑞科技有限公司',
+    date: '2020-10-16',
+    type: '全职',
+    content: '长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司',
+  },
+  {
+    name: '长春市福瑞科技有限公司',
+    date: '2020-10-16',
+    type: '全职',
+    content: '长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司长春市福瑞科技有限公司',
+  },
+];

+ 66 - 0
src/views/personalhall/js/zsgwList.js

@@ -0,0 +1,66 @@
+export const zsgw = [
+  {
+    name: '应届管培生',
+    date: '2020-10-16',
+    xz: '3k-6k/月',
+    fldy: '五险一金',
+    num: '10',
+    zwyh: '扁平管理,节日礼物,岗前培训,岗位晋升',
+  },
+  {
+    name: '应届管培生',
+    date: '2020-10-16',
+    xz: '3k-6k/月',
+    fldy: '五险一金',
+    num: '10',
+    zwyh: '扁平管理,节日礼物,岗前培训,岗位晋升',
+  },
+  {
+    name: '应届管培生',
+    date: '2020-10-16',
+    xz: '3k-6k/月',
+    fldy: '五险一金',
+    num: '10',
+    zwyh: '扁平管理,节日礼物,岗前培训,岗位晋升',
+  },
+  {
+    name: '应届管培生',
+    date: '2020-10-16',
+    xz: '3k-6k/月',
+    fldy: '五险一金',
+    num: '10',
+    zwyh: '扁平管理,节日礼物,岗前培训,岗位晋升',
+  },
+  {
+    name: '应届管培生',
+    date: '2020-10-16',
+    xz: '3k-6k/月',
+    fldy: '五险一金',
+    num: '10',
+    zwyh: '扁平管理,节日礼物,岗前培训,岗位晋升',
+  },
+  {
+    name: '应届管培生',
+    date: '2020-10-16',
+    xz: '3k-6k/月',
+    fldy: '五险一金',
+    num: '10',
+    zwyh: '扁平管理,节日礼物,岗前培训,岗位晋升',
+  },
+  {
+    name: '应届管培生',
+    date: '2020-10-16',
+    xz: '3k-6k/月',
+    fldy: '五险一金',
+    num: '10',
+    zwyh: '扁平管理,节日礼物,岗前培训,岗位晋升',
+  },
+  {
+    name: '应届管培生',
+    date: '2020-10-16',
+    xz: '3k-6k/月',
+    fldy: '五险一金',
+    num: '10',
+    zwyh: '扁平管理,节日礼物,岗前培训,岗位晋升',
+  },
+];

+ 2 - 2
src/views/superAdminCenter/adminUser/index.vue

@@ -80,7 +80,7 @@ export default {
     ...users(['query', 'fetch', 'create', 'update', 'delete']),
     ...authUser({ authUserDelete: 'delete', getAdminUser: 'query' }),
     async search({ skip = 0, limit = 10, ...info } = {}) {
-      const res = await this.query({ skip, limit, pid: this.user.uid, ...info });
+      const res = await this.getAdminUser({ skip, limit, pid: this.user.uid, isdel: '0', ...info });
       if (this.$checkRes(res)) {
         this.$set(this, `list`, res.data);
         this.$set(this, `total`, res.total);
@@ -114,8 +114,8 @@ export default {
       }
     },
     async toDelete({ data }) {
-      const res = await this.delete(data.id);
       const arr = await this.authUserDelete(data.id);
+      const res = await this.delete(data.uid);
       if (this.$checkRes(arr, '删除成功', res.errmsg || '删除失败')) this.search();
     },
     handleClose() {

+ 6 - 8
src/views/superAdminCenter/user/index.vue

@@ -253,17 +253,17 @@ export default {
       if (this.user.code == 'JLCJGLY') {
         const res = await this.userquery({ skip, ...info });
         if (this.$checkRes(res)) {
-          let one = res.data.filter(i => i.status == '0');
+          let one = res.data.filter(i => i.status == '0' && i.isdel == '0');
           if (one) {
             this.$set(this, `oneList`, one);
             this.$set(this, `onetotal`, one.length);
           }
-          let two = res.data.filter(i => i.status == '1');
+          let two = res.data.filter(i => i.status == '1' && i.isdel == '0');
           if (two) {
             this.$set(this, `twototal`, two.length);
             this.$set(this, `twoList`, two);
           }
-          let three = res.data.filter(i => i.status == '2');
+          let three = res.data.filter(i => i.status == '2' && i.isdel == '0');
           if (three) {
             this.$set(this, `threeList`, three);
             this.$set(this, `threetotal`, three.length);
@@ -272,18 +272,17 @@ export default {
       } else {
         const res = await this.userquery({ skip, pid, code: this.user.code, ...info });
         if (this.$checkRes(res)) {
-          let one = res.data.filter(i => i.status == '0');
+          let one = res.data.filter(i => i.status == '0' && i.isdel == '0');
           if (one) {
             this.$set(this, `oneList`, one);
             this.$set(this, `onetotal`, one.length);
           }
-          let two = res.data.filter(i => i.status == '1');
+          let two = res.data.filter(i => i.status == '1' && i.isdel == '0');
           if (two) {
-            console.log(two);
             this.$set(this, `twototal`, two.length);
             this.$set(this, `twoList`, two);
           }
-          let three = res.data.filter(i => i.status == '2');
+          let three = res.data.filter(i => i.status == '2' && i.isdel == '0');
           if (three) {
             this.$set(this, `threeList`, three);
             this.$set(this, `threetotal`, three.length);
@@ -340,7 +339,6 @@ export default {
         type: 'warning',
       })
         .then(async () => {
-          console.log(data);
           if (data.role == '4' || data.role == '5') {
             let res = await this.delete(data.uid);
             if (this.$checkRes(res)) {

+ 1 - 1
src/views/userCenter/basicInfo/index.vue

@@ -608,7 +608,7 @@ export default {
   /deep/.el-radio-group {
     border: 1px solid #ccc;
     padding: 12px 20px;
-    width: 943px;
+    // width: 943px;
   }
   /deep/.el-input__inner {
     border-radius: 0;