|
@@ -11,8 +11,22 @@
|
|
|
</ion-toolbar>
|
|
|
</ion-header>
|
|
|
<ion-content>
|
|
|
+ <div class="tabs-striped tabs-top tabs-background-positive tabs-color-light" v-if="curTabIndex!=3">
|
|
|
+ <div class="tabs">
|
|
|
+ <div :class="curTabIndex==1?'active tab-item':'passive tab-item'">
|
|
|
+ <a @click="onTabChange(1)">
|
|
|
+ 企业信息
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ <div :class="curTabIndex==2?'active tab-item':'passive tab-item'">
|
|
|
+ <a @click="onTabChange(2)">
|
|
|
+ 岗位信息
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<div class="bw-vue-form">
|
|
|
- <div class="menu1">
|
|
|
+ <div v-show="curTabIndex==1">
|
|
|
<div class="form-detail">
|
|
|
<ion-label>企业名称</ion-label>
|
|
|
<ion-text>{{ dataModel.companyName }}</ion-text>
|
|
@@ -55,11 +69,11 @@
|
|
|
</div>
|
|
|
<div class="form-detail">
|
|
|
<ion-label>营业执照有效期</ion-label>
|
|
|
- <ion-text>{{ dayjs(dataModel.validDate).format("YYYY-MM-DD") }}</ion-text>
|
|
|
+ <ion-text v-if="dataModel.validDate!=null">{{ dayjs(dataModel.validDate).format("YYYY-MM-DD") }}</ion-text>
|
|
|
</div>
|
|
|
<div class="form-detail">
|
|
|
<ion-label>成立日期</ion-label>
|
|
|
- <ion-text>{{ dayjs(dataModel.establishmentTime).format("YYYY-MM-DD") }}</ion-text>
|
|
|
+ <ion-text v-if="dataModel.establishmentTime!=null">{{ dayjs(dataModel.establishmentTime).format("YYYY-MM-DD") }}</ion-text>
|
|
|
</div>
|
|
|
<div class="form-detail">
|
|
|
<ion-label>注册资本(万元)</ion-label>
|
|
@@ -91,7 +105,7 @@
|
|
|
</div>
|
|
|
<div class="form-detail">
|
|
|
<ion-label>企业网站</ion-label>
|
|
|
- <ion-text style="width: 60%;">{{ dataModel.website }}</ion-text>
|
|
|
+ <ion-text style="width: 60%;text-align: right;">{{ dataModel.website }}</ion-text>
|
|
|
</div>
|
|
|
<div class="form-detail">
|
|
|
<ion-label>企业福利</ion-label>
|
|
@@ -114,7 +128,105 @@
|
|
|
<ion-text>{{ dataModel.companyDesc }}</ion-text>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div v-show="curTabIndex==2">
|
|
|
+ <div v-if="!loading" id="postList" >
|
|
|
+ <div v-for="(record,key) in curCompanyPostList" :key="key" >
|
|
|
+ <ion-item detail @click="onPostEdit(record.postID)" class="ion-item">
|
|
|
+ <ion-label>
|
|
|
+ <h2>
|
|
|
+ {{ record.professionName }}
|
|
|
+ </h2>
|
|
|
+ <p v-if="record.startTime!=null&&record.endTime!=null">
|
|
|
+ {{ dayjs(record.startTime).format("YYYY-MM-DD") }}至{{ dayjs(record.endTime).format("YYYY-MM-DD") }}
|
|
|
+ </p>
|
|
|
+ <p v-if="record.startTime==null||record.endTime==null">
|
|
|
+ 暂未设置有效期限
|
|
|
+ </p>
|
|
|
+ <p>
|
|
|
+ 招聘人数:{{ record.recruitCount }} 人
|
|
|
+ </p>
|
|
|
+ </ion-label>
|
|
|
+ </ion-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-show="curTabIndex==3">
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>岗位名称</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.professionName }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>招聘数量(人)</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.recruitCount }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>招聘日期</ion-label>
|
|
|
+ <ion-text>{{ dayjs(curCompanyPostInfo.startTime).format("YYYY-MM-DD")+"至"+dayjs(curCompanyPostInfo.endTime).format("YYYY-MM-DD") }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>招聘地点</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.jobPlace }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>工作性质</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.workNatureName }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>岗位月薪(元)</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.minSalary+"-"+curCompanyPostInfo.maxSalary }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail" name="isTrailName">
|
|
|
+ <ion-label>是否有试用期</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.isTrailName }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>试用期(月)</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.trailMonths }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>试用期月薪(元)</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.trailMinSalary+"-"+curCompanyPostInfo.trailMaxSalary }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>工作年限要求</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.companyName }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>学历要求</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.companyName }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>其他要求</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.workYear }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>福利待遇</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.welfare }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>岗位联系人</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.userName }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>岗位联系电话</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.userMobile }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail">
|
|
|
+ <ion-label>岗位联系人邮箱</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.companyName }}</ion-text>
|
|
|
+ </div>
|
|
|
+ <div class="form-detail" name="tagName">
|
|
|
+ <ion-label>岗位标签</ion-label>
|
|
|
+ <ion-text>{{ curCompanyPostInfo.TagName }}</ion-text>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <ion-infinite-scroll threshold="100px" @ionInfinite="onScroll($event)">
|
|
|
+ <ion-infinite-scroll-content
|
|
|
+ :loadingText="pageParams.total>pageParams.pageIndex*pageParams.pageSize?'正在加载...':'暂无更多'"
|
|
|
+ loadingSpinner="bubbles">
|
|
|
+ </ion-infinite-scroll-content>
|
|
|
+ </ion-infinite-scroll>
|
|
|
</ion-content>
|
|
|
<ion-footer>
|
|
|
</ion-footer>
|
|
@@ -123,9 +235,9 @@
|
|
|
<script lang="ts">
|
|
|
import {defineComponent, ref, reactive, watch, toRefs} from "vue";
|
|
|
import {useRoute, useRouter} from "vue-router";
|
|
|
-import {getCompanyById} from "@/api/company";
|
|
|
-import {onIonViewDidEnter} from "@ionic/vue";
|
|
|
+import {getCompanyById,getCompanyPostList} from "@/api/company";
|
|
|
import {arrowBackOutline} from 'ionicons/icons';
|
|
|
+import {onIonViewDidEnter} from '@ionic/vue';
|
|
|
import dayjs from "dayjs";
|
|
|
|
|
|
interface FormData{
|
|
@@ -136,26 +248,49 @@ export default defineComponent({
|
|
|
setup() {
|
|
|
const router = useRouter();
|
|
|
const route = useRoute();
|
|
|
+ const pageParams = reactive({
|
|
|
+ pageIndex: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ total:0,
|
|
|
+ companyID:''
|
|
|
+ });
|
|
|
+ const curTabIndex = ref(1);
|
|
|
const loading = ref<boolean>(false);
|
|
|
const formData = reactive<FormData>({
|
|
|
- dataModel: {
|
|
|
- companyID:null,
|
|
|
- companyName:null
|
|
|
- }
|
|
|
+ dataModel: {}
|
|
|
});
|
|
|
- const onBack=()=>{
|
|
|
- router.push({path:'./list',query:{reload:1}});
|
|
|
- };
|
|
|
+ const curCompanyPostList = ref<any>([]);
|
|
|
+ const curCompanyPostInfo = ref<any>({});
|
|
|
|
|
|
- const onPathForward = (pathValue:string,statusValue:any)=>{
|
|
|
- router.push({path: pathValue, query: {reload:1,id:formData.dataModel.companyID,status:statusValue}});
|
|
|
+ const onBack=()=>{
|
|
|
+ if(curTabIndex.value!=3){
|
|
|
+ router.push({path:"./list",query:{reload:1}});
|
|
|
+ }else{
|
|
|
+ curTabIndex.value = 2;
|
|
|
+ }
|
|
|
};
|
|
|
+ const onScroll = (e: any) => {
|
|
|
+ setTimeout(() => {
|
|
|
+ e.target.complete();
|
|
|
+ if (pageParams.total > pageParams.pageIndex * pageParams.pageSize) {
|
|
|
+ pageParams.pageSize += 10;
|
|
|
+ loadData(pageParams.companyID,route.query.loginUserID);
|
|
|
+ }
|
|
|
+ }, 500);
|
|
|
+ }
|
|
|
|
|
|
const loadData = async (companyID:any,loginUserID:any)=>{
|
|
|
loading.value = true;
|
|
|
+ curTabIndex.value = 1;
|
|
|
+ pageParams.companyID = companyID;
|
|
|
const reqData = await getCompanyById(companyID,loginUserID);
|
|
|
formData.dataModel = reqData;
|
|
|
console.log("dataModel",formData.dataModel);
|
|
|
+ const result = await getCompanyPostList(pageParams);
|
|
|
+ pageParams.total = result.total;
|
|
|
+ console.log("pageParams",pageParams);
|
|
|
+ curCompanyPostList.value = curCompanyPostList.value.concat(result.list);
|
|
|
+ console.log("postList",curCompanyPostList.value);
|
|
|
loading.value = false;
|
|
|
};
|
|
|
|
|
@@ -163,6 +298,19 @@ export default defineComponent({
|
|
|
loadData(companyID,loginUserID);
|
|
|
};
|
|
|
|
|
|
+ const onTabChange = (tabIndex:number)=>{
|
|
|
+ curTabIndex.value = tabIndex;
|
|
|
+ }
|
|
|
+
|
|
|
+ const onPostEdit = (curPostID:any)=>{
|
|
|
+ curTabIndex.value = 3;
|
|
|
+ (curCompanyPostList.value as any[]).map(item=>{
|
|
|
+ if(item.postID == curPostID){
|
|
|
+ curCompanyPostInfo.value = item;
|
|
|
+ console.log("curCompanyPostInfo",curCompanyPostInfo.value);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
|
|
|
onIonViewDidEnter(() => {
|
|
|
if (route.query.reload) {
|
|
@@ -176,9 +324,15 @@ export default defineComponent({
|
|
|
arrowBackOutline,
|
|
|
route,
|
|
|
router,
|
|
|
+ curTabIndex,
|
|
|
+ pageParams,
|
|
|
+ curCompanyPostList,
|
|
|
+ curCompanyPostInfo,
|
|
|
loading,
|
|
|
- onPathForward,
|
|
|
+ onTabChange,
|
|
|
+ onPostEdit,
|
|
|
onBack,
|
|
|
+ onScroll,
|
|
|
loadData,
|
|
|
dayjs,
|
|
|
}
|
|
@@ -187,6 +341,45 @@ export default defineComponent({
|
|
|
</script>
|
|
|
|
|
|
<style lang="less">
|
|
|
+.active{
|
|
|
+ border-bottom: 4px solid #0aa3e9;
|
|
|
+ a{
|
|
|
+ color:#0aa3e9;
|
|
|
+ }
|
|
|
+}
|
|
|
+.passive{
|
|
|
+ color:black;
|
|
|
+ border-bottom: 2px solid gray;
|
|
|
+ a{
|
|
|
+ color:black;
|
|
|
+ }
|
|
|
+}
|
|
|
+.tab-item{
|
|
|
+ height: 35px;
|
|
|
+ width: 50%;
|
|
|
+ float:left;
|
|
|
+ text-align: center;
|
|
|
+ a {
|
|
|
+ font-size: 22px;
|
|
|
+ text-decoration: none;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+#postList {
|
|
|
+ margin: 40px 10px 10px 10px;
|
|
|
+ background-color: white !important;
|
|
|
+
|
|
|
+ .ion-item {
|
|
|
+ margin-top: 10px;
|
|
|
+ font-size: 14px;
|
|
|
+ border-bottom: 1px solid rgb(242, 242, 245);
|
|
|
+
|
|
|
+ p {
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
ion-item {
|
|
|
--border-width: 0;
|
|
|
--border-style: none;
|