|
|
|
@ -1,100 +1,128 @@
|
|
|
|
<template>
|
|
|
|
<template>
|
|
|
|
<div class="p-root-detail-user g_w_all g_bg_page g_kuaishou">
|
|
|
|
<div class="p-root-detail-user g_w_all g_bg_page g_kuaishou" style="position: fixed; top: 0; left: 0; ">
|
|
|
|
<u-navbar backIconColor="#333" :borderBottom="false" :immersive="true" :customBack="goHome" :background="{ background: navColor }" :backIconName="fromShare ? 'home' : 'arrow-left'"></u-navbar>
|
|
|
|
<u-navbar backIconColor="#333" :borderBottom="false" :immersive="true" :customBack="goHome" :background="{ background: navColor }" :backIconName="fromShare ? 'home' : 'arrow-left'"></u-navbar>
|
|
|
|
<view class="u-navbar-fixed" style="background-color: #caf1e0 !important; height: 160px"></view>
|
|
|
|
<scroll-view
|
|
|
|
<div class style="background-color: #caf1e0 !important">
|
|
|
|
class="scroll-container"
|
|
|
|
<view class="m-info g_p_20 g_pt_12 g_pb_0 g_bg_f g_position_rela" hover-class="none" style="margin-top: 0; border-radius: 8px 8px 0 0">
|
|
|
|
:scroll-y="true"
|
|
|
|
<view class="g_flex_row_start">
|
|
|
|
:refresher-enabled="false"
|
|
|
|
<view class="g_w_71">
|
|
|
|
:refresher-triggered="false"
|
|
|
|
<view class="g_position_abso g_p_4 g_radius_50 g_bg_f" style="top: -20px">
|
|
|
|
@touchstart="onTouchStart"
|
|
|
|
<g-panel-image :radius="50" :size="128" :url="info.logo" />
|
|
|
|
@touchmove="onTouchMove"
|
|
|
|
</view>
|
|
|
|
@touchend="onTouchEnd"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<view class="background-container"
|
|
|
|
|
|
|
|
style="width: 100%;overflow: hidden;"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<view class="background-container"
|
|
|
|
|
|
|
|
style="width: 100%;overflow: hidden;"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
<view class="u-navbar-fixed"
|
|
|
|
|
|
|
|
:style="{
|
|
|
|
|
|
|
|
'background-image': 'url(https://matripe-cms.oss-cn-beijing.aliyuncs.com/dailibaoming/v3/mbg.jpg)',
|
|
|
|
|
|
|
|
'background-size': '100% 100%',
|
|
|
|
|
|
|
|
'width':'calc(100vw + ' + backgroundScale + 'px)',
|
|
|
|
|
|
|
|
'height': 'calc(' + (100/1.78).toFixed(2) + 'vw + ' + backgroundScale + 'px)',
|
|
|
|
|
|
|
|
'zoom': (1 + backgroundScale * 0.005)
|
|
|
|
|
|
|
|
}"
|
|
|
|
|
|
|
|
>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="g_flex_1 g_ml_11">
|
|
|
|
</view>
|
|
|
|
<view class="g_flex_row_between flex_center">
|
|
|
|
</view>
|
|
|
|
<view class="g_flex_row_start flex_center" style="line-height: 22px">
|
|
|
|
<div class="con-obj" style="background-color: #caf1e0 !important"
|
|
|
|
<view class="g_flex_none g_ell_1 g_fs_18 g_fw_bold g_c_3" style="max-width: 300rpx">{{ info.fullName || info.agencyName || "-" }}</view>
|
|
|
|
>
|
|
|
|
|
|
|
|
<view class="m-info g_p_20 g_pt_12 g_pb_0 g_bg_f g_position_rela" hover-class="none" style="margin-top: 0; border-radius: 8px 8px 0 0">
|
|
|
|
|
|
|
|
<view class="g_flex_row_start">
|
|
|
|
|
|
|
|
<view class="g_w_71">
|
|
|
|
|
|
|
|
<view class="g_position_abso g_p_4 g_radius_50 g_bg_f" style="top: -20px">
|
|
|
|
|
|
|
|
<g-panel-image :radius="50" :size="128" :url="info.logo" />
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<view class="g_flex_1 g_ml_11">
|
|
|
|
|
|
|
|
<view class="g_flex_row_between flex_center">
|
|
|
|
|
|
|
|
<view class="g_flex_row_start flex_center" style="line-height: 22px">
|
|
|
|
|
|
|
|
<view class="g_flex_none g_ell_1 g_fs_18 g_fw_bold g_c_3" style="max-width: 300rpx">{{ info.fullName || info.agencyName || "-" }}</view>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="g_flex_row_start flex_center g_mt_18 g_fs_14 g_c_8" hover-class="thover" @click="goMore">
|
|
|
|
<view class="g_flex_row_start flex_center g_mt_18 g_fs_14 g_c_8" hover-class="thover" @click="goMore">
|
|
|
|
<view class>{{ info.agencyName || info.fullName || "-" }}</view>
|
|
|
|
<view class>{{ info.agencyName || info.fullName || "-" }}</view>
|
|
|
|
<i class="iconfont icon-gengduo11" style="line-height: 22px; font-size: 10px"></i>
|
|
|
|
<i class="iconfont icon-gengduo11" style="line-height: 22px; font-size: 10px"></i>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<div style>
|
|
|
|
<div style>
|
|
|
|
<div class="g_pt_12" style="height: 100%">
|
|
|
|
<div class="g_pt_12" style="height: 100%">
|
|
|
|
<div class="g_flex_row_between">
|
|
|
|
<div class="g_flex_row_between">
|
|
|
|
<div v-for="(item, index) in numSlot" :key="index" class="g_flex_row_center g_position_rela">
|
|
|
|
<div v-for="(item, index) in numSlot" :key="index" class="g_flex_row_center g_position_rela">
|
|
|
|
<div class="g_flex_row_center flex_end">
|
|
|
|
<div class="g_flex_row_center flex_end">
|
|
|
|
<div class="g_c_3 g_fw_600 g_mr_2 g_fs_20" style="line-height: 1">{{ item.num }}</div>
|
|
|
|
<div class="g_c_3 g_fw_600 g_mr_2 g_fs_20" style="line-height: 1">{{ item.num }}</div>
|
|
|
|
<div class="g_fs_12 g_c_6 g_flex_column_end">{{ item.name }}</div>
|
|
|
|
<div class="g_fs_12 g_c_6 g_flex_column_end">{{ item.name }}</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="g_pt_12 g_fs_14" style="height: 100%">{{ info.agencyDesp }}</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="g_pt_12 g_fs_14" style="height: 100%">{{ info.agencyDesp }}</div>
|
|
|
|
<div class="g_h_10"></div>
|
|
|
|
</div>
|
|
|
|
<div class>
|
|
|
|
<div class="g_h_10"></div>
|
|
|
|
<quickLogin @successLogin="successLogin" v-if="!isLogin">
|
|
|
|
<div class>
|
|
|
|
<div style="width: calc(100vw - 40px)" class>
|
|
|
|
<quickLogin @successLogin="successLogin" v-if="!isLogin">
|
|
|
|
<g-button btnText="申请关注" size="auto" type="primary" class></g-button>
|
|
|
|
<div style="width: calc(100vw - 40px)" class>
|
|
|
|
|
|
|
|
<g-button btnText="申请关注" size="auto" type="primary" class></g-button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</quickLogin>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="isSelf">
|
|
|
|
|
|
|
|
<!-- <g-button btnText="不能关注自己" size="auto" type="disabled"></g-button> -->
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- -->
|
|
|
|
|
|
|
|
<div v-else>
|
|
|
|
|
|
|
|
<div class="g_flex_row_center" v-if="info.recordStatus == 1">
|
|
|
|
|
|
|
|
<!-- 已关注 1 -->
|
|
|
|
|
|
|
|
<!-- class="g_mr_10" -->
|
|
|
|
|
|
|
|
<div style="width: calc(100vw - 40px)" @click="handleCancel">
|
|
|
|
|
|
|
|
<g-button btnText="已关注发单号" size="auto" type="disabled" class></g-button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- <div style="width:calc((100vw - 50px) / 2);">
|
|
|
|
</quickLogin>
|
|
|
|
<g-button btnText="联系客服" size="auto" type="disabled" class></g-button>
|
|
|
|
|
|
|
|
</div>-->
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="info.recordStatus == 2" @click="handleCancel">
|
|
|
|
|
|
|
|
<g-button btnText="互相关注" size="auto" type="disabled" class></g-button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="(info.recordStatus == 3 || info.recordStatus == 4) && !isSelf">
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="isSelf">
|
|
|
|
<g-button btnText="申请关注" size="auto" type="primary" class @clickBtn="handleSubmit"></g-button>
|
|
|
|
<!-- <g-button btnText="不能关注自己" size="auto" type="disabled"></g-button> -->
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- -->
|
|
|
|
<!-- -->
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="info.recordStatus == 5">
|
|
|
|
<div v-else>
|
|
|
|
<g-button btnText="申请中" icon="icon-time-circle g_mr_4" size="auto" type="disabled" class></g-button>
|
|
|
|
<div class="g_flex_row_center" v-if="info.recordStatus == 1">
|
|
|
|
</div>
|
|
|
|
<!-- 已关注 1 -->
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="info.recordStatus == 6 && !isSelf">
|
|
|
|
<!-- class="g_mr_10" -->
|
|
|
|
<g-button btnText="申请关注" size="auto" type="primary" class @clickBtn="handleSubmit"></g-button>
|
|
|
|
<div style="width: calc(100vw - 40px)" @click="handleCancel">
|
|
|
|
|
|
|
|
<g-button btnText="已关注发单号" size="auto" type="disabled" class></g-button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- <div style="width:calc((100vw - 50px) / 2);">
|
|
|
|
|
|
|
|
<g-button btnText="联系客服" size="auto" type="disabled" class></g-button>
|
|
|
|
|
|
|
|
</div>-->
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="info.recordStatus == 2" @click="handleCancel">
|
|
|
|
|
|
|
|
<g-button btnText="互相关注" size="auto" type="disabled" class></g-button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="(info.recordStatus == 3 || info.recordStatus == 4) && !isSelf">
|
|
|
|
|
|
|
|
<g-button btnText="申请关注" size="auto" type="primary" class @clickBtn="handleSubmit"></g-button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- -->
|
|
|
|
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="info.recordStatus == 5">
|
|
|
|
|
|
|
|
<g-button btnText="申请中" icon="icon-time-circle g_mr_4" size="auto" type="disabled" class></g-button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div style="width: calc(100vw - 40px)" v-else-if="info.recordStatus == 6 && !isSelf">
|
|
|
|
|
|
|
|
<g-button btnText="申请关注" size="auto" type="primary" class @clickBtn="handleSubmit"></g-button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<div class="g_bg_f g_pt_8">
|
|
|
|
|
|
|
|
<!-- <u-tabs bg-color="transparent" from="index" gutter="20" :list="tabInfo.list" :is-scroll="true" :current="tabInfo.active" active-color="#000" bar-width="64" bar-height="6" @change="handleUpdateTab" font-size="32" duration="0.05" height="56"></u-tabs> -->
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<div class="g_bg_f g_pt_8">
|
|
|
|
|
|
|
|
<!-- <u-tabs bg-color="transparent" from="index" gutter="20" :list="tabInfo.list" :is-scroll="true" :current="tabInfo.active" active-color="#000" bar-width="64" bar-height="6" @change="handleUpdateTab" font-size="32" duration="0.05" height="56"></u-tabs> -->
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 基本信息 -->
|
|
|
|
<!-- 基本信息 -->
|
|
|
|
<div class="g_h_all">
|
|
|
|
<div class="g_h_all">
|
|
|
|
<div v-if="jobDetailShow || jobDetailShow == 'true'">
|
|
|
|
<div v-if="jobDetailShow || jobDetailShow == 'true'">
|
|
|
|
<!-- 正常职位 -->
|
|
|
|
<!-- 正常职位 -->
|
|
|
|
<div class="m-detail">
|
|
|
|
<div class="m-detail">
|
|
|
|
<div class="g_h_10"></div>
|
|
|
|
<div class="g_h_10"></div>
|
|
|
|
<g-list-job :recordStatus="info.recordStatus" @successLogin="jobLogin" :isSelf="isSelf" :showShare="false" :list="query.list" :loading="loading" :speed="speed" :isShowLoginBtn="isLogin ? false : true" :query="query" emptyText="暂无职位" emptySubText=" " />
|
|
|
|
<g-list-job :recordStatus="info.recordStatus" @successLogin="jobLogin" :isSelf="isSelf" :showShare="false" :list="query.list" :loading="loading" :speed="speed" :isShowLoginBtn="isLogin ? false : true" :query="query" emptyText="暂无职位" emptySubText=" " />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div v-if="info.himSeeBtn == 0" style="padding-top: 260rpx">
|
|
|
|
<div v-if="info.himSeeBtn == 0" style="padding-top: 260rpx">
|
|
|
|
<g-empty text="您关注的发单号暂未发布职位" />
|
|
|
|
<g-empty text="您关注的发单号暂未发布职位" />
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</scroll-view>
|
|
|
|
<!-- 发布职位确认框 -->
|
|
|
|
<!-- 发布职位确认框 -->
|
|
|
|
<u-modal v-model="submitConfirm" width="90%" negativeTop="150" confirmText="发布职位" :showTitle="false" :confirmStyle="{ color: '#576b95', 'font-weight': 600 }" :cancelStyle="{ color: '#000', 'font-weight': 600 }" :showConfirmButton="false">
|
|
|
|
<u-modal v-model="submitConfirm" width="90%" negativeTop="150" confirmText="发布职位" :showTitle="false" :confirmStyle="{ color: '#576b95', 'font-weight': 600 }" :cancelStyle="{ color: '#000', 'font-weight': 600 }" :showConfirmButton="false">
|
|
|
|
<div class="g_fs_17 g_text_c">
|
|
|
|
<div class="g_fs_17 g_text_c">
|
|
|
|
@ -131,6 +159,9 @@ export default {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
numSlot: [],
|
|
|
|
numSlot: [],
|
|
|
|
fromShare: false,
|
|
|
|
fromShare: false,
|
|
|
|
|
|
|
|
background:{
|
|
|
|
|
|
|
|
backgroundColor: 'transparent',
|
|
|
|
|
|
|
|
},
|
|
|
|
navColor: "rgb(255,255,255,0)",
|
|
|
|
navColor: "rgb(255,255,255,0)",
|
|
|
|
isLogin: null,
|
|
|
|
isLogin: null,
|
|
|
|
isShowMore: true,
|
|
|
|
isShowMore: true,
|
|
|
|
@ -205,6 +236,13 @@ export default {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
disabled: false,
|
|
|
|
disabled: false,
|
|
|
|
inviteUserId: 0,
|
|
|
|
inviteUserId: 0,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
refreshing: false,
|
|
|
|
|
|
|
|
mtScroll:0,
|
|
|
|
|
|
|
|
backgroundScale: 0, // 背景缩放比例
|
|
|
|
|
|
|
|
startY: 0, // 触摸起始位置
|
|
|
|
|
|
|
|
moveY: 0, // 触摸移动位置
|
|
|
|
|
|
|
|
isTouching: false, // 是否正在触摸
|
|
|
|
};
|
|
|
|
};
|
|
|
|
},
|
|
|
|
},
|
|
|
|
onPageScroll(e) {
|
|
|
|
onPageScroll(e) {
|
|
|
|
@ -284,6 +322,62 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
methods: {
|
|
|
|
|
|
|
|
// 触摸开始事件
|
|
|
|
|
|
|
|
onTouchStart(e) {
|
|
|
|
|
|
|
|
this.mtScroll = 0;
|
|
|
|
|
|
|
|
this.backgroundScale = 0;
|
|
|
|
|
|
|
|
this.isTouching = true;
|
|
|
|
|
|
|
|
if (e.touches && e.touches.length > 0) {
|
|
|
|
|
|
|
|
this.startY = e.touches[0].pageY;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 触摸移动事件
|
|
|
|
|
|
|
|
onTouchMove(e) {
|
|
|
|
|
|
|
|
if (!this.isTouching) return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (e.touches && e.touches.length > 0) {
|
|
|
|
|
|
|
|
this.moveY = e.touches[0].pageY;
|
|
|
|
|
|
|
|
const query = uni.createSelectorQuery().in(this);
|
|
|
|
|
|
|
|
query.select('.scroll-container').boundingClientRect(data => {
|
|
|
|
|
|
|
|
if (data) {
|
|
|
|
|
|
|
|
const scrollTop = data.scrollTop || 0;
|
|
|
|
|
|
|
|
if (scrollTop <= 0 && this.moveY > this.startY) {
|
|
|
|
|
|
|
|
const pullDistance = this.moveY - this.startY;
|
|
|
|
|
|
|
|
this.backgroundScale++;
|
|
|
|
|
|
|
|
this.mtScroll++;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}).exec();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 触摸结束事件
|
|
|
|
|
|
|
|
onTouchEnd() {
|
|
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
|
|
that.isTouching = false;
|
|
|
|
|
|
|
|
const animationDuration = 300; // 动画持续时间(ms)
|
|
|
|
|
|
|
|
const frameDuration = 16; // 每帧间隔(约60fps)
|
|
|
|
|
|
|
|
const totalFrames = Math.ceil(animationDuration / frameDuration);
|
|
|
|
|
|
|
|
let currentFrame = 0;
|
|
|
|
|
|
|
|
const startScale = that.backgroundScale;
|
|
|
|
|
|
|
|
const startScroll = that.mtScroll;
|
|
|
|
|
|
|
|
const animate = () => {
|
|
|
|
|
|
|
|
currentFrame++;
|
|
|
|
|
|
|
|
const progress = Math.min(currentFrame / totalFrames, 1);
|
|
|
|
|
|
|
|
const easeOutQuart = 1 - Math.pow(1 - progress, 4);
|
|
|
|
|
|
|
|
that.backgroundScale = startScale * (1 - easeOutQuart);
|
|
|
|
|
|
|
|
that.mtScroll = startScroll * (1 - easeOutQuart);
|
|
|
|
|
|
|
|
if (progress < 1) {
|
|
|
|
|
|
|
|
setTimeout(animate, frameDuration);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
that.backgroundScale = 0;
|
|
|
|
|
|
|
|
that.mtScroll = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
animate();
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
goHome() {
|
|
|
|
goHome() {
|
|
|
|
if (this.fromShare) {
|
|
|
|
if (this.fromShare) {
|
|
|
|
uni.switchTab({
|
|
|
|
uni.switchTab({
|
|
|
|
@ -733,4 +827,7 @@ export default {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.scroll-area {
|
|
|
|
|
|
|
|
height: 100vh;
|
|
|
|
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</style>
|
|
|
|
|