Browse Source

修改查询

lrf402788946 5 năm trước cách đây
mục cha
commit
d96d09ee2a

+ 1 - 1
src/layout/layout-part/menus.vue

@@ -102,7 +102,7 @@ export default {
       window.open(url);
     },
     initJobs() {
-      if (this.$site !== 'master') this.$set(this, `jobs`, masterMenu);
+      if (this.$site === 'master') this.$set(this, `jobs`, masterMenu);
       else this.$set(this, `jobs`, jobMenu);
     },
   },

+ 49 - 8
src/store.js

@@ -87,8 +87,19 @@ export default new Vuex.Store({
       let { skip, limit } = data;
       if (type === 'list') {
         data = this.$toUndefined(data);
-        let { schid, date } = data;
-        result = await this.$axios.$get(api.fairs, {}, { schid: schid, skip: skip, limit: limit, date: date, status: '1' });
+        let { schid, date, ...searchInfo } = data;
+        result = await this.$axios.$get(
+          api.fairs,
+          {},
+          {
+            schid: schid,
+            skip: skip,
+            limit: limit,
+            date: date,
+            status: '1',
+            ...searchInfo,
+          }
+        );
       }
       if (type === 'search') {
         let { id } = data;
@@ -125,8 +136,19 @@ export default new Vuex.Store({
       let result;
       if (type === 'list') {
         data = this.$toUndefined(data);
-        let { schid, corpname, is_practice } = data;
-        result = await this.$axios.$get(api.infos, {}, { corpname: corpname, schid: schid, is_practice: is_practice, skip: skip, limit: limit, status: 1 });
+        let { schid, is_practice, ...searchInfo } = data;
+        result = await this.$axios.$get(
+          api.infos,
+          {},
+          {
+            schid: schid,
+            is_practice: is_practice,
+            skip: skip,
+            limit: limit,
+            status: 1,
+            ...searchInfo,
+          }
+        );
       }
       if (type === 'search') {
         let { id } = data;
@@ -140,8 +162,19 @@ export default new Vuex.Store({
       let { skip, limit } = data;
       if (type === 'list') {
         data = this.$toUndefined(data);
-        let { schid, corpname, date } = data;
-        result = await this.$axios.$get(api.talks, {}, { corpname: corpname, schid: schid, date: date, skip: skip, limit: limit, status: 1 });
+        let { schid, date, ...searchInfo } = data;
+        result = await this.$axios.$get(
+          api.talks,
+          {},
+          {
+            schid: schid,
+            date: date,
+            skip: skip,
+            limit: limit,
+            status: 1,
+            ...searchInfo,
+          }
+        );
       }
       if (type === 'search') {
         let { id } = data;
@@ -155,11 +188,19 @@ export default new Vuex.Store({
       let result;
       if (type === 'list') {
         data = this.$toUndefined(data);
-        let { schid, corpname, is_practice, corpid, is_publish } = data;
+        let { schid, is_practice, corpid, is_publish, ...searchInfo } = data;
         result = await this.$axios.$get(
           `${api.posts}`,
           {},
-          { schid: schid, corpid: corpid, corpname: corpname, is_practice: is_practice, skip: skip, limit: limit, is_publish: is_publish }
+          {
+            schid: schid,
+            corpid: corpid,
+            is_practice: is_practice,
+            skip: skip,
+            limit: limit,
+            is_publish: is_publish,
+            ...searchInfo,
+          }
         );
       }
       if (type === 'search') {

+ 1 - 4
src/views/info/detail.vue

@@ -51,10 +51,7 @@ export default {
   data: () => ({
     info: {},
     loading: true,
-    menuList: [
-      { index: '1', name: '学校简介' },
-      { index: '2', name: '学校概括' },
-    ],
+    menuList: [{ index: '1', name: '学校简介' }, { index: '2', name: '学校概括' }],
   }),
   created() {
     this.search();

+ 56 - 29
src/views/jobfair/list.vue

@@ -15,39 +15,50 @@
           </el-breadcrumb>
         </el-col>
       </el-col>
-      <!-- <el-col :span="24" class="search">
-        <el-col :span="12">
-          <el-input size="mini" placeholder="请输入企业名称" v-model="searchInfo.corpname" @keyup.enter.native="search()">
+      <el-col :span="24">
+        <el-col :span="12" class="filter-box search">
+          <el-input size="mini" placeholder="请输入查询内容" v-model="searchInfo.value" @keyup.enter.native="search()">
+            <el-select slot="prepend" size="mini" placeholder="请选择" width="110" v-model="searchInfo.name">
+              <el-option v-for="(item, index) in filter" :label="item.label" :value="item.name" :key="'filter' + index"></el-option>
+            </el-select>
             <el-button slot="append" icon="el-icon-search" @click="search()"></el-button>
           </el-input>
         </el-col>
         <el-col :span="12">
           &nbsp;
         </el-col>
-      </el-col> -->
-      <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
-        <el-col :span="24">
-          <el-col :span="20" class="title">
-            <el-link :underline="false" @click="$router.push({ path: '/jobfair/detail', query: { id: item.id } })">{{ item.title }}</el-link>
-          </el-col>
-          <el-col :span="4" class="time">
-            {{ item.time }}
-          </el-col>
-        </el-col>
-        <el-col :span="24">
-          <el-col :span="18" class="common schname">
-            <i class="el-icon-school"></i>
-            主办学校:<span>{{ item.organizer }}</span>
-          </el-col>
-          <el-col :span="6" class="time">
-            报名截止日期:<span>{{ item.end_date }}</span>
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="common address">
-          <i class="el-icon-location"></i>
-          举办地址:<span>{{ item.address }}</span>
-        </el-col>
       </el-col>
+      <span v-if="!loading">
+        <span v-if="list.length > 0">
+          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
+            <el-col :span="24">
+              <el-col :span="20" class="title">
+                <el-link :underline="false" @click="$router.push({ path: '/jobfair/detail', query: { id: item.id } })">{{ item.title }}</el-link>
+              </el-col>
+              <el-col :span="4" class="time">
+                {{ item.time }}
+              </el-col>
+            </el-col>
+            <el-col :span="24">
+              <el-col :span="18" class="common schname">
+                <i class="el-icon-school"></i>
+                主办学校:<span>{{ item.organizer }}</span>
+              </el-col>
+              <el-col :span="6" class="time">
+                报名截止日期:<span>{{ item.end_date }}</span>
+              </el-col>
+            </el-col>
+            <el-col :span="24" class="common address">
+              <i class="el-icon-location"></i>
+              举办地址:<span>{{ item.address }}</span>
+            </el-col>
+          </el-col>
+        </span>
+        <span v-else>
+          <no-list></no-list>
+        </span>
+      </span>
+      <el-col :span="24" class="list" style="padding-top:50px" v-else v-loading="loading"></el-col>
       <el-col :span="24" class="page">
         <el-pagination @current-change="search" :current-page="currentPage" :page-size="$limit" layout="total, prev, pager, next, jumper" :total="totalRow">
         </el-pagination>
@@ -57,18 +68,23 @@
 </template>
 
 <script>
+import noList from '@publics/src/layout/noList.vue';
 import { mapActions, mapState } from 'vuex';
 import _ from 'lodash';
 export default {
   name: 'JobfairIndex',
   props: {},
-  components: {},
+  components: {
+    noList,
+  },
   data: () => ({
     searchInfo: {},
     squareUrl: '',
     currentPage: 1,
     list: [],
     totalRow: 0,
+    filter: [{ label: '城市', name: 'city' }, { label: '地址', name: 'address' }],
+    loading: false,
   }),
   created() {
     this.search();
@@ -85,11 +101,15 @@ export default {
   methods: {
     ...mapActions(['jobfairOperation']),
     async search(page) {
+      this.loading = true;
       let skip = 0;
       if (page && _.isNumber(page)) {
         skip = (page - 1) * this.$limit;
       }
-      let newData = { skip: skip, limit: this.$limit, ...this.searchInfo };
+      let { name, value, ...others } = JSON.parse(JSON.stringify(this.searchInfo));
+      let searchInfo = { ...others };
+      if (name && value && value !== '') searchInfo[name] = `${value}`;
+      let newData = { skip: skip, limit: this.$limit, ...searchInfo };
       this.type === 'in' ? (newData['schid'] = this.$site) : '';
       let result = await this.jobfairOperation({ type: 'list', data: newData });
       if (`${result.errcode}` === '0') {
@@ -99,6 +119,7 @@ export default {
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
+      this.loading = false;
     },
   },
 };
@@ -111,7 +132,7 @@ export default {
 .search {
   margin: 15px 0;
 }
-/deep/.search .el-input__inner {
+/deep/.search {
   border: 2px solid #850000;
   border-radius: 0;
 }
@@ -143,4 +164,10 @@ export default {
   margin: 10px 0;
   text-align: right;
 }
+.filter-box {
+  display: inline-block;
+  .el-select {
+    width: 100px;
+  }
+}
 </style>

+ 67 - 38
src/views/jobinfo/list.vue

@@ -12,46 +12,59 @@
           </el-breadcrumb>
         </el-col>
       </el-col>
-      <el-col :span="24" class="search">
-        <el-col :span="12">
-          <el-col :span="6">
-            <el-select size="mini" v-model="searchInfo.is_practice" placeholder="选择招聘类型" @change="search()">
-              <el-option label="全部类型" :value="undefined"></el-option>
-              <el-option label="全职" :value="0"></el-option>
-              <el-option label="实习" :value="1"></el-option>
-            </el-select>
-          </el-col>
-          <el-col :span="18">
-            <el-input size="mini" placeholder="请输入企业名称" v-model="searchInfo.corpname" @keyup.enter.native="search()">
-              <el-button slot="append" icon="el-icon-search" @click="search()"></el-button>
-            </el-input>
-          </el-col>
+      <el-col :span="24">
+        <el-col :span="14" class="filter-box search">
+          <el-row>
+            <el-col :span="5">
+              <el-select size="mini" v-model="searchInfo.is_practice" placeholder="选择招聘类型">
+                <el-option label="全部类型" :value="undefined"></el-option>
+                <el-option label="全职" :value="0"></el-option>
+                <el-option label="实习" :value="1"></el-option>
+              </el-select>
+            </el-col>
+            <el-col :span="19">
+              <el-input size="mini" placeholder="请输入查询内容" v-model="searchInfo.value" @keyup.enter.native="search()">
+                <el-select slot="prepend" size="mini" placeholder="请选择" width="110" v-model="searchInfo.name">
+                  <el-option v-for="(item, index) in filter" :label="item.label" :value="item.name" :key="'filter' + index"></el-option>
+                </el-select>
+                <el-button slot="append" icon="el-icon-search" @click="search()"></el-button>
+              </el-input>
+            </el-col>
+          </el-row>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="10">
           &nbsp;
         </el-col>
       </el-col>
-      <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
-        <el-col :span="24">
-          <el-col :span="20" class="title">
-            <el-link :underline="false" @click="$router.push({ path: '/jobinfo/detail', query: { id: item.id } })">{{ item.title }}</el-link>
+      <span v-if="!loading">
+        <span v-if="list.length > 0">
+          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
+            <el-col :span="24">
+              <el-col :span="20" class="title">
+                <el-link :underline="false" @click="$router.push({ path: '/jobinfo/detail', query: { id: item.id } })">{{ item.title }}</el-link>
+              </el-col>
+              <el-col :span="4" class="time">
+                {{ item | getTime(`meta.createdAt`) }}
+              </el-col>
+            </el-col>
+            <el-col :span="24" class="common practice">
+              招聘类型:<span>{{ `${item.is_practice}` === `0` ? '全职' : '实习' }}</span>
+            </el-col>
+            <el-col :span="24" class="common corpname">
+              <i class="el-icon-office-building"></i>
+              举办企业:<span>{{ item.corpname }}</span>
+            </el-col>
+            <el-col :span="24" class="common schname">
+              <i class="el-icon-school"></i>
+              主办学校:<span>{{ item.schname }}</span>
+            </el-col>
           </el-col>
-          <el-col :span="4" class="time">
-            {{ item | getTime(`meta.createdAt`) }}
-          </el-col>
-        </el-col>
-        <el-col :span="24" class="common practice">
-          招聘类型:<span>{{ `${item.is_practice}` === `0` ? '全职' : '实习' }}</span>
-        </el-col>
-        <el-col :span="24" class="common corpname">
-          <i class="el-icon-office-building"></i>
-          举办企业:<span>{{ item.corpname }}</span>
-        </el-col>
-        <el-col :span="24" class="common schname">
-          <i class="el-icon-school"></i>
-          主办学校:<span>{{ item.schname }}</span>
-        </el-col>
-      </el-col>
+        </span>
+        <span v-else>
+          <no-list></no-list>
+        </span>
+      </span>
+      <el-col :span="24" class="list" style="padding-top:50px" v-else v-loading="loading"></el-col>
       <el-col :span="24" class="page">
         <el-pagination @current-change="search" :current-page="currentPage" :page-size="$limit" layout="total, prev, pager, next, jumper" :total="totalRow">
         </el-pagination>
@@ -61,18 +74,23 @@
 </template>
 
 <script>
+import noList from '@publics/src/layout/noList.vue';
 import { mapActions, mapState } from 'vuex';
 import _ from 'lodash';
 export default {
   name: 'list',
   props: {},
-  components: {},
+  components: {
+    noList,
+  },
   data: () => ({
     searchInfo: {},
     squareUrl: '',
     currentPage: 1,
     totalRow: 0,
     list: [],
+    loading: false,
+    filter: [{ label: '企业名称', name: 'corpname' }, { label: '标题', name: 'title' }],
   }),
   created() {
     this.search();
@@ -81,11 +99,15 @@ export default {
   methods: {
     ...mapActions(['jobinfoOperation']),
     async search(page) {
+      this.loading = true;
       let skip = 0;
       if (page) {
         skip = (page - 1) * this.$limit;
       }
-      let newData = { skip: skip, limit: this.$limit, ...this.searchInfo };
+      let { name, value, ...others } = JSON.parse(JSON.stringify(this.searchInfo));
+      let searchInfo = { ...others };
+      if (name && value && value !== '') searchInfo[name] = `${value}`;
+      let newData = { skip: skip, limit: this.$limit, ...searchInfo };
       let result = await this.jobinfoOperation({ type: 'list', data: newData });
       if (`${result.errcode}` === '0') {
         //给this=>vue的实例下在中的list属性,赋予result。data的值
@@ -94,6 +116,7 @@ export default {
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
+      this.loading = false;
     },
   },
   filters: {
@@ -118,7 +141,7 @@ export default {
 .search {
   margin: 15px 0;
 }
-/deep/.search .el-input__inner {
+/deep/.search {
   border: 2px solid #850000;
   border-radius: 0;
 }
@@ -150,4 +173,10 @@ export default {
   margin: 10px 0;
   text-align: right;
 }
+.filter-box {
+  display: inline-block;
+  .el-select {
+    width: 100px;
+  }
+}
 </style>

+ 67 - 36
src/views/jobs/list.vue

@@ -15,9 +15,12 @@
           </el-breadcrumb>
         </el-col>
       </el-col>
-      <el-col :span="24" class="search">
-        <el-col :span="12">
-          <el-input size="mini" placeholder="请输入企业名称" v-model="searchInfo.corpname" @keyup.enter.native="search()">
+      <el-col :span="24">
+        <el-col :span="12" class="filter-box search">
+          <el-input size="mini" placeholder="请输入查询内容" v-model="searchInfo.value" @keyup.enter.native="search()">
+            <el-select slot="prepend" size="mini" placeholder="请选择" width="110" v-model="searchInfo.name">
+              <el-option v-for="(item, index) in filter" :label="item.label" :value="item.name" :key="'filter' + index"></el-option>
+            </el-select>
             <el-button slot="append" icon="el-icon-search" @click="search()"></el-button>
           </el-input>
         </el-col>
@@ -25,41 +28,49 @@
           &nbsp;
         </el-col>
       </el-col>
-      <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
-        <el-col :span="24">
-          <el-col :span="3">
-            <div class="block">
-              <el-avatar shape="square" fit="contain" :size="75" :src="getProp(item, 'corpInfo.logo_url')"></el-avatar>
-            </div>
-          </el-col>
-          <el-col :span="21">
-            <el-col :span="24">
-              <el-col :span="20" class="title">
-                <el-link :underline="false" @click="$router.push({ path: '/jobs/detail', query: { id: item.id } })">
-                  {{ item.job_name }}
-                </el-link>
-              </el-col>
-              <el-col :span="4" class="time">
-                {{ item.end_date }}
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="corpname">
-              招聘企业:<span>{{ item.corpname }}</span>
-            </el-col>
+      <span v-if="!loading">
+        <span v-if="list.length > 0">
+          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
             <el-col :span="24">
-              <el-col :span="20">
-                职位要求:<span>{{ item.city }}/{{ item.xl_req }}/{{ item.job_number }}人</span>
+              <el-col :span="3">
+                <div class="block">
+                  <el-avatar shape="square" fit="contain" :size="75" :src="getProp(item, 'corpInfo.logo_url')"></el-avatar>
+                </div>
               </el-col>
-              <el-col :span="4" class="time">
-                <span>{{ item.salary.text }}</span>
+              <el-col :span="21">
+                <el-col :span="24">
+                  <el-col :span="20" class="title">
+                    <el-link :underline="false" @click="$router.push({ path: '/jobs/detail', query: { id: item.id } })">
+                      {{ item.job_name }}
+                    </el-link>
+                  </el-col>
+                  <el-col :span="4" class="time">
+                    {{ item.end_date }}
+                  </el-col>
+                </el-col>
+                <el-col :span="24" class="corpname">
+                  招聘企业:<span>{{ item.corpname }}</span>
+                </el-col>
+                <el-col :span="24">
+                  <el-col :span="20">
+                    职位要求:<span>{{ item.city }}/{{ item.xl_req }}/{{ item.job_number }}人</span>
+                  </el-col>
+                  <el-col :span="4" class="time">
+                    <span>{{ item.salary.text }}</span>
+                  </el-col>
+                </el-col>
+                <el-col :span="24">
+                  企业类型:<span>{{ item.category }}</span>
+                </el-col>
               </el-col>
             </el-col>
-            <el-col :span="24">
-              企业类型:<span>{{ item.category }}</span>
-            </el-col>
           </el-col>
-        </el-col>
-      </el-col>
+        </span>
+        <span v-else>
+          <no-list></no-list>
+        </span>
+      </span>
+      <el-col :span="24" class="list" style="padding-top:50px" v-else v-loading="loading"></el-col>
       <el-col :span="24" class="page">
         <el-pagination @current-change="search" :current-page="currentPage" :page-size="$limit" layout="total, prev, pager, next, jumper" :total="totalRow">
         </el-pagination>
@@ -69,18 +80,23 @@
 </template>
 
 <script>
+import noList from '@publics/src/layout/noList.vue';
 import { mapActions, mapState } from 'vuex';
 import _ from 'lodash';
 export default {
   name: 'list',
   props: {},
-  components: {},
+  components: {
+    noList,
+  },
   data: () => ({
     squareUrl: '',
     searchInfo: {},
     currentPage: 1,
     totalRow: 0,
     list: [],
+    filter: [{ label: '职位名称', name: 'job_name' }, { label: '企业名称', name: 'corpname' }],
+    loading: false,
   }),
   created() {
     this.search();
@@ -97,11 +113,15 @@ export default {
   methods: {
     ...mapActions(['postOperation', 'corpOperation']),
     async search(page) {
+      this.loading = true;
       let skip = 0;
       if (page) {
         skip = (page - 1) * this.$limit;
       }
-      let newData = { skip: skip, limit: this.$limit, ...this.searchInfo, is_publish: 1 }; //schid: 99991,
+      let searchInfo = {};
+      if (this.searchInfo.name && this.searchInfo.value && this.searchInfo.value !== '') searchInfo[this.searchInfo.name] = `${this.searchInfo.value}`;
+      if (this.searchInfo.date) searchInfo.date = this.searchInfo.date;
+      let newData = { skip: skip, limit: this.$limit, ...searchInfo, is_publish: 1 }; //schid: 99991,
       newData['is_practice'] = this.type;
       let result = await this.postOperation({ type: 'list', data: newData });
       if (`${result.errcode}` === '0') {
@@ -116,6 +136,7 @@ export default {
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
+      this.loading = false;
     },
     async getLogo(corpid) {
       let result = await this.corpOperation({ type: 'component', data: { corpid: corpid } });
@@ -136,7 +157,7 @@ export default {
 .search {
   margin: 15px 0;
 }
-/deep/.search .el-input__inner {
+/deep/.search {
   border: 2px solid #850000;
   border-radius: 0;
 }
@@ -146,6 +167,10 @@ export default {
   color: #fff;
   border-radius: 0;
 }
+/deep/.search .el-select {
+  border-radius: 0;
+  height: 28px;
+}
 .list {
   padding: 5px 0;
   border-bottom: 1px dashed #ccc;
@@ -168,4 +193,10 @@ export default {
   margin: 10px 0;
   text-align: right;
 }
+.filter-box {
+  display: inline-block;
+  .el-select {
+    width: 100px;
+  }
+}
 </style>

+ 54 - 27
src/views/talk/list.vue

@@ -15,9 +15,12 @@
           </el-breadcrumb>
         </el-col>
       </el-col>
-      <el-col :span="24" class="search">
-        <el-col :span="12">
-          <el-input size="mini" placeholder="请输入企业名称" v-model="searchInfo.corpname" @keyup.enter.native="search()">
+      <el-col :span="24">
+        <el-col :span="12" class="filter-box search">
+          <el-input size="mini" placeholder="请输入查询内容" v-model="searchInfo.value" @keyup.enter.native="search()">
+            <el-select slot="prepend" size="mini" placeholder="请选择" width="110" v-model="searchInfo.name">
+              <el-option v-for="(item, index) in filter" :label="item.label" :value="item.name" :key="'filter' + index"></el-option>
+            </el-select>
             <el-button slot="append" icon="el-icon-search" @click="search()"></el-button>
           </el-input>
         </el-col>
@@ -25,28 +28,36 @@
           &nbsp;
         </el-col>
       </el-col>
-      <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
-        <el-col :span="24">
-          <el-col :span="20" class="title">
-            <el-link :underline="false" @click="$router.push({ path: '/talk/detail', query: { id: item.id } })">{{ item.title }}</el-link>
-          </el-col>
-          <el-col :span="4" class="time">
-            {{ item.time }}
+      <span v-if="!loading">
+        <span v-if="list.length > 0">
+          <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
+            <el-col :span="24">
+              <el-col :span="20" class="title">
+                <el-link :underline="false" @click="$router.push({ path: '/talk/detail', query: { id: item.id } })">{{ item.title }}</el-link>
+              </el-col>
+              <el-col :span="4" class="time">
+                {{ item.time }}
+              </el-col>
+            </el-col>
+            <el-col :span="24" class="common corpname">
+              <i class="el-icon-office-building"></i>
+              举办企业:<span>{{ item.corpname }}</span>
+            </el-col>
+            <el-col :span="24" class="common schname">
+              <i class="el-icon-school"></i>
+              主办学校:<span>{{ item.schname }}</span>
+            </el-col>
+            <el-col :span="24" class="common address">
+              <i class="el-icon-location"></i>
+              举办地址:<span>{{ item.address }}</span>
+            </el-col>
           </el-col>
-        </el-col>
-        <el-col :span="24" class="common corpname">
-          <i class="el-icon-office-building"></i>
-          举办企业:<span>{{ item.corpname }}</span>
-        </el-col>
-        <el-col :span="24" class="common schname">
-          <i class="el-icon-school"></i>
-          主办学校:<span>{{ item.schname }}</span>
-        </el-col>
-        <el-col :span="24" class="common address">
-          <i class="el-icon-location"></i>
-          举办地址:<span>{{ item.address }}</span>
-        </el-col>
-      </el-col>
+        </span>
+        <span v-else>
+          <no-list></no-list>
+        </span>
+      </span>
+      <el-col :span="24" class="list" style="padding-top:50px" v-else v-loading="loading"></el-col>
       <el-col :span="24" class="page">
         <el-pagination @current-change="search" :current-page="currentPage" :page-size="$limit" layout="total, prev, pager, next, jumper" :total="totalRow">
         </el-pagination>
@@ -56,18 +67,23 @@
 </template>
 
 <script>
+import noList from '@publics/src/layout/noList.vue';
 import { mapActions, mapState } from 'vuex';
 import _ from 'lodash';
 export default {
   name: 'list',
   props: {},
-  components: {},
+  components: {
+    noList,
+  },
   data: () => ({
     squareUrl: '',
     searchInfo: {},
     currentPage: 1,
     totalRow: 0,
     list: [],
+    filter: [{ label: '标题', name: 'title' }, { label: '企业名称', name: 'corpname' }],
+    loading: false,
   }),
   created() {
     this.search();
@@ -87,6 +103,7 @@ export default {
   methods: {
     ...mapActions(['postTalksInfo']),
     async search(page) {
+      this.loading = true;
       let skip = 0;
       if (page && _.isNumber(page)) {
         skip = (page - 1) * this.$limit;
@@ -94,7 +111,10 @@ export default {
       if (this.date) {
         this.searchInfo['date'] = this.date;
       }
-      let newData = { skip: skip, limit: this.$limit, ...this.searchInfo };
+      let { name, value, ...others } = JSON.parse(JSON.stringify(this.searchInfo));
+      let searchInfo = { ...others };
+      if (name && value && value !== '') searchInfo[name] = `${value}`;
+      let newData = { skip: skip, limit: this.$limit, ...searchInfo };
       this.type === 'in' ? (newData['schid'] = this.$site) : '';
       let result = await this.postTalksInfo({ type: 'list', data: newData });
       if (`${result.errcode}` === '0') {
@@ -104,6 +124,7 @@ export default {
       } else {
         this.$message.error(result.errmsg ? result.errmsg : 'error');
       }
+      this.loading = false;
     },
   },
 };
@@ -116,7 +137,7 @@ export default {
 .search {
   margin: 15px 0;
 }
-/deep/.search .el-input__inner {
+/deep/.search {
   border: 2px solid #850000;
   border-radius: 0;
 }
@@ -148,4 +169,10 @@ export default {
   margin: 10px 0;
   text-align: right;
 }
+.filter-box {
+  display: inline-block;
+  .el-select {
+    width: 100px;
+  }
+}
 </style>