|
@@ -1,18 +1,7 @@
|
|
|
<template>
|
|
<template>
|
|
|
<view class="job-management-page">
|
|
<view class="job-management-page">
|
|
|
- <!-- 固定顶部导航栏和标签页 -->
|
|
|
|
|
<view class="fixed-header">
|
|
<view class="fixed-header">
|
|
|
- <!-- 自定义导航栏 -->
|
|
|
|
|
- <view class="custom-navbar">
|
|
|
|
|
- <view class="navbar-content">
|
|
|
|
|
- <view class="nav-left" @click="goBack">
|
|
|
|
|
- <u-icon name="arrow-leftward" color="#333" size="32"></u-icon>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="nav-title">职位管理</view>
|
|
|
|
|
- <view class="nav-right"></view>
|
|
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
-
|
|
|
|
|
|
|
+ <navBar title="职位管理" color="#000" :backUrl="backUrl"/>
|
|
|
<!-- 标签页导航 - 使用uview的u-tabs组件 -->
|
|
<!-- 标签页导航 - 使用uview的u-tabs组件 -->
|
|
|
<view class="sticky-tabs">
|
|
<view class="sticky-tabs">
|
|
|
<u-tabs
|
|
<u-tabs
|
|
@@ -37,7 +26,7 @@
|
|
|
<!-- 有数据时显示列表 -->
|
|
<!-- 有数据时显示列表 -->
|
|
|
<scroll-view
|
|
<scroll-view
|
|
|
scroll-y="true"
|
|
scroll-y="true"
|
|
|
- style="width: 100%;height: 70vh;"
|
|
|
|
|
|
|
+ style="width: 100%;height: 100%;"
|
|
|
v-if="jobList.length > 0"
|
|
v-if="jobList.length > 0"
|
|
|
@scrolltolower="loadMore"
|
|
@scrolltolower="loadMore"
|
|
|
lower-threshold="50"
|
|
lower-threshold="50"
|
|
@@ -58,7 +47,7 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="job-status" :class="getJobStatusClass(job)">
|
|
<view class="job-status" :class="getJobStatusClass(job)">
|
|
|
- <text class="status-text">{{job.statusName || job.status}}</text>
|
|
|
|
|
|
|
+ <text class="status-text">{{job.status | statusText}}</text>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="job-info">
|
|
<view class="job-info">
|
|
@@ -86,9 +75,13 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+ import navBar from "@/components/nav-bar/index.vue";
|
|
|
import empty from '@/components/empty.vue'
|
|
import empty from '@/components/empty.vue'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
|
|
+ components: {
|
|
|
|
|
+ navBar,
|
|
|
|
|
+ },
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
tabIndex: 0,
|
|
tabIndex: 0,
|
|
@@ -107,9 +100,24 @@ export default {
|
|
|
count: 0, // 总条数
|
|
count: 0, // 总条数
|
|
|
companyId: '',
|
|
companyId: '',
|
|
|
isLoading: false, // 防止重复请求标记
|
|
isLoading: false, // 防止重复请求标记
|
|
|
|
|
+ backUrl:''
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- onLoad() {
|
|
|
|
|
|
|
+ filters: {
|
|
|
|
|
+ statusText(value) {
|
|
|
|
|
+ switch (value) {
|
|
|
|
|
+ case 1: return '待审核'
|
|
|
|
|
+ case 2: return '审核通过'
|
|
|
|
|
+ case 3: return '审核不通过'
|
|
|
|
|
+ case 4: return '已取消'
|
|
|
|
|
+ case 5: return '已关闭'
|
|
|
|
|
+ case 6: return '暂存'
|
|
|
|
|
+ default: return '暂无数据'
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ onLoad(options) {
|
|
|
|
|
+ this.backUrl = options.backUrl;
|
|
|
this.companyId = uni.getStorageSync('companyId');
|
|
this.companyId = uni.getStorageSync('companyId');
|
|
|
this.getJobList();
|
|
this.getJobList();
|
|
|
this.setBodyHeight();
|
|
this.setBodyHeight();
|
|
@@ -205,8 +213,8 @@ sticky生效条件:
|
|
|
*/
|
|
*/
|
|
|
.sticky-tabs {
|
|
.sticky-tabs {
|
|
|
z-index: 990;
|
|
z-index: 990;
|
|
|
- position: sticky;
|
|
|
|
|
- top: var(--window-top);
|
|
|
|
|
|
|
+ // position: sticky;
|
|
|
|
|
+ // top: var(--window-top);
|
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -215,52 +223,20 @@ page {
|
|
|
}
|
|
}
|
|
|
.job-management-page {
|
|
.job-management-page {
|
|
|
background-color: #ffffff;
|
|
background-color: #ffffff;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ height: 100vh;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.fixed-header {
|
|
.fixed-header {
|
|
|
- position: fixed;
|
|
|
|
|
- top: 0;
|
|
|
|
|
- left: 0;
|
|
|
|
|
- right: 0;
|
|
|
|
|
- z-index: 9999;
|
|
|
|
|
background-color: #ffffff;
|
|
background-color: #ffffff;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-.custom-navbar {
|
|
|
|
|
- padding-top: 80rpx;
|
|
|
|
|
- background-color: #ffffff;
|
|
|
|
|
- box-sizing: border-box;
|
|
|
|
|
-
|
|
|
|
|
- .navbar-content {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- justify-content: space-between;
|
|
|
|
|
- height: 88rpx;
|
|
|
|
|
- padding: 0 40rpx;
|
|
|
|
|
-
|
|
|
|
|
- .nav-left, .nav-right {
|
|
|
|
|
- width: 60rpx;
|
|
|
|
|
- height: 60rpx;
|
|
|
|
|
- display: flex;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
- justify-content: center;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- .nav-title {
|
|
|
|
|
- color: rgba(51, 51, 51, 1);
|
|
|
|
|
- font-family: DM Sans;
|
|
|
|
|
- font-size: 30rpx;
|
|
|
|
|
- font-weight: 700;
|
|
|
|
|
- line-height: 52px;
|
|
|
|
|
- letter-spacing: 0.5%;
|
|
|
|
|
- text-align: center;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
.job-list {
|
|
.job-list {
|
|
|
- padding: 0 40rpx;
|
|
|
|
|
- margin-top: 280rpx;
|
|
|
|
|
|
|
+ padding: 20rpx 40rpx 0;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
|
|
|
.job-card {
|
|
.job-card {
|
|
|
background: #ffffff;
|
|
background: #ffffff;
|
|
@@ -424,13 +400,8 @@ page {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.bottom-action {
|
|
.bottom-action {
|
|
|
- position: fixed;
|
|
|
|
|
- bottom: 0;
|
|
|
|
|
- left: 0;
|
|
|
|
|
- right: 0;
|
|
|
|
|
padding: 30rpx 40rpx;
|
|
padding: 30rpx 40rpx;
|
|
|
background: #ffffff;
|
|
background: #ffffff;
|
|
|
- z-index: 9999;
|
|
|
|
|
|
|
|
|
|
.publish-btn {
|
|
.publish-btn {
|
|
|
width: 100%;
|
|
width: 100%;
|