list.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <template>
  2. <div id="list">
  3. <el-row>
  4. <el-col :span="24" class="topMenu">
  5. <el-col :span="24">
  6. <el-breadcrumb separator=">">
  7. <el-breadcrumb-item :to="{ path: '/' }"><i class="el-icon-s-home"></i><span>网站首页</span></el-breadcrumb-item>
  8. <el-breadcrumb-item>
  9. <a href="/"><span>招聘信息</span></a>
  10. </el-breadcrumb-item>
  11. <el-breadcrumb-item><span>在线招聘</span></el-breadcrumb-item>
  12. </el-breadcrumb>
  13. </el-col>
  14. </el-col>
  15. <el-col :span="24" class="search">
  16. <el-col :span="12">
  17. <el-col :span="6">
  18. <el-select size="mini" v-model="searchInfo.is_practice" placeholder="选择招聘类型" @change="search()">
  19. <el-option label="全部类型" :value="undefined"></el-option>
  20. <el-option label="全职" :value="0"></el-option>
  21. <el-option label="实习" :value="1"></el-option>
  22. </el-select>
  23. </el-col>
  24. <el-col :span="18">
  25. <el-input size="mini" placeholder="请输入企业名称" v-model="searchInfo.corpname" @keyup.enter.native="search()">
  26. <el-button slot="append" icon="el-icon-search" @click="search()"></el-button>
  27. </el-input>
  28. </el-col>
  29. </el-col>
  30. <el-col :span="12">
  31. &nbsp;
  32. </el-col>
  33. </el-col>
  34. <el-col :span="24" class="list" v-for="(item, index) in list" :key="index">
  35. <el-col :span="24">
  36. <el-col :span="24" class="title">
  37. <el-link :underline="false" @click="$router.push({ path: '/jobinfo/detail', query: { id: item.id } })">{{ item.title }}</el-link>
  38. </el-col>
  39. <el-col :span="24" class="common practice">
  40. 招聘类型:<span>{{ `${item.is_practice}` === `0` ? '全职' : '实习' }}</span>
  41. </el-col>
  42. <el-col :span="24" class="common corpname">
  43. <i class="el-icon-office-building"></i>
  44. 举办企业:<span>{{ item.corpname }}</span>
  45. </el-col>
  46. <el-col :span="24" class="common schname">
  47. <i class="el-icon-school"></i>
  48. 主办学校:<span>{{ item.schname }}</span>
  49. </el-col>
  50. </el-col>
  51. </el-col>
  52. <el-col :span="24" class="page">
  53. <el-pagination @current-change="search" :current-page="currentPage" :page-size="$limit" layout="total, prev, pager, next, jumper" :total="totalRow">
  54. </el-pagination>
  55. </el-col>
  56. </el-row>
  57. </div>
  58. </template>
  59. <script>
  60. import { mapActions, mapState } from 'vuex';
  61. export default {
  62. name: 'list',
  63. props: {},
  64. components: {},
  65. data: () => ({
  66. searchInfo: {},
  67. squareUrl: '',
  68. currentPage: 1,
  69. totalRow: 0,
  70. list: [],
  71. }),
  72. created() {
  73. this.search();
  74. },
  75. computed: {},
  76. methods: {
  77. ...mapActions(['jobinfoOperation']),
  78. async search(page) {
  79. let skip = 0;
  80. if (page) {
  81. skip = (page - 1) * this.$limit;
  82. }
  83. let newData = { skip: skip, limit: this.$limit, ...this.searchInfo };
  84. let result = await this.jobinfoOperation({ type: 'list', data: newData });
  85. if (`${result.errcode}` === '0') {
  86. //给this=>vue的实例下在中的list属性,赋予result。data的值
  87. this.$set(this, 'list', result.data);
  88. this.$set(this, `totalRow`, result.total);
  89. } else {
  90. this.$message.error(result.errmsg ? result.errmsg : 'error');
  91. }
  92. },
  93. },
  94. };
  95. </script>
  96. <style lang="less" scoped>
  97. .topMenu {
  98. margin: 0 0 10px 0;
  99. }
  100. .search {
  101. margin: 15px 0;
  102. }
  103. /deep/.search .el-input__inner {
  104. border: 2px solid #850000;
  105. border-radius: 0;
  106. }
  107. /deep/.search .el-input-group__append {
  108. background: #850000;
  109. border: 2px solid #850000;
  110. color: #fff;
  111. border-radius: 0;
  112. }
  113. .list {
  114. padding: 5px 0;
  115. border-bottom: 1px dashed #ccc;
  116. }
  117. .list .title .el-link {
  118. font-size: 20px;
  119. color: #000;
  120. }
  121. .list .title .el-link:hover {
  122. color: #850000;
  123. }
  124. .list .time {
  125. color: #ff0000;
  126. }
  127. .list .common {
  128. padding: 2px 0;
  129. }
  130. .page {
  131. margin: 10px 0;
  132. text-align: right;
  133. }
  134. </style>