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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="p-root-detail-user g_w_all g_bg_page g_kuaishou">
<u-navbar backIconColor="#333" :borderBottom="false" :immersive="true" :customBack="goHome" :background="{background:navColor}" backIconName="home"></u-navbar>
<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">
<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>
<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">
<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);">
<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">
<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>
</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 v-if="jobDetailShow || jobDetailShow == 'true'">
<!-- 正常职位 -->
<div class="m-detail">
<div class="g_h_10"></div>
<g-list-job :recordStatus="info.recordStatus" :showShare="false" :list="query.list" :loading="loading" :speed="speed" :query="query" emptyText="暂无职位" emptySubText=" " />
</div>
<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>
<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: [],
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,
}
},
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
}
// 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 {
// }
},
// 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: {
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
// 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
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',
})
}
}
}
},
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
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
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
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)
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
}
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(() => {
if (that.info.recordStatus == 3 || that.info.recordStatus == 4 || that.info.recordStatus == 6) {
that.handleSubmit()
} else {
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>