You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
apply-assistant-v3/root/detail/userShare.vue

656 lines
21 KiB
Vue

<template>
<div class="p-root-detail-user g_w_all g_bg_page g_kuaishou">
5 months ago
<u-navbar backIconColor="#333" :borderBottom="false" :immersive="true" :customBack="goHome" :background="{background:navColor}" backIconName="home"></u-navbar>
5 months ago
<view class="g_h_136 u-navbar-fixed" style="background-color: #48aaf9 !important"></view>
<div class style="background-color: #48aaf9 !important">
<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">
5 months ago
<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 class="g_flex_row_start flex_center g_mt_18 g_fs_14 g_c_8" hover-class="thover" @click="goPage('/root/person/info?active=1')">
<view class>{{ info.agencyName || info.fullName || "-" }}</view>
<i class="iconfont icon-gengduo11" style="line-height: 22px; font-size: 10px"></i>
</view>
5 months ago
<div style>
<div class="g_pt_12" style=" height: 100%">
<div class="g_flex_row_between">
<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_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>
</div>
</div>
</div>
<div class="g_pt_12 g_fs_14" style=" height: 100%">{{info.agencyDesp}}</div>
</div>
<div class="g_h_10"></div>
<div class>
<quickLogin @successLogin="successLogin" v-if="!agencyInfo.id">
5 months ago
<div style="width: calc(100vw - 40px)" class>
<g-button btnText="申请关注" size="auto" type="primary" class></g-button>
</div>
</quickLogin>
5 months ago
<div style="width: calc(100vw - 40px)" v-else-if="isSelf">
<g-button btnText="不能关注自己" size="auto" type="disabled"></g-button>
</div>
<!-- -->
<div v-else>
5 months ago
<div class="g_flex_row_center" v-if="info.recordStatus == 1">
<!-- 已关注 1 -->
5 months ago
<!-- class="g_mr_10" -->
5 months ago
<div style="width:calc(100vw - 40px);">
5 months ago
<g-button btnText="已关注发单号" size="auto" type="disabled" class></g-button>
</div>
5 months ago
<!-- <div style="width:calc((100vw - 50px) / 2);">
5 months ago
<g-button btnText="联系客服" size="auto" type="disabled" class></g-button>
5 months ago
</div>-->
</div>
5 months ago
5 months ago
<div style="width: calc(100vw - 40px)" v-else-if="info.recordStatus == 2">
5 months ago
<g-button btnText="互相关注" size="auto" type="disabled" class></g-button>
</div>
5 months ago
5 months ago
<div style="width: calc(100vw - 40px)" v-else-if="(info.recordStatus == 3 || info.recordStatus == 4) && !isSelf">
5 months ago
<g-button btnText="申请关注" size="auto" type="primary" class @clickBtn="handleSubmit"></g-button>
</div>
5 months ago
<!-- -->
5 months ago
<div style="width: calc(100vw - 40px)" v-else-if="info.recordStatus == 5">
5 months ago
<g-button btnText="申请中" icon="icon-time-circle g_mr_4" size="auto" type="disabled" class></g-button>
</div>
5 months ago
<div style="width: calc(100vw - 40px)" v-else-if="info.recordStatus == 6 && !isSelf">
5 months ago
<g-button btnText="申请关注" size="auto" type="primary" class @clickBtn="handleSubmit"></g-button>
</div>
</div>
</div>
</view>
<div class="g_bg_f g_pt_8">
5 months ago
<!-- <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>
<!-- 基本信息 -->
5 months ago
<div class="g_h_all">
<div v-if="jobDetailShow || jobDetailShow == 'true'">
<!-- 正常职位 -->
5 months ago
<div class="m-detail">
<div class="g_h_10"></div>
5 months ago
<g-list-job :recordStatus="info.recordStatus" :showShare="false" :list="query.list" :loading="loading" :speed="speed" :query="query" emptyText="暂无职位" emptySubText=" " />
</div>
5 months ago
<div v-if="info.himSeeBtn == 0" style="padding-top: 260rpx">
<g-empty text="您关注的发单号暂未发布职位" />
</div>
</div>
</div>
</div>
<!-- 发布职位确认框 -->
<u-modal v-model="submitConfirm" width="90%" negativeTop="52" 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 style="padding:42px 24px 36px ">
<div class="g_text_c g_fw_600 g_c_0">创建团队/企业</div>
5 months ago
<div class="g_text_c g_c_6 g_mb_16 g_mt_16">创建团队后可关注发单号浏览职位及工单报名</div>
<div class="g_fs_14 g_pl_12 g_bg_f2 g_border_d g_radius_4 g_flex_row_start flex_center">
<u-input v-model="agencyInfo.fullName" :customStyle="{ color: disabled ? '#999' : '#333',fontSize:'17px' }" :disabled="disabled" height="96" placeholder="请填写团队/企业简称"></u-input>
</div>
</div>
<div class="g_flex_row_center flex_center g_fw_600 g_border_e_t">
<div class="g_flex_1 g_h_50 g_text_c g_c_0 g_border_e_r" hover-class="thover" @click="submitConfirm = false" style="line-height: 50px">取消</div>
<div class="g_flex_1 g_h_50 g_text_c g_c_sub" hover-class="thover" @click="finallySubmit" style="line-height: 50px">确定</div>
</div>
</div>
</u-modal>
</div>
</template>
<script>
import quickLogin from '../../components/quickLogin.vue'
export default {
components: {
quickLogin,
},
onReady() {
this.G.setNavStyle()
},
// onShareAppMessage(){
// return this.G.shareFun();
// },
data() {
return {
numSlot: [],
5 months ago
navColor: 'rgb(255,255,255,0)',
isLogin: null,
submitConfirm: false,
pageSpeed: 0,
agencyId: 0,
loading: true,
keyword: '', // 搜索内容
speed: -1,
query: {
page: 1,
size: 50,
list: [],
isFinish: -1,
},
agencyInfo: {},
info: {
avatar: '',
agencyName: '',
jobUpdateNum: 0,
},
uid: 0,
type: 0,
bindid: 0,
dataArray: [
{
name: '职位',
num: 120,
},
{
name: '在招',
num: 120,
},
{
name: '关注',
num: 108,
},
{
name: '粉丝',
num: 250,
},
],
from: '',
jobDetailShow: true,
loginInfo: {},
isSelf: false, // 是否是自己的信息判断
scene: '',
tabInfo: {
list: [
{
name: '最新',
num: 0,
tip: 0,
classify: 2,
},
{
name: '最热',
num: 0,
tip: 1,
classify: 3,
},
{
name: '专属',
num: 0,
tip: 2,
classify: 1,
},
],
active: 0,
},
disabled: false,
inviteUserId: 0,
}
},
5 months ago
onPageScroll(e) {
if (e.scrollTop <= 100) {
this.navColor = `rgb(255,255,255,${e.scrollTop / 50})`
}
},
onLoad(options) {
console.log('用户详情页:', options, ' version:', 1)
this.loginId = uni.getStorageSync('apply-agencyId')
if (this.loginId == options.id && options.id) {
this.isSelf = true
}
if (options.scene) {
var sceneStr = decodeURIComponent(options.scene)
var sceneJson = this.G.sceneToJson(sceneStr)
this.scene = options.scene
console.log('sceneJson===', sceneJson)
this.inviteUserId = sceneJson.id.split('_')[1] //被关注团队的邀请人id
this.uid = sceneJson.id.split('_')[0] // 被关注团队的id
} else {
this.uid = options.id
}
this.type = options.type ? options.type : ''
this.jobDetailShow = options.jobDetailShow || true
this.from = options.shareForm
if (options.bindid) {
this.bindid = options.bindid
}
5 months ago
// this.getDetail()
},
onShow() {
let that = this
that.isLogin = '' // uni.getStorageSync("apply-token");
this.loginInfo = uni.getStorageSync('apply-userinfo')
that.G.Get('/checkUserLogin', {}, (res) => {
console.log('checkUserLogin', res)
if (res) {
that.getAgencyInfo().then(() => {
that.getAgencyById()
})
} else {
that.getAgencyById()
}
})
// if (!that.isLogin) {
// that.loading = false;
// that.speed = 0;
// } else {
// }
},
5 months ago
// onReachBottom() {
// let that = this
// this.G.isLogin()
// if (this.G.isLogin()) {
// if (that.query.isFinish == -1 || that.query.isFinish == that.query.size) {
// that.query.page++
// that.getList('concat')
// }
// }
// },
methods: {
5 months ago
goHome() {
uni.switchTab({
url: '/pages/home/index',
})
},
getAgencyInfo() {
let that = this
return new Promise((reso, reject) => {
that.G.Get(that.api.login_agencyInfo, {}, (aRes) => {
console.log('获取团队信息:', aRes)
that.disabled = aRes.agency.fullName ? true : false
that.agencyInfo = { ...aRes.agency, fullName: aRes.agency.fullName ? aRes.agency.fullName : that.agencyInfo.fullName }
uni.setStorageSync('agencyInfo', aRes.agency)
setTimeout(() => {
reso()
}, 200)
})
})
},
getDetail() {
let that = this
5 months ago
// 123123
// this.G.isLogin();
// if (this.G.isLogin()) {
that.pageSpeed = 0
that.G.Get(
that.api.bind_enterpriseDetail + '/' + that.uid,
{
agencyId: that.uid,
type: that.type,
},
(res) => {
console.log('获取详情:', res, ' -- ', that.uid)
that.pageSpeed = 1
that.info = res
if (!that.uid) {
if (that.loginInfo.agencyId == that.info.agencyId) {
that.isSelf = true
}
}
if (that.info.supplierAccount == 0) {
that.isShowMore = false
}
that.agencyId = res.agencyId
that.numSlot = [
{
name: '总职位',
num: that.info.jobNum,
},
{
name: '在招',
num: that.info.recruitmentJobNum,
},
{
name: '关注',
num: that.info.himSee,
},
{
name: '粉丝',
num: that.info.downNum,
},
]
that.getList()
}
)
// }
},
goDetailUser() {
let that = this
5 months ago
return false
this.G.isLogin()
if (this.G.isLogin()) {
if (this.info.recordStatus == 1 || this.info.recordStatus == 2) {
let params = {
id: that.info.agencyId,
type: that.type,
bindid: that.info.id,
isShowMore: true,
isShowJob: true,
}
uni.navigateTo({
url: '/root/detail/user?' + that.G.objToStr(params),
})
} else {
if (that.isSelf) {
} else {
uni.showToast({
title: '关注发单号后才可查看详情',
icon: 'none',
})
}
}
}
},
5 months ago
setJobList(recordList, $type) {
let that = this
that.query.isFinish = recordList.length
recordList = that.G.toGetAddressv3(recordList)
recordList = that.G.toGetAge(recordList)
recordList = that.G.yijobCopy(recordList)
if ($type == 'init') {
that.query.list = []
that.query.list =
recordList.length > 0
? recordList.map((item, index) => {
return {
...item,
title: item.jobName,
address: item.district + item.age,
price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : that.G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay),
fuWuFei: that.G.setReturnFee(item.returnFee, item.returnFeeType),
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : '月薪',
gender: that.G.getGenderByMinAge(item),
logo: item.agencyLogo,
time: that.G.setDeadLine(item.updateTime, 'jiaofu'),
leafCateId: item.id,
// serverPrice: that.G.setReturnFee(item.returnFee, item.returnFeeType),
serverPrice: that.G.setReturnFee(item.agencyReturnFee, item.agencyReturnFeeType),
recruitmentSwitch: item.recruitment == 1 ? true : false,
recruitmentImage: item.recruitment,
isToday: item.today == 0 ? false : true,
active: 0,
}
})
: []
} else {
that.query.list = that.query.list.concat(
recordList.length > 0
? recordList.map((item, index) => {
return {
...item,
title: item.jobName,
address: item.district + item.age,
price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValue(item.salaryClassify, item.salaryClassifyValue) : that.G.getSalaryClassifyValue(item.salaryClassify, item.minMonthlyPay, item.maxMonthlyPay),
fuWuFei: that.G.setReturnFee(item.returnFee, item.returnFeeType),
gender: that.G.getGenderByMinAge(item),
logo: item.agencyLogo,
time: that.G.setDeadLine(item.updateTime, 'jiaofu'),
leafCateId: item.id,
// serverPrice: that.G.setReturnFee(item.returnFee, item.returnFeeType),
serverPrice: that.G.setReturnFee(item.agencyReturnFee, item.agencyReturnFeeType),
recruitmentSwitch: item.recruitment == 1 ? true : false,
recruitmentImage: item.recruitment,
isToday: item.today == 0 ? false : true,
active: 0,
}
})
: []
)
}
},
getDefault($type) {
let that = this
console.log('$type', $type)
this.G.isLogin()
if (this.G.isLogin()) {
that.G.Post(
that.api.job_list,
{
pageNum: that.query.page,
pageSize: that.query.size,
agencyId: that.agencyId,
},
(res) => {
console.log('resresresresresres', res)
if (res.recordCount == 0) {
that.loading = false
} else {
that.loading = true
}
that.speed = res.recordCount
5 months ago
that.setJobList(res.recordList, $type)
console.log('query.list', that.query.list)
}
)
}
},
checkLength(e) {
if (e.length == 0) {
this.keyword = ''
this.getList()
}
},
getList($type = 'init') {
let that = this
5 months ago
return
this.G.isLogin()
if (this.G.isLogin()) {
if (this.info.recordStatus == 1 || this.info.recordStatus == 2) {
that.getDefault($type)
}
}
},
goDetailJob($item) {
let that = this
5 months ago
return false
this.G.isLogin()
if (this.G.isLogin()) {
if (that.isSelf) {
uni.navigateTo({
url: '/root/detail/job?id=' + $item.leafCateId,
})
} else if (this.info.recordStatus == 1 || this.info.recordStatus == 2) {
uni.navigateTo({
url: '/root/detail/job?id=' + $item.leafCateId,
})
} else {
uni.showToast({
title: '关注发单号后才可查看详情',
icon: 'none',
})
}
}
},
inviteSubmit() {
let that = this
console.log('info', that.info)
// return;
uni.showModal({
title: '关注发单号',
content: '关注发单号后,您可以查看该账号职位的更新,确定要关注吗?',
confirmColor: '#576B95',
success(modalRes) {
if (modalRes.confirm) {
that.G.Post(
that.api.user_updateInviteId,
{
agencyIds: that.info.agencyId,
},
(res) => {
uni.showToast({
title: '关注成功',
})
setTimeout(() => {
that.getDetail()
}, 800)
}
)
} else if (modalRes.cancel) {
console.log('用户点击取消')
}
},
fail() {},
})
},
finallySubmit() {
let that = this
if (!this.agencyInfo.fullName) {
uni.showToast({
title: '请输入企业简称',
icon: 'none',
})
return
}
let _code = 1 // 账号搜索
if (this.from == 'friend') {
_code = 2 // 名片分享
} else {
if (this.scene) {
_code = 3 // 扫一扫
} else {
_code = 1 // 账号搜索
}
}
this.G.Get(this.api.bind_subscribeSubmit + '/' + that.uid, { agencyId: that.agencyInfo.id, agencyName: that.agencyInfo.fullName, source: _code, remark: ' ' }, (res) => {
uni.showToast({
title: '申请成功',
icon: 'none',
})
that.submitConfirm = false
uni.navigateTo({
url: '/root/person/inviteFollowSuccess',
})
reso()
// that.checkHasApply();
console.log(res)
})
},
handleSubmit() {
let that = this
this.G.isLogin()
if (this.G.isLogin()) {
// 根据参数,判断是名片打开还是其他页面打开
this.submitConfirm = true
return
}
},
handleSee(e) {
let that = this
this.G.isLogin()
if (this.G.isLogin()) {
that.G.Get(
that.api.bind_isSee + '/' + that.info.himSeeOperateId,
{
id: that.info.himSeeOperateId,
himSee: e ? 0 : 1,
},
() => {
uni.showToast({
icon: 'success',
title: '更新成功',
})
}
)
}
},
getAgencyById() {
let that = this
return new Promise((reso, reject) => {
this.G.Get(this.api.order_getAgencyByIdForApply, { agencyId: that.uid, inviteUserId: this.inviteUserId }, (res) => {
console.log('resresresresresres++++++++++++++', res)
5 months ago
that.pageSpeed = 1
that.info = res
that.agencyId = res.id
that.speed = res.jobList.length
that.setJobList(res.jobList)
if (res.id == that.agencyInfo.id) {
that.isSelf = true
}
5 months ago
that.numSlot = [
{
name: '总职位',
num: that.info.jobNum,
},
{
name: '在招',
num: that.info.recruitmentJobNum,
},
{
name: '关注',
num: that.info.himSee,
},
{
name: '粉丝',
num: that.info.downNum,
},
]
// that.getList()
reso()
})
})
},
successLogin(e) {
let that = this
console.log('successLogin', e)
this.getAgencyInfo().then(() => {
that.getAgencyById().then(() => {
5 months ago
if (that.info.recordStatus == 3 || that.info.recordStatus == 4 || that.info.recordStatus == 6) {
that.handleSubmit()
} else {
5 months ago
if (that.info.recordStatus == 5) {
uni.showToast({
title: '已发起关注申请, 正在等待通过',
icon: 'none',
})
}
}
})
})
},
handleUpdateTab() {},
},
}
</script>
<style lang="scss">
.p-root-detail-user {
}
.m-detail {
background: #ededed;
}
.m-info {
width: calc(100%);
margin: 0 auto;
.data-box {
.item {
width: 33.3333%;
}
}
}
</style>