flat: 压缩图片,添加消息控制

This commit is contained in:
史典卓
2025-02-17 12:54:18 +08:00
parent 29cb92224b
commit dbefed8524
65 changed files with 4316 additions and 4214 deletions

102
App.vue
View File

@@ -1,35 +1,28 @@
<style lang="scss"> <style lang="scss">
/* 注意要写在第一行同时给style标签加入lang="scss"属性 */ /* 注意要写在第一行同时给style标签加入lang="scss"属性 */
@import "@/uni_modules/uview-ui/index.scss"; @import '@/uni_modules/uview-ui/index.scss';
</style> </style>
<script> <script>
import website from '@/config/website.js' import website from '@/config/website.js';
import { import { mapGetters } from 'vuex';
mapGetters import { GoLogin } from '@/untils/AxiosUtils.js';
} from 'vuex'
import {
GoLogin
} from '@/untils/AxiosUtils.js';
// #ifdef H5 // #ifdef H5
import { import { setPlatformByHostName } from '@/untils/customized.js';
setPlatformByHostName import { reject } from 'lodash';
} from '@/untils/customized.js'
import {
reject
} from 'lodash';
// #endif // #endif
export default { export default {
onLaunch: function (options) { onLaunch: function (options) {
this.$store.dispatch('InitArea') this.$store.dispatch('InitArea');
if (options.query.token) { if (options.query.token) {
this.tokenlogin(options.query.token).then(() => { this.tokenlogin(options.query.token).then(() => {
this.$store.dispatch('getUserLocation') this.$store.dispatch('getUserLocation');
this.$store.dispatch('getMobileIsCms') this.$store.dispatch('getNoticeState');
this.$store.dispatch('getResumeInfo') this.$store.dispatch('getMobileIsCms');
}) this.$store.dispatch('getResumeInfo');
});
} else { } else {
this.$store.dispatch('FedLogOut') this.$store.dispatch('FedLogOut');
} }
// if (options.query.token) { // if (options.query.token) {
// // uni.reLaunch({ // // uni.reLaunch({
@@ -45,7 +38,7 @@
// } // }
// #ifdef H5 // #ifdef H5
// 企业定制 // 企业定制
setPlatformByHostName(this.$store) setPlatformByHostName(this.$store);
// #endif // #endif
}, },
onShow: function () {}, onShow: function () {},
@@ -53,8 +46,8 @@
computed: { computed: {
...mapGetters(['news', 'auth']), ...mapGetters(['news', 'auth']),
allUnread() { allUnread() {
return this.news.allUnread return this.news.allUnread;
} },
}, },
mounted() { mounted() {
this.$config.showTitle && document.documentElement.style.setProperty('--hide-title', 'block'); this.$config.showTitle && document.documentElement.style.setProperty('--hide-title', 'block');
@@ -63,57 +56,60 @@
tokenlogin(token) { tokenlogin(token) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
uni.showLoading({ uni.showLoading({
title: '登录中' title: '登录中',
}) });
if (token) { if (token) {
const that = this const that = this;
this.$store.dispatch("LoginByUsername", { this.$store
.dispatch('LoginByUsername', {
username: 'admin', username: 'admin',
password: "admin", password: 'admin',
key: '', key: '',
code: '1111', code: '1111',
type: "account", type: 'account',
token: token, token: token,
tenantId: website.tenantId tenantId: website.tenantId,
}).then((resp) => {
this.$store.dispatch('refreshAuthState').then(() => {
uni.hideLoading()
resolve()
}) })
}).catch((err) => { .then((resp) => {
uni.hideLoading() this.$store.dispatch('refreshAuthState').then(() => {
uni.hideLoading();
resolve();
});
})
.catch((err) => {
uni.hideLoading();
}); });
} else { } else {
GoLogin() GoLogin();
}
})
} }
});
},
}, },
watch: { watch: {
allUnread(value) { allUnread(value) {
console.log('allUnread', value) console.log('allUnread', value);
if (!this.$api.haslogin()) {} else if (value > 0) { if (!this.$api.haslogin()) {
} else if (value > 0) {
uni.showTabBarRedDot({ uni.showTabBarRedDot({
index: 2 index: 2,
}) });
uni.$once('newsReadChange', () => { uni.$once('newsReadChange', () => {
uni.showTabBarRedDot({ uni.showTabBarRedDot({
index: 2 index: 2,
}) });
}) });
} else { } else {
uni.hideTabBarRedDot({ uni.hideTabBarRedDot({
index: 2 index: 2,
}) });
uni.$once('newsReadChange', () => { uni.$once('newsReadChange', () => {
uni.hideTabBarRedDot({ uni.hideTabBarRedDot({
index: 2 index: 2,
}) });
}) });
} }
}, },
} },
}; };
</script> </script>

View File

@@ -116,3 +116,9 @@ export const newCertification = (bakvalue, realName, idNumber, cardNumber, bankC
bankName bankName
} }
}); });
// 电话联系
export const getPhoneCountNumber = (params) => request({
url: "/api/jobslink-api/serve/phone",
method: 'get',
data: params
});

View File

@@ -27,7 +27,9 @@ export const contract = (params) => request({
export const labourUnionDetail = (no) => request({ export const labourUnionDetail = (no) => request({
url: "/api/jobslink-api/doc/jkLabourUnionAppl/list", url: "/api/jobslink-api/doc/jkLabourUnionAppl/list",
method: 'get', method: 'get',
params:{no} params: {
no
}
}); });
//提交会员申请 //提交会员申请
export const saveApplication = (labourunionId, applType, applComment) => { export const saveApplication = (labourunionId, applType, applComment) => {
@@ -35,7 +37,11 @@ export const saveApplication = (labourunionId,applType,applComment) =>{
return request({ return request({
url: "/api/jobslink-api/doc/jkLabourUnionDetail/save", url: "/api/jobslink-api/doc/jkLabourUnionDetail/save",
method: 'post', method: 'post',
data:{labourunionId,applType,applComment} data: {
labourunionId,
applType,
applComment
}
}); });
} }
@@ -43,5 +49,7 @@ export const saveApplication = (labourunionId,applType,applComment) =>{
export const applicationInfo = (no) => request({ export const applicationInfo = (no) => request({
url: "/api/jobslink-api/doc/jkLabourUnionDetail/list", url: "/api/jobslink-api/doc/jkLabourUnionDetail/list",
method: 'get', method: 'get',
params:{no} params: {
no
}
}); });

View File

@@ -73,3 +73,13 @@ export const mobileIsCms = () => request({
url: '/api/jobslink-api/mobile/isCms', url: '/api/jobslink-api/mobile/isCms',
method: 'get' method: 'get'
}) })
export const noticeIsEnable = () => request({
url: "/api/jobslink-api/desk/notice/isEnable",
method: 'get',
});
export const setNoticeIsEnable = (state) => request({
url: "/api/jobslink-api/desk/notice/isEnable/" + state,
method: 'PUT',
});

View File

@@ -78,6 +78,11 @@
投诉建议 投诉建议
<image src="../../static/img/right.svg" mode=""></image> <image src="../../static/img/right.svg" mode=""></image>
</view> </view>
<view class="btnList">
<image src="../../static/img/vip.svg" mode=""></image>
消息提醒
<switch class="imgswitch" :checked="user.isEnbleNotice" @change="switch1Change" />
</view>
<template v-if="user.userIsCms"> <template v-if="user.userIsCms">
<view class="btnList" @click="navTo('/pageMy/admin/check')"> <view class="btnList" @click="navTo('/pageMy/admin/check')">
<image src="../../static/img/check1.png" mode=""></image> <image src="../../static/img/check1.png" mode=""></image>
@@ -160,6 +165,13 @@ export default {
// this.labourUnionInfoInit() // this.labourUnionInfoInit()
}, },
methods: { methods: {
switch1Change(e) {
if (e.detail.value) {
this.$store.dispatch('setNoticeOpen');
} else {
this.$store.dispatch('setNoticeClose');
}
},
labourUnionInfoInit() { labourUnionInfoInit() {
labourUnionInfo().then((e) => { labourUnionInfo().then((e) => {
this.federationStatus = e.data.data.joined; this.federationStatus = e.data.data.joined;
@@ -247,6 +259,11 @@ page {
margin-right: 0; margin-right: 0;
} }
.imgswitch {
margin-left: auto;
margin-right: 0;
}
.btnList image { .btnList image {
width: 52rpx; width: 52rpx;
height: 52rpx; height: 52rpx;

View File

@@ -9,46 +9,30 @@
</view> --> </view> -->
<view class="prolist"> <view class="prolist">
<!-- 开始时间{{dateFormat((info.stime))}}{{dateFormat((info.etime))}} --> <!-- 开始时间{{dateFormat((info.stime))}}{{dateFormat((info.etime))}} -->
开始时间{{dateFormat((info.stime)) || '暂无'}} 开始时间{{ dateFormat(info.stime) || '暂无' }}
</view> </view>
<!-- <view class="prolist"> <!-- <view class="prolist">
报名截止{{dateFormat((info.etimePub))}} 报名截止{{dateFormat((info.etimePub))}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">招聘人数{{ info.peopleNum || '暂无' }}</view>
招聘人数{{info.peopleNum || '暂无'}} <view class="prolist">行业类型{{ info.tradeNames || '暂无' }}</view>
</view> <view class="prolist">零工工种{{ info.worktypeNames || '暂无' }}</view>
<view class="prolist">
行业类型{{info.tradeNames || '暂无'}}
</view>
<view class="prolist">
零工工种{{info.worktypeNames || '暂无'}}
</view>
<!-- <view class="fee"> <!-- <view class="fee">
{{info.wage || '暂无'}} {{info.wage || '暂无'}}
</view> --> </view> -->
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">岗位要求</view>
岗位要求 <view class="prolist">
<view class="protype">年龄要求{{ age[info.ageDesc] || '暂无' }}</view>
</view> </view>
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">学历要求{{ education[info.education] || '暂无' }}</view>
年龄要求{{age[info.ageDesc] || '暂无'}}
</view>
</view> </view>
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">经验要求{{ experience[info.experienceDesc] || '暂无' }}</view>
学历要求{{education[info.education] || '暂无'}}
</view>
</view>
<view class="prolist">
<view class="protype">
经验要求{{experience[info.experienceDesc] || '暂无'}}
</view>
</view>
<view class="prolist proint" style="font-weight: bold;color:#333;">
岗位描述
</view> </view>
<view class="prolist proint" style="font-weight: bold; color: #333">岗位描述</view>
<view class="prolist description"> <view class="prolist description">
{{ info.missionDesc || '暂无' }} {{ info.missionDesc || '暂无' }}
</view> </view>
@@ -59,15 +43,16 @@
</view> </view>
</view> </view>
<!-- 技能标签 end --> <!-- 技能标签 end -->
<view v-if="info.jobSources" class="prolist"> <view v-if="info.jobSources" class="prolist">来源{{ info.jobSources || '暂无' }}</view>
来源{{info.jobSources || '暂无'}}
</view>
</view> </view>
<view class="head"> <view class="head">
<view style="display: flex;align-items: center;"> <view style="display: flex; align-items: center">
<image src="../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 20rpx;" mode=""> <image
</image> src="../../static/img/city.png"
<view style="font-size: 30rpx;">{{info.missionCompanyName || '暂无'}}</view> style="width: 40rpx; height: 40rpx; margin-right: 20rpx"
mode=""
></image>
<view style="font-size: 30rpx">{{ info.missionCompanyName || '暂无' }}</view>
</view> </view>
<!-- <view class="proname proneed"> <!-- <view class="proname proneed">
企业信息 企业信息
@@ -77,9 +62,7 @@
</view> --> </view> -->
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">地址</view>
地址
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
联系人{{info.callName}} 联系人{{info.callName}}
@@ -94,78 +77,121 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
用工单位地址{{info.companyAddress || '暂无'}} 用工单位地址{{info.companyAddress || '暂无'}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">注册地址{{ info.cityId || '暂无' }}</view>
注册地址{{info.cityId || '暂无'}} <view class="prolist">工作地址{{ info.address || '暂无' }}</view>
</view>
<view class="prolist">
工作地址{{info.address || '暂无'}}
</view>
<view class="map"> <view class="map">
<super-map ref="uMap" style="width: 100%;height: 100%;" :latitude="latitude" :longitude="longitude" <super-map
:open="true" :zoom="14" :min-zoom="10" :max-zoom="20" :MapUrl="$config.supperMap" :init="false" ref="uMap"
:flag-tip="false"></super-map> style="width: 100%; height: 100%"
:latitude="latitude"
:longitude="longitude"
:open="true"
:zoom="14"
:min-zoom="10"
:max-zoom="20"
:MapUrl="$config.supperMap"
:init="false"
:flag-tip="false"
></super-map>
</view> </view>
<!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> --> <!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> -->
</view> </view>
<view class="" style="height:200rpx;background-color: #f6f6f6;" v-if="isShow!=='0'"></view> <view class="" style="height: 200rpx; background-color: #f6f6f6" v-if="isShow !== '0'"></view>
<view class="btn" v-if="isShow !== '0' && status === 0"> <view class="btn" v-if="isShow !== '0' && status === 0">
<view @click="collect" <view
style="display: flex;align-items: center;margin-right: 10rpx;flex-direction: column;"> @click="collect"
<image v-if="collectStatus == 0" src="../../static/img/collect.png" style="width: 36rpx;height: 36rpx;" style="display: flex; align-items: center; margin-right: 10rpx; flex-direction: column"
mode=""></image> >
<image v-if="collectStatus == 1" src="../../static/img/collect_yes.png" <image
style="width: 36rpx;height: 36rpx;" mode=""></image> v-if="collectStatus == 0"
<view v-if="collectStatus == 0" style="font-size: 26rpx;color:#707070;margin-top:10rpx;">收藏</view> src="../../static/img/collect.png"
<view v-if="collectStatus == 1" style="font-size: 20rpx;color:#707070;margin-top:10rpx;">已收藏</view> style="width: 36rpx; height: 36rpx"
mode=""
></image>
<image
v-if="collectStatus == 1"
src="../../static/img/collect_yes.png"
style="width: 36rpx; height: 36rpx"
mode=""
></image>
<view v-if="collectStatus == 0" style="font-size: 26rpx; color: #707070; margin-top: 10rpx">收藏</view>
<view v-if="collectStatus == 1" style="font-size: 20rpx; color: #707070; margin-top: 10rpx">
已收藏
</view>
</view> </view>
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
<view @click="submit" class="bottombtn flexbtn" <view
:style="{backgroundColor: applyopen ? '#999999' : '#1B66FF'}"> @click="submit"
class="bottombtn flexbtn"
:style="{ backgroundColor: applyopen ? '#999999' : '#1B66FF' }"
>
申请 申请
</view> </view>
</view> </view>
<view class="btn" v-if="isShow !== '0' && status !== 0"> <view class="btn" v-if="isShow !== '0' && status !== 0">
<!-- <view class="bottombtn lookContract" @click="lookMask">查看合同</view> --> <!-- <view class="bottombtn lookContract" @click="lookMask">查看合同</view> -->
<view @click="collect" <view
style="display: flex;align-items: center;margin-right: 10rpx;flex-direction: column;"> @click="collect"
<image v-if="collectStatus == 0" src="../../static/img/collect.png" style="width: 36rpx;height: 36rpx;" style="display: flex; align-items: center; margin-right: 10rpx; flex-direction: column"
mode=""></image> >
<image v-if="collectStatus == 1" src="../../static/img/collect_yes.png" <image
style="width: 36rpx;height: 36rpx;" mode=""></image> v-if="collectStatus == 0"
<view v-if="collectStatus == 0" style="font-size: 26rpx;color:#707070;margin-top:10rpx;">收藏</view> src="../../static/img/collect.png"
<view v-if="collectStatus == 1" style="font-size: 20rpx;color:#707070;margin-top:10rpx;">已收藏</view> style="width: 36rpx; height: 36rpx"
mode=""
></image>
<image
v-if="collectStatus == 1"
src="../../static/img/collect_yes.png"
style="width: 36rpx; height: 36rpx"
mode=""
></image>
<view v-if="collectStatus == 0" style="font-size: 26rpx; color: #707070; margin-top: 10rpx">收藏</view>
<view v-if="collectStatus == 1" style="font-size: 20rpx; color: #707070; margin-top: 10rpx">
已收藏
</view>
</view> </view>
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
<view class="bottombtn disabledBtn flexbtn" style="border-radius: 45rpx;">已申请</view> <view class="bottombtn disabledBtn flexbtn" style="border-radius: 45rpx">已申请</view>
</view> </view>
<uniMask :maskShow="maskShow"> <uniMask :maskShow="maskShow">
<view class="contractMask"> <view class="contractMask">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="close" @click="close" style="top: 124rpx;">+</view> <view class="close" @click="close" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="close" @click="close">+</view> <view class="close" @click="close">+</view>
<!-- #endif --> <!-- #endif -->
<view style="height: 30px;"></view> <view style="height: 30px"></view>
<img :src="src" alt="" style="width:100%;height: 1000px;"> <img :src="src" alt="" style="width: 100%; height: 1000px" />
<view v-if="nextBtn" class="down" @click="next">下一步</view> <view v-if="nextBtn" class="down" @click="next">下一步</view>
</view> </view>
</uniMask> </uniMask>
<u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp"> <u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp">
<view style="height: 200rpx;padding: 20rpx 40rpx;"> <view style="height: 200rpx; padding: 20rpx 40rpx">
<view style="font-size: 28rpx;font-weight: bold;">重要提示</view> <view style="font-size: 28rpx; font-weight: bold">重要提示</view>
<view style="font-size: 24rpx;color:#707070;margin-top:10rpx;">为保障个人基本劳动权益建议通过平台用工的形式就业</view> <view style="font-size: 24rpx; color: #707070; margin-top: 10rpx">
<view style="text-align: center;font-size:28rpx;margin-top: 30rpx;"> {{ info.callName || '联系人'}} : 为保障个人基本劳动权益建议通过平台用工的形式就业
<span style="color: blue" v-if="info.callTel" </view>
@click="tools.onDialingPhoneNumber(info.callTel)">{{ info.callTel }}</span> <view style="text-align: center; font-size: 28rpx; margin-top: 30rpx">
{{ info.callName || '联系人' }} :
<span style="color: blue" v-if="info.callTel" @click="tools.onDialingPhoneNumber(info.callTel)">
{{ info.callTel }}
</span>
<span style="color: #333333" v-else>无联系方式</span> <span style="color: #333333" v-else>无联系方式</span>
</view> </view>
</view> </view>
@@ -174,7 +200,7 @@
<view v-else-if="showCode" class="codeSealBox"> <view v-else-if="showCode" class="codeSealBox">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="closeCode" @click="closeShowCode" style="top: 124rpx;">+</view> <view class="closeCode" @click="closeShowCode" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="closeCode" @click="closeShowCode">+</view> <view class="closeCode" @click="closeShowCode">+</view>
@@ -184,46 +210,26 @@
<view class="name">签名密码</view> <view class="name">签名密码</view>
<view class="tip">6位数字签名密码</view> <view class="tip">6位数字签名密码</view>
</view> </view>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code> <valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<view class="forget" @click="forget">忘记密码</view> <view class="forget" @click="forget">忘记密码</view>
</view> </view>
</template> </template>
<script> <script>
import { import { mapGetters } from 'vuex';
mapGetters import { missionDetail, missionDetailById, submit, getCollectState, updateCollectStatus } from '@/api/mission.js';
} from 'vuex' import { GoLogin } from '@/untils/AxiosUtils.js';
import { import { setRead } from '@/api/news.js';
missionDetail, import { checkPass, getPhoneCountNumber } from '@/api/auth.js';
missionDetailById,
submit,
getCollectState,
updateCollectStatus
} from '@/api/mission.js';
import {
GoLogin
} from '@/untils/AxiosUtils.js';
import {
setRead
} from '@/api/news.js';
import {
checkPass
} from '@/api/auth.js';
import dictionary from '@/common/textdata.js'; import dictionary from '@/common/textdata.js';
import { import { dateFormat } from '../../untils/format.js';
dateFormat import uniMask from '@/components/uni-mask/mask.vue';
} from "../../untils/format.js"; import uniPopup from '@/components/uni-popup/uni-popup.vue';
import uniMask from '@/components/uni-mask/mask.vue' import validCode from '@/components/p-valid-code/p-valid-code.vue';
import uniPopup from '@/components/uni-popup/uni-popup.vue' import { AddressToLocation } from '@/untils/addressToLocation.js';
import validCode from '@/components/p-valid-code/p-valid-code.vue' import { add } from 'lodash';
import {
AddressToLocation
} from '@/untils/addressToLocation.js'
import {
add
} from 'lodash';
export default { export default {
data() { data() {
return { return {
@@ -237,15 +243,18 @@
loading: false, loading: false,
latitude: 31.126855, //中心点 latitude: 31.126855, //中心点
longitude: 104.397894, longitude: 104.397894,
covers: [{ //marker标记位置 covers: [
{
//marker标记位置
id: 0, id: 0,
latitude: 31.126855, latitude: 31.126855,
longitude: 104.397894, longitude: 104.397894,
// width:30, // width:30,
// height:30, // height:30,
iconPath: '../../static/img/location.png' iconPath: '../../static/img/location.png',
}], },
missionNo: "", ],
missionNo: '',
isShow: '', isShow: '',
type: '', type: '',
id: '', id: '',
@@ -254,15 +263,16 @@
collectStatus: 0, // 收藏状态 collectStatus: 0, // 收藏状态
showPopUp: false, showPopUp: false,
isInvite: false, isInvite: false,
applyopen: false applyopen: false,
} };
}, },
components: { components: {
uniMask, uniMask,
validCode, validCode,
uniPopup uniPopup,
}, },
onLoad: function(option) { //option为object类型会序列化上个页面传递的参数 onLoad: function (option) {
//option为object类型会序列化上个页面传递的参数
// this.$store.dispatch('setAutograph') // this.$store.dispatch('setAutograph')
if (option.missionNo) { if (option.missionNo) {
this.missionNo = decodeURIComponent(option.missionNo); this.missionNo = decodeURIComponent(option.missionNo);
@@ -277,47 +287,47 @@
this.id = option.id; //消息id this.id = option.id; //消息id
} }
if (option.isInvite) { if (option.isInvite) {
this.isInvite = true this.isInvite = true;
} }
}, },
onShow: function () { onShow: function () {
this.showDetail = true this.showDetail = true;
this.getData(); this.getData();
}, },
onShareAppMessage(obj) { onShareAppMessage(obj) {
return { return {
title: this.info.missionTitle, title: this.info.missionTitle,
path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}` path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}`,
} };
}, },
methods: { methods: {
dateFormat, dateFormat,
collect() { collect() {
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
// console.log('收藏,取消收藏') // console.log('收藏,取消收藏')
const status = this.collectStatus == 0 ? 1 : 0; const status = this.collectStatus == 0 ? 1 : 0;
updateCollectStatus(this.info.id, status, 0).then(res => { updateCollectStatus(this.info.id, status, 0).then((res) => {
if (res.data.code == 200) { if (res.data.code == 200) {
this.getCollectStatus() this.getCollectStatus();
} }
}) });
}, },
callPhone() { async callPhone() {
getPhoneCountNumber();
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
this.showPopUp = true; this.showPopUp = true;
}, },
@@ -326,21 +336,22 @@
}, },
// 获取收藏状态 // 获取收藏状态
getCollectStatus() { getCollectStatus() {
getCollectState(this.info.id, 0).then(res => { getCollectState(this.info.id, 0).then((res) => {
// 0 未收藏1 已收藏 // 0 未收藏1 已收藏
// console.log(res) // console.log(res)
this.collectStatus = res.data.data; this.collectStatus = res.data.data;
}) });
}, },
getData: function () { getData: function () {
const self = this; const self = this;
let detail = null let detail = null;
if (this.isInvite) { if (this.isInvite) {
detail = missionDetailById detail = missionDetailById;
} else { } else {
detail = missionDetail detail = missionDetail;
} }
detail(self.missionNo).then(res => { detail(self.missionNo).then(
(res) => {
self.info = res.data.data; self.info = res.data.data;
self.status = res.data.data.detailStatus; self.status = res.data.data.detailStatus;
// AddressToLocation({ // AddressToLocation({
@@ -360,46 +371,47 @@
self.$refs.uMap.initMap({ self.$refs.uMap.initMap({
lat: self.info.lat, lat: self.info.lat,
lon: self.info.lon, lon: self.info.lon,
}) });
} }
if (res.data.data.missionNo.search('ZKRD') >= 0) { if (res.data.data.missionNo.search('ZKRD') >= 0) {
self.applyopen = true self.applyopen = true;
} }
self.showDetail = true; self.showDetail = true;
self.getCollectStatus(); self.getCollectStatus();
if (self.type === 1) { if (self.type === 1) {
// 设置已读 // 设置已读
setRead(self.id).then(res => { setRead(self.id).then((res) => {
self.$store.commit("SET_READ"); self.$store.commit('SET_READ');
})
}
}, error => {
console.log(error);
}); });
}
},
(error) => {
console.log(error);
}
);
}, },
submit: function () { submit: function () {
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
if (this.applyopen) return; if (this.applyopen) return;
const _that = this const _that = this;
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '请确认申请,申请后不能撤销', content: '请确认申请,申请后不能撤销',
success: function (res) { success: function (res) {
if (res.confirm) { if (res.confirm) {
if (_that.loading) return if (_that.loading) return;
const auth = _that.auth const auth = _that.auth;
const contractOn = _that.info.contractOn const contractOn = _that.info.contractOn;
const sealOk = _that.autograph && _that.autograph.data && _that.autograph const sealOk = _that.autograph && _that.autograph.data && _that.autograph.data.signSrcUrl;
.data.signSrcUrl
// if (sealOk) { // if (sealOk) {
// console.log('直接抢任务') // console.log('直接抢任务')
// this.submitTask() // this.submitTask()
@@ -410,86 +422,91 @@
// this.goSign(1) // this.goSign(1)
// } else // } else
if (contractOn && !sealOk) { if (contractOn && !sealOk) {
_that.goSign(2) _that.goSign(2);
} else if (sealOk && contractOn) { } else if (sealOk && contractOn) {
_that.nextBtn = true _that.nextBtn = true;
_that.lookMask() _that.lookMask();
} else { } else {
_that.submitTask() _that.submitTask();
} }
} else if (res.cancel) { } else if (res.cancel) {
_that.$api.msg('取消申请') _that.$api.msg('取消申请');
}
} }
},
}); });
}, },
// 查看合同 // 查看合同
lookMask() { lookMask() {
this.maskShow = true this.maskShow = true;
}, },
// 抢任务 // 抢任务
submitTask() { submitTask() {
submit(this.missionNo, 0).then(res => { submit(this.missionNo, 0).then(
uni.hideLoading() (res) => {
uni.hideLoading();
uni.showToast({ uni.showToast({
title: '操作成功', title: '操作成功',
icon: 'none' icon: 'none',
}); });
this.status = null; this.status = null;
this.loading = false this.loading = false;
}, error => { },
this.loading = false (error) => {
}); this.loading = false;
}
);
}, },
// 步骤 // 步骤
goSign(active) { goSign(active) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/projectInfo/signContract?active=${active}` url: `/pages/projectInfo/signContract?active=${active}`,
}) });
}, },
// 关闭弹窗 // 关闭弹窗
close() { close() {
this.maskShow = false this.maskShow = false;
}, },
// 合同下一步 // 合同下一步
next() { next() {
this.maskShow = false this.maskShow = false;
this.showDetail = false this.showDetail = false;
this.showCode = true this.showCode = true;
}, },
// 输入签名密码 // 输入签名密码
getInpCode(password) { getInpCode(password) {
uni.showLoading({ uni.showLoading({
title: "请求中..." title: '请求中...',
}) });
this.loading = true this.loading = true;
var obj = { var obj = {
pass: password pass: password,
} };
checkPass(obj).then(res => { checkPass(obj)
this.submitTask() .then((res) => {
this.closeShowCode() this.submitTask();
}).catch(err => { this.closeShowCode();
this.loading = false
}) })
.catch((err) => {
this.loading = false;
});
}, },
// 关闭签名密码弹窗 // 关闭签名密码弹窗
closeShowCode() { closeShowCode() {
this.showCode = false this.showCode = false;
this.showDetail = true this.showDetail = true;
}, },
// 忘记密码 // 忘记密码
forget() { forget() {
uni.navigateTo({ uni.navigateTo({
url: `/pageMy/setUserBase/seal/forget?forget=true` url: `/pageMy/setUserBase/seal/forget?forget=true`,
}) });
} },
}, },
computed: { computed: {
...mapGetters(['auth', 'autograph', 'area']), ...mapGetters(['auth', 'autograph', 'area']),
skillNames() { skillNames() {
if (this.info.skillNames) { if (this.info.skillNames) {
return this.info.skillNames.split(',') return this.info.skillNames.split(',');
} }
}, },
// cityNamed() { // cityNamed() {
@@ -500,8 +517,8 @@
// return '无' // return '无'
// } // }
// } // }
} },
} };
</script> </script>
<style lang="scss"> <style lang="scss">
@@ -512,7 +529,7 @@
position: absolute; position: absolute;
right: 36rpx; right: 36rpx;
top: 120rpx; top: 120rpx;
color: #1B66FF; color: #1b66ff;
transform: rotate(45deg); transform: rotate(45deg);
font-size: 40px; font-size: 40px;
} }
@@ -546,15 +563,14 @@
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400; font-weight: 400;
color: #5AA0FA; color: #5aa0fa;
line-height: 38rpx; line-height: 38rpx;
text-align: right; text-align: right;
} }
} }
.contractMask { .contractMask {
background-color: #FFFFFF; background-color: #ffffff;
margin: 30rpx; margin: 30rpx;
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
@@ -564,7 +580,7 @@
.close { .close {
width: 23px; width: 23px;
height: 23px; height: 23px;
color: #1B66FF; color: #1b66ff;
position: fixed; position: fixed;
right: 60rpx; right: 60rpx;
top: 60rpx; top: 60rpx;
@@ -580,10 +596,10 @@
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
text-align: center; text-align: center;
background: #1B66FF; background: #1b66ff;
font-size: 36rpx; font-size: 36rpx;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
} }
} }
@@ -597,7 +613,7 @@
} }
.bottombtn { .bottombtn {
background-color: #1B66FF; background-color: #1b66ff;
color: #fff; color: #fff;
text-align: center; text-align: center;
font-family: PingFangSC-Medium; font-family: PingFangSC-Medium;
@@ -646,7 +662,6 @@
flex-wrap: wrap; flex-wrap: wrap;
justify-content: flex-start; justify-content: flex-start;
margin: 20rpx 0; margin: 20rpx 0;
} }
.proint { .proint {
@@ -656,13 +671,12 @@
.proneed { .proneed {
font-size: 32rpx !important; font-size: 32rpx !important;
} }
.fee { .fee {
font-family: PingFangSC-Medium; font-family: PingFangSC-Medium;
font-size: 32rpx; font-size: 32rpx;
color: #F46161; color: #f46161;
margin-top: 30rpx; margin-top: 30rpx;
} }

View File

@@ -9,49 +9,41 @@
</view> --> </view> -->
<view class="prolist"> <view class="prolist">
<!-- 开始时间{{dateFormat((info.stime))}}{{dateFormat((info.etime))}} --> <!-- 开始时间{{dateFormat((info.stime))}}{{dateFormat((info.etime))}} -->
开始时间{{dateFormat((info.stime)) || '暂无'}} 开始时间{{ dateFormat(info.stime) || '暂无' }}
</view> </view>
<!-- <view class="prolist"> <!-- <view class="prolist">
报名截止{{dateFormat((info.etimePub))}} 报名截止{{dateFormat((info.etimePub))}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">招聘人数{{ info.peopleNum || '暂无' }}</view>
招聘人数{{info.peopleNum || '暂无'}} <view class="prolist">行业类型{{ info.tradeNames || '暂无' }}</view>
</view> <view class="prolist">零工工种{{ info.worktypeNames || '暂无' }}</view>
<view class="prolist">
行业类型{{info.tradeNames || '暂无'}}
</view>
<view class="prolist">
零工工种{{info.worktypeNames || '暂无'}}
</view>
<!-- <view class="fee"> <!-- <view class="fee">
{{info.wage || '暂无'}} {{info.wage || '暂无'}}
</view> --> </view> -->
<view class="position_right" v-if="info.reviewState === 1" <view
@click="navTo(`/pages/projectInfo/sub/inviteList?jobType=${info.jobType}&id=${info.id}&createUserId=${info.createUserId}`)"> class="position_right"
邀请用户</view> v-if="info.reviewState === 1"
@click="
navTo(
`/pages/projectInfo/sub/inviteList?jobType=${info.jobType}&id=${info.id}&createUserId=${info.createUserId}`
)
"
>
邀请用户
</view>
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">岗位要求</view>
岗位要求 <view class="prolist">
<view class="protype">年龄要求{{ age[info.ageDesc] || '暂无' }}</view>
</view> </view>
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">学历要求{{ education[info.education] || '暂无' }}</view>
年龄要求{{age[info.ageDesc] || '暂无'}}
</view>
</view> </view>
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">经验要求{{ experience[info.experienceDesc] || '暂无' }}</view>
学历要求{{education[info.education] || '暂无'}}
</view>
</view>
<view class="prolist">
<view class="protype">
经验要求{{experience[info.experienceDesc] || '暂无'}}
</view>
</view>
<view class="prolist proint" style="font-weight: bold;color:#333;">
岗位描述
</view> </view>
<view class="prolist proint" style="font-weight: bold; color: #333">岗位描述</view>
<view class="prolist description"> <view class="prolist description">
{{ info.jobDescription || '暂无' }} {{ info.jobDescription || '暂无' }}
</view> </view>
@@ -62,15 +54,16 @@
</view> </view>
</view> </view>
<!-- 技能标签 end --> <!-- 技能标签 end -->
<view v-if="info.jobSources" class="prolist"> <view v-if="info.jobSources" class="prolist">来源{{ info.jobSources || '暂无' }}</view>
来源{{info.jobSources || '暂无'}}
</view>
</view> </view>
<view class="head"> <view class="head">
<view style="display: flex;align-items: center;"> <view style="display: flex; align-items: center">
<image src="../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 20rpx;" mode=""> <image
</image> src="../../static/img/city.png"
<view style="font-size: 30rpx;">{{info.jobCompanyName || '暂无'}}</view> style="width: 40rpx; height: 40rpx; margin-right: 20rpx"
mode=""
></image>
<view style="font-size: 30rpx">{{ info.jobCompanyName || '暂无' }}</view>
</view> </view>
<!-- <view class="proname proneed"> <!-- <view class="proname proneed">
企业信息 企业信息
@@ -80,9 +73,7 @@
</view> --> </view> -->
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">地址</view>
地址
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
联系人{{info.callName}} 联系人{{info.callName}}
@@ -97,78 +88,116 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
公司地址{{info.companyAddress || '暂无'}} 公司地址{{info.companyAddress || '暂无'}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">注册地址{{ info.cityId || '暂无' }}</view>
注册地址{{info.cityId || '暂无'}} <view class="prolist">工作地址{{ info.address || '暂无' }}</view>
</view>
<view class="prolist">
工作地址{{info.address || '暂无'}}
</view>
<view class="map"> <view class="map">
<!-- <seeLocation ref="cMap" :apikey="$config.apiKey"></seeLocation> --> <!-- <seeLocation ref="cMap" :apikey="$config.apiKey"></seeLocation> -->
<super-map ref="uMap" style="width: 100%;height: 100%;" :latitude="latitude" :longitude="longitude" <super-map
:open="true" :zoom="14" :min-zoom="10" :max-zoom="20" :MapUrl="$config.supperMap" :init="false" ref="uMap"
:flag-tip="false"></super-map> style="width: 100%; height: 100%"
:latitude="latitude"
:longitude="longitude"
:open="true"
:zoom="14"
:min-zoom="10"
:max-zoom="20"
:MapUrl="$config.supperMap"
:init="false"
:flag-tip="false"
></super-map>
</view> </view>
<!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> --> <!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> -->
</view> </view>
<view class="" style="height:200rpx;background-color: #f6f6f6;" v-if="isShow!=='0'"></view> <view class="" style="height: 200rpx; background-color: #f6f6f6" v-if="isShow !== '0'"></view>
<view class="btn" v-if="isShow !== '0' && status === 0"> <view class="btn" v-if="isShow !== '0' && status === 0">
<view @click="collect" <view
style="display: flex;align-items: center;margin-right: 10rpx;flex-direction: column;"> @click="collect"
<image v-if="collectStatus == 0" src="../../static/img/collect.png" style="width: 36rpx;height: 36rpx;" style="display: flex; align-items: center; margin-right: 10rpx; flex-direction: column"
mode=""></image> >
<image v-if="collectStatus == 1" src="../../static/img/collect_yes.png" <image
style="width: 36rpx;height: 36rpx;" mode=""></image> v-if="collectStatus == 0"
<view v-if="collectStatus == 0" style="font-size: 26rpx;color:#707070;margin-top:10rpx;">收藏</view> src="../../static/img/collect.png"
<view v-if="collectStatus == 1" style="font-size: 20rpx;color:#707070;margin-top:10rpx;">已收藏</view> style="width: 36rpx; height: 36rpx"
mode=""
></image>
<image
v-if="collectStatus == 1"
src="../../static/img/collect_yes.png"
style="width: 36rpx; height: 36rpx"
mode=""
></image>
<view v-if="collectStatus == 0" style="font-size: 26rpx; color: #707070; margin-top: 10rpx">收藏</view>
<view v-if="collectStatus == 1" style="font-size: 20rpx; color: #707070; margin-top: 10rpx">
已收藏
</view>
</view> </view>
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
<view @click="submit" class="bottombtn flexbtn" style="border-radius: 45rpx;"> <view @click="submit" class="bottombtn flexbtn" style="border-radius: 45rpx">申请</view>
申请
</view>
</view> </view>
<view class="btn" v-if="!jobType && isShow !== '0' && status !== 0"> <view class="btn" v-if="!jobType && isShow !== '0' && status !== 0">
<!-- <view class="bottombtn lookContract" @click="lookMask">查看合同</view> --> <!-- <view class="bottombtn lookContract" @click="lookMask">查看合同</view> -->
<view @click="collect" <view
style="display: flex;align-items: center;margin-right: 10rpx;flex-direction: column;"> @click="collect"
<image v-if="collectStatus == 0" src="../../static/img/collect.png" style="width: 36rpx;height: 36rpx;" style="display: flex; align-items: center; margin-right: 10rpx; flex-direction: column"
mode=""></image> >
<image v-if="collectStatus == 1" src="../../static/img/collect_yes.png" <image
style="width: 36rpx;height: 36rpx;" mode=""></image> v-if="collectStatus == 0"
<view v-if="collectStatus == 0" style="font-size: 26rpx;color:#707070;margin-top:10rpx;">收藏</view> src="../../static/img/collect.png"
<view v-if="collectStatus == 1" style="font-size: 20rpx;color:#707070;margin-top:10rpx;">已收藏</view> style="width: 36rpx; height: 36rpx"
mode=""
></image>
<image
v-if="collectStatus == 1"
src="../../static/img/collect_yes.png"
style="width: 36rpx; height: 36rpx"
mode=""
></image>
<view v-if="collectStatus == 0" style="font-size: 26rpx; color: #707070; margin-top: 10rpx">收藏</view>
<view v-if="collectStatus == 1" style="font-size: 20rpx; color: #707070; margin-top: 10rpx">
已收藏
</view>
</view> </view>
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
<view class="bottombtn disabledBtn flexbtn" style="border-radius: 45rpx;">已申请</view> <view class="bottombtn disabledBtn flexbtn" style="border-radius: 45rpx">已申请</view>
</view> </view>
<uniMask :maskShow="maskShow"> <uniMask :maskShow="maskShow">
<view class="contractMask"> <view class="contractMask">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="close" @click="close" style="top: 124rpx;">+</view> <view class="close" @click="close" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="close" @click="close">+</view> <view class="close" @click="close">+</view>
<!-- #endif --> <!-- #endif -->
<view style="height: 30px;"></view> <view style="height: 30px"></view>
<img :src="src" alt="" style="width:100%;height: 1000px;"> <img :src="src" alt="" style="width: 100%; height: 1000px" />
<view v-if="nextBtn" class="down" @click="next">下一步</view> <view v-if="nextBtn" class="down" @click="next">下一步</view>
</view> </view>
</uniMask> </uniMask>
<u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp"> <u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp">
<view style="height: 200rpx;padding: 20rpx 40rpx;"> <view style="height: 200rpx; padding: 20rpx 40rpx">
<view style="font-size: 28rpx;font-weight: bold;">重要提示</view> <view style="font-size: 28rpx; font-weight: bold">重要提示</view>
<view style="font-size: 24rpx;color:#707070;margin-top:10rpx;">为保障个人基本劳动权益建议通过平台用工的形式就业</view> <view style="font-size: 24rpx; color: #707070; margin-top: 10rpx">
<view style="text-align: center;font-size:28rpx;margin-top: 30rpx;"> {{ info.callName || '联系人'}} : 为保障个人基本劳动权益建议通过平台用工的形式就业
<span style="color: blue" v-if="info.callTel" </view>
@click="tools.onDialingPhoneNumber(info.callTel)">{{ info.callTel }}</span> <view style="text-align: center; font-size: 28rpx; margin-top: 30rpx">
{{ info.callName || '联系人' }} :
<span style="color: blue" v-if="info.callTel" @click="tools.onDialingPhoneNumber(info.callTel)">
{{ info.callTel }}
</span>
<span style="color: #333333" v-else>无联系方式</span> <span style="color: #333333" v-else>无联系方式</span>
</view> </view>
</view> </view>
@@ -177,7 +206,7 @@
<view v-else-if="showCode" class="codeSealBox"> <view v-else-if="showCode" class="codeSealBox">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="closeCode" @click="closeShowCode" style="top: 124rpx;">+</view> <view class="closeCode" @click="closeShowCode" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="closeCode" @click="closeShowCode">+</view> <view class="closeCode" @click="closeShowCode">+</view>
@@ -187,46 +216,26 @@
<view class="name">签名密码</view> <view class="name">签名密码</view>
<view class="tip">6位数字签名密码</view> <view class="tip">6位数字签名密码</view>
</view> </view>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code> <valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<view class="forget" @click="forget">忘记密码</view> <view class="forget" @click="forget">忘记密码</view>
</view> </view>
</template> </template>
<script> <script>
import { import { mapGetters } from 'vuex';
mapGetters import { missionDetail, submit, getCollectState, updateCollectStatus, workDetail } from '@/api/mission.js';
} from 'vuex' import { GoLogin } from '@/untils/AxiosUtils.js';
import { import { setRead } from '@/api/news.js';
missionDetail, import { checkPass, getPhoneCountNumber } from '@/api/auth.js';
submit,
getCollectState,
updateCollectStatus,
workDetail
} from '@/api/mission.js';
import {
GoLogin
} from '@/untils/AxiosUtils.js';
import {
setRead
} from '@/api/news.js';
import {
checkPass
} from '@/api/auth.js';
import dictionary from '@/common/textdata.js'; import dictionary from '@/common/textdata.js';
import { import { dateFormat } from '../../untils/format.js';
dateFormat import { userrecruitDetail } from '@/api/userrecruit.js';
} from "../../untils/format.js"; import uniMask from '@/components/uni-mask/mask.vue';
import { import validCode from '@/components/p-valid-code/p-valid-code.vue';
userrecruitDetail
} from '@/api/userrecruit.js'
import uniMask from '@/components/uni-mask/mask.vue'
import validCode from '@/components/p-valid-code/p-valid-code.vue'
import seeLocation from '@/components/sylj-selectLocation/seeLocation.vue'; import seeLocation from '@/components/sylj-selectLocation/seeLocation.vue';
import { import { getuserrecruitDetailApp } from '@/api/userrecruit.js';
getuserrecruitDetailApp
} from '@/api/userrecruit.js'
export default { export default {
data() { data() {
return { return {
@@ -240,15 +249,18 @@
loading: false, loading: false,
latitude: 30.70032, //中心点 latitude: 30.70032, //中心点
longitude: 104.05235, longitude: 104.05235,
covers: [{ //marker标记位置 covers: [
{
//marker标记位置
id: 0, id: 0,
latitude: 0, latitude: 0,
longitude: 0, longitude: 0,
// width:30, // width:30,
// height:30, // height:30,
iconPath: '../../static/img/location.png' iconPath: '../../static/img/location.png',
}], },
missionNo: "", ],
missionNo: '',
isShow: '', isShow: '',
type: '', type: '',
id: '', id: '',
@@ -256,15 +268,16 @@
maxlength: 6, maxlength: 6,
collectStatus: 0, // 收藏状态 collectStatus: 0, // 收藏状态
showPopUp: false, showPopUp: false,
jobType: null jobType: null,
} };
}, },
components: { components: {
uniMask, uniMask,
validCode, validCode,
seeLocation seeLocation,
}, },
onLoad: function(option) { //option为object类型会序列化上个页面传递的参数 onLoad: function (option) {
//option为object类型会序列化上个页面传递的参数
// this.$store.dispatch('setAutograph') // this.$store.dispatch('setAutograph')
if (option.workId) { if (option.workId) {
this.workId = decodeURIComponent(option.workId); this.workId = decodeURIComponent(option.workId);
@@ -279,48 +292,48 @@
this.id = option.id; //消息id this.id = option.id; //消息id
} }
if (option.jobType) { if (option.jobType) {
this.jobType = option.jobType this.jobType = option.jobType;
} }
}, },
onShow: function () { onShow: function () {
this.showDetail = true this.showDetail = true;
this.getData(); this.getData();
}, },
onShareAppMessage(obj) { onShareAppMessage(obj) {
return { return {
title: this.info.missionTitle, title: this.info.missionTitle,
path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}` path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}`,
} };
}, },
methods: { methods: {
dateFormat, dateFormat,
collect() { collect() {
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
// console.log('收藏,取消收藏') // console.log('收藏,取消收藏')
const status = this.collectStatus == 0 ? 1 : 0; const status = this.collectStatus == 0 ? 1 : 0;
updateCollectStatus(this.info.id, status, 2).then(res => { updateCollectStatus(this.info.id, status, 2).then((res) => {
if (res.data.code == 200) { if (res.data.code == 200) {
this.getCollectStatus() this.getCollectStatus();
} }
}) });
}, },
callPhone() { async callPhone() {
getPhoneCountNumber();
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
this.showPopUp = true; this.showPopUp = true;
}, },
@@ -329,22 +342,22 @@
}, },
// 获取收藏状态 // 获取收藏状态
getCollectStatus() { getCollectStatus() {
getCollectState(this.info.id, 2).then(res => { getCollectState(this.info.id, 2).then((res) => {
// 0 未收藏1 已收藏 // 0 未收藏1 已收藏
// console.log(res) // console.log(res)
this.collectStatus = res.data.data; this.collectStatus = res.data.data;
}) });
}, },
async getData() { async getData() {
const self = this; const self = this;
let resData = null let resData = null;
if (this.jobType) { if (this.jobType) {
resData = await getuserrecruitDetailApp({ resData = await getuserrecruitDetailApp({
id: this.id, id: this.id,
jobType: this.jobType jobType: this.jobType,
}) });
} else { } else {
resData = await userrecruitDetail(self.workId) resData = await userrecruitDetail(self.workId);
} }
if (resData.data?.code === 200) { if (resData.data?.code === 200) {
self.info = resData.data.data; self.info = resData.data.data;
@@ -358,7 +371,7 @@
self.$refs.uMap.initMap({ self.$refs.uMap.initMap({
lat: self.info.lat, lat: self.info.lat,
lon: self.info.lon, lon: self.info.lon,
}) });
} }
// this.$refs.cMap.open() // this.$refs.cMap.open()
self.showDetail = true; self.showDetail = true;
@@ -366,34 +379,33 @@
self.getCollectStatus(); self.getCollectStatus();
if (self.type === 1) { if (self.type === 1) {
// 设置已读 // 设置已读
setRead(self.id).then(res => { setRead(self.id).then((res) => {
self.$store.commit("SET_READ"); self.$store.commit('SET_READ');
}) });
} }
} }
} }
}, },
submit: function () { submit: function () {
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
const _that = this const _that = this;
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '请确认申请,申请后不能撤销', content: '请确认申请,申请后不能撤销',
success: function (res) { success: function (res) {
if (res.confirm) { if (res.confirm) {
if (_that.loading) return if (_that.loading) return;
const auth = _that.auth const auth = _that.auth;
const contractOn = _that.info.contractOn const contractOn = _that.info.contractOn;
const sealOk = _that.autograph && _that.autograph.data && _that.autograph const sealOk = _that.autograph && _that.autograph.data && _that.autograph.data.signSrcUrl;
.data.signSrcUrl
// if (sealOk) { // if (sealOk) {
// console.log('直接抢任务') // console.log('直接抢任务')
// this.submitTask() // this.submitTask()
@@ -404,86 +416,91 @@
// this.goSign(1) // this.goSign(1)
// } else // } else
if (contractOn && !sealOk) { if (contractOn && !sealOk) {
_that.goSign(2) _that.goSign(2);
} else if (sealOk && contractOn) { } else if (sealOk && contractOn) {
_that.nextBtn = true _that.nextBtn = true;
_that.lookMask() _that.lookMask();
} else { } else {
_that.submitTask() _that.submitTask();
} }
} else if (res.cancel) { } else if (res.cancel) {
_that.$api.msg('取消申请') _that.$api.msg('取消申请');
}
} }
},
}); });
}, },
// 查看合同 // 查看合同
lookMask() { lookMask() {
this.maskShow = true this.maskShow = true;
}, },
// 岗位申请 // 岗位申请
submitTask() { submitTask() {
submit(this.missionNo, 2).then(res => { submit(this.missionNo, 2).then(
uni.hideLoading() (res) => {
uni.hideLoading();
uni.showToast({ uni.showToast({
title: '操作成功', title: '操作成功',
icon: 'none' icon: 'none',
}); });
this.status = null; this.status = null;
this.loading = false this.loading = false;
}, error => { },
this.loading = false (error) => {
}); this.loading = false;
}
);
}, },
// 步骤 // 步骤
goSign(active) { goSign(active) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/projectInfo/signContract?active=${active}` url: `/pages/projectInfo/signContract?active=${active}`,
}) });
}, },
// 关闭弹窗 // 关闭弹窗
close() { close() {
this.maskShow = false this.maskShow = false;
}, },
// 合同下一步 // 合同下一步
next() { next() {
this.maskShow = false this.maskShow = false;
this.showDetail = false this.showDetail = false;
this.showCode = true this.showCode = true;
}, },
// 输入签名密码 // 输入签名密码
getInpCode(password) { getInpCode(password) {
uni.showLoading({ uni.showLoading({
title: "请求中..." title: '请求中...',
}) });
this.loading = true this.loading = true;
var obj = { var obj = {
pass: password pass: password,
} };
checkPass(obj).then(res => { checkPass(obj)
this.submitTask() .then((res) => {
this.closeShowCode() this.submitTask();
}).catch(err => { this.closeShowCode();
this.loading = false
}) })
.catch((err) => {
this.loading = false;
});
}, },
// 关闭签名密码弹窗 // 关闭签名密码弹窗
closeShowCode() { closeShowCode() {
this.showCode = false this.showCode = false;
this.showDetail = true this.showDetail = true;
}, },
// 忘记密码 // 忘记密码
forget() { forget() {
uni.navigateTo({ uni.navigateTo({
url: `/pageMy/setUserBase/seal/forget?forget=true` url: `/pageMy/setUserBase/seal/forget?forget=true`,
}) });
} },
}, },
computed: { computed: {
...mapGetters(['auth', 'autograph', 'area']), ...mapGetters(['auth', 'autograph', 'area']),
skillNames() { skillNames() {
if (this.info.skillNames) { if (this.info.skillNames) {
return this.info.skillNames.split(',') return this.info.skillNames.split(',');
} }
}, },
// cityNamed() { // cityNamed() {
@@ -495,8 +512,8 @@
// return '无' // return '无'
// } // }
// } // }
} },
} };
</script> </script>
<style lang="scss"> <style lang="scss">
@@ -507,9 +524,9 @@
position: absolute; position: absolute;
right: 24rpx; right: 24rpx;
top: 30rpx; top: 30rpx;
color: #FFFFFF; color: #ffffff;
font-size: 24rpx; font-size: 24rpx;
background-color: #1B66FF; background-color: #1b66ff;
border-radius: 12rpx; border-radius: 12rpx;
padding: 10rpx 20rpx; padding: 10rpx 20rpx;
} }
@@ -527,7 +544,7 @@
position: absolute; position: absolute;
right: 36rpx; right: 36rpx;
top: 120rpx; top: 120rpx;
color: #1B66FF; color: #1b66ff;
transform: rotate(45deg); transform: rotate(45deg);
font-size: 40px; font-size: 40px;
} }
@@ -561,15 +578,14 @@
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400; font-weight: 400;
color: #5AA0FA; color: #5aa0fa;
line-height: 38rpx; line-height: 38rpx;
text-align: right; text-align: right;
} }
} }
.contractMask { .contractMask {
background-color: #FFFFFF; background-color: #ffffff;
margin: 30rpx; margin: 30rpx;
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
@@ -579,7 +595,7 @@
.close { .close {
width: 23px; width: 23px;
height: 23px; height: 23px;
color: #1B66FF; color: #1b66ff;
position: fixed; position: fixed;
right: 60rpx; right: 60rpx;
top: 60rpx; top: 60rpx;
@@ -595,10 +611,10 @@
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
text-align: center; text-align: center;
background: #1B66FF; background: #1b66ff;
font-size: 36rpx; font-size: 36rpx;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
} }
} }
@@ -612,7 +628,7 @@
} }
.bottombtn { .bottombtn {
background-color: #1B66FF; background-color: #1b66ff;
color: #fff; color: #fff;
text-align: center; text-align: center;
border-radius: 10rpx; border-radius: 10rpx;
@@ -661,7 +677,6 @@
flex-wrap: wrap; flex-wrap: wrap;
justify-content: flex-start; justify-content: flex-start;
margin: 20rpx 0; margin: 20rpx 0;
} }
.proint { .proint {
@@ -671,13 +686,12 @@
.proneed { .proneed {
font-size: 32rpx !important; font-size: 32rpx !important;
} }
.fee { .fee {
font-family: PingFangSC-Medium; font-family: PingFangSC-Medium;
font-size: 32rpx; font-size: 32rpx;
color: #F46161; color: #f46161;
margin-top: 30rpx; margin-top: 30rpx;
} }

View File

@@ -7,56 +7,48 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
任务编码{{info.missionNo}} 任务编码{{info.missionNo}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">发布日期{{ dateFormat(info.stime) || '暂无' }}</view>
发布日期{{dateFormat((info.stime)) || '暂无'}} <view class="prolist">招聘人数{{ info.peopleNum || '暂无' }}</view>
</view>
<view class="prolist">
招聘人数{{info.peopleNum || '暂无'}}
</view>
<view class="prolist"> <view class="prolist">
行业类型{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry || '暂无' }} 行业类型{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry || '暂无' }}
</view> </view>
<view class="prolist"> <view class="prolist">岗位工种{{ info.skillNames || '暂无' }}</view>
岗位工种{{info.skillNames || '暂无'}}
</view>
<!-- <view class="fee"> <!-- <view class="fee">
{{info.wage}}{{wageUnit[info.wageUnitCategory]}} {{info.wage}}{{wageUnit[info.wageUnitCategory]}}
</view> --> </view> -->
<view class="position_right" v-if="info.reviewState === 1" <view
@click="navTo(`/pages/projectInfo/sub/inviteList?jobType=${info.jobType}&id=${info.id}&createUserId=${info.createUserId}`)"> class="position_right"
邀请用户</view> v-if="info.reviewState === 1"
@click="
navTo(
`/pages/projectInfo/sub/inviteList?jobType=${info.jobType}&id=${info.id}&createUserId=${info.createUserId}`
)
"
>
邀请用户
</view>
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">岗位要求</view>
岗位要求
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
年龄要求{{age[info.ageDesc]}} 年龄要求{{age[info.ageDesc]}}
</view> </view>
</view> --> </view> -->
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">年龄要求{{ age[info.ageDesc] || '暂无' }}</view>
年龄要求{{age[info.ageDesc] || '暂无'}}
</view>
</view> </view>
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">学历要求{{ education[info.education] || '暂无' }}</view>
学历要求{{education[info.education] || '暂无'}}
</view>
</view> </view>
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">经验要求{{ info.experienceDesc || '暂无' }}</view>
经验要求{{info.experienceDesc || '暂无'}}
</view>
</view> </view>
<!-- <view class="prolist"> <!-- <view class="prolist">
岗位地址{{info.jobAddress}} 岗位地址{{info.jobAddress}}
</view> --> </view> -->
<view class="prolist proint" style="font-weight: bold;color:#333;"> <view class="prolist proint" style="font-weight: bold; color: #333">岗位描述</view>
岗位描述
</view>
<view class="prolist description"> <view class="prolist description">
{{ info.jobDescription }} {{ info.jobDescription }}
</view> </view>
@@ -67,9 +59,7 @@
</view> </view>
</view> </view>
<!-- 技能标签 end --> <!-- 技能标签 end -->
<view v-if="info.jobSources" class="prolist"> <view v-if="info.jobSources" class="prolist">来源{{ info.jobSources || '暂无' }}</view>
来源{{info.jobSources || '暂无'}}
</view>
</view> </view>
<view class="head"> <view class="head">
<!-- <view class="proname proneed"> <!-- <view class="proname proneed">
@@ -81,16 +71,17 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
用工单位{{info.jobCompanyName}} 用工单位{{info.jobCompanyName}}
</view> --> </view> -->
<view style="display: flex;align-items: center;"> <view style="display: flex; align-items: center">
<image src="../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 20rpx;" mode=""> <image
</image> src="../../static/img/city.png"
<view style="font-size: 30rpx;">{{info.jobCompanyName}}</view> style="width: 40rpx; height: 40rpx; margin-right: 20rpx"
mode=""
></image>
<view style="font-size: 30rpx">{{ info.jobCompanyName }}</view>
</view> </view>
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">地址</view>
地址
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
联系人{{info.callName}} 联系人{{info.callName}}
@@ -102,77 +93,116 @@
<!-- <view class="prolist" v-if="info.callNumber"> <!-- <view class="prolist" v-if="info.callNumber">
座机号{{info.callNumber}} 座机号{{info.callNumber}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">注册地址{{ info.cityId || '暂无' }}</view>
注册地址{{ info.cityId || '暂无'}} <view class="prolist">工作地址{{ info.address || '暂无' }}</view>
</view>
<view class="prolist">
工作地址{{info.address || '暂无'}}
</view>
<view class="map"> <view class="map">
<super-map ref="uMap" style="width: 100%;height: 100%;" :latitude="latitude" :longitude="longitude" <super-map
:open="true" :zoom="14" :min-zoom="10" :max-zoom="20" @regionchange="show = false" :init="false" ref="uMap"
:MapUrl="$config.supperMap" :flag-tip="false"></super-map> style="width: 100%; height: 100%"
:latitude="latitude"
:longitude="longitude"
:open="true"
:zoom="14"
:min-zoom="10"
:max-zoom="20"
@regionchange="show = false"
:init="false"
:MapUrl="$config.supperMap"
:flag-tip="false"
></super-map>
</view> </view>
<!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> --> <!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> -->
</view> </view>
<view class="" style="height:200rpx;background-color: #f6f6f6;" v-if="isShow!=='0'"></view> <view class="" style="height: 200rpx; background-color: #f6f6f6" v-if="isShow !== '0'"></view>
<view class="btn" v-if="isShow !== '0' && status === 0"> <view class="btn" v-if="isShow !== '0' && status === 0">
<view @click="collect" <view
style="display: flex;align-items: center;margin-right: 10rpx;flex-direction: column;"> @click="collect"
<image v-if="collectStatus == 0" src="../../static/img/collect.png" style="width: 36rpx;height: 36rpx;" style="display: flex; align-items: center; margin-right: 10rpx; flex-direction: column"
mode=""></image> >
<image v-if="collectStatus == 1" src="../../static/img/collect_yes.png" <image
style="width: 36rpx;height: 36rpx;" mode=""></image> v-if="collectStatus == 0"
<view v-if="collectStatus == 0" style="font-size: 26rpx;color:#707070;margin-top:10rpx;">收藏</view> src="../../static/img/collect.png"
<view v-if="collectStatus == 1" style="font-size: 20rpx;color:#707070;margin-top:10rpx;">已收藏</view> style="width: 36rpx; height: 36rpx"
mode=""
></image>
<image
v-if="collectStatus == 1"
src="../../static/img/collect_yes.png"
style="width: 36rpx; height: 36rpx"
mode=""
></image>
<view v-if="collectStatus == 0" style="font-size: 26rpx; color: #707070; margin-top: 10rpx">收藏</view>
<view v-if="collectStatus == 1" style="font-size: 20rpx; color: #707070; margin-top: 10rpx">
已收藏
</view>
</view> </view>
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
<view @click="submit" class="bottombtn flexbtn" style="border-radius: 45rpx;"> <view @click="submit" class="bottombtn flexbtn" style="border-radius: 45rpx">申请</view>
申请
</view>
</view> </view>
<view class="btn" v-if="!jobType && isShow !== '0' && status !== 0"> <view class="btn" v-if="!jobType && isShow !== '0' && status !== 0">
<!-- <view class="bottombtn lookContract" @click="lookMask">查看合同</view> --> <!-- <view class="bottombtn lookContract" @click="lookMask">查看合同</view> -->
<view @click="collect" <view
style="display: flex;align-items: center;margin-right: 10rpx;flex-direction: column;"> @click="collect"
<image v-if="collectStatus == 0" src="../../static/img/collect.png" style="width: 36rpx;height: 36rpx;" style="display: flex; align-items: center; margin-right: 10rpx; flex-direction: column"
mode=""></image> >
<image v-if="collectStatus == 1" src="../../static/img/collect_yes.png" <image
style="width: 36rpx;height: 36rpx;" mode=""></image> v-if="collectStatus == 0"
<view v-if="collectStatus == 0" style="font-size: 26rpx;color:#707070;margin-top:10rpx;">收藏</view> src="../../static/img/collect.png"
<view v-if="collectStatus == 1" style="font-size: 20rpx;color:#707070;margin-top:10rpx;">已收藏</view> style="width: 36rpx; height: 36rpx"
mode=""
></image>
<image
v-if="collectStatus == 1"
src="../../static/img/collect_yes.png"
style="width: 36rpx; height: 36rpx"
mode=""
></image>
<view v-if="collectStatus == 0" style="font-size: 26rpx; color: #707070; margin-top: 10rpx">收藏</view>
<view v-if="collectStatus == 1" style="font-size: 20rpx; color: #707070; margin-top: 10rpx">
已收藏
</view>
</view> </view>
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
<view class="bottombtn disabledBtn flexbtn" style="border-radius: 45rpx;">已申请</view> <view class="bottombtn disabledBtn flexbtn" style="border-radius: 45rpx">已申请</view>
</view> </view>
<uniMask :maskShow="maskShow"> <uniMask :maskShow="maskShow">
<view class="contractMask"> <view class="contractMask">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="close" @click="close" style="top: 124rpx;">+</view> <view class="close" @click="close" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="close" @click="close">+</view> <view class="close" @click="close">+</view>
<!-- #endif --> <!-- #endif -->
<view style="height: 30px;"></view> <view style="height: 30px"></view>
<img :src="src" alt="" style="width:100%;height: 1000px;"> <img :src="src" alt="" style="width: 100%; height: 1000px" />
<view v-if="nextBtn" class="down" @click="next">下一步</view> <view v-if="nextBtn" class="down" @click="next">下一步</view>
</view> </view>
</uniMask> </uniMask>
<u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp"> <u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp">
<view style="height: 200rpx;padding: 20rpx 40rpx;"> <view style="height: 200rpx; padding: 20rpx 40rpx">
<view style="font-size: 28rpx;font-weight: bold;">重要提示</view> <view style="font-size: 28rpx; font-weight: bold">重要提示</view>
<view style="font-size: 24rpx;color:#707070;margin-top:10rpx;">为保障个人基本劳动权益建议通过平台用工的形式就业</view> <view style="font-size: 24rpx; color: #707070; margin-top: 10rpx">
<view style="text-align: center;font-size:28rpx;margin-top: 30rpx;"> {{ info.callName || '联系人'}} : 为保障个人基本劳动权益建议通过平台用工的形式就业
<span style="color: blue" v-if="info.callTel" </view>
@click="tools.onDialingPhoneNumber(info.callTel)">{{ info.callTel }}</span> <view style="text-align: center; font-size: 28rpx; margin-top: 30rpx">
{{ info.callName || '联系人' }} :
<span style="color: blue" v-if="info.callTel" @click="tools.onDialingPhoneNumber(info.callTel)">
{{ info.callTel }}
</span>
<span style="color: #333333" v-else>无联系方式</span> <span style="color: #333333" v-else>无联系方式</span>
</view> </view>
</view> </view>
@@ -181,7 +211,7 @@
<view v-else-if="showCode" class="codeSealBox"> <view v-else-if="showCode" class="codeSealBox">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="closeCode" @click="closeShowCode" style="top: 124rpx;">+</view> <view class="closeCode" @click="closeShowCode" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="closeCode" @click="closeShowCode">+</view> <view class="closeCode" @click="closeShowCode">+</view>
@@ -191,45 +221,25 @@
<view class="name">签名密码</view> <view class="name">签名密码</view>
<view class="tip">6位数字签名密码</view> <view class="tip">6位数字签名密码</view>
</view> </view>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code> <valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<view class="forget" @click="forget">忘记密码</view> <view class="forget" @click="forget">忘记密码</view>
</view> </view>
</template> </template>
<script> <script>
import { import { mapGetters } from 'vuex';
mapGetters import { missionDetail, submit, getCollectState, updateCollectStatus, workDetail } from '@/api/mission.js';
} from 'vuex' import { GoLogin } from '@/untils/AxiosUtils.js';
import { import { setRead } from '@/api/news.js';
missionDetail, import { checkPass, getPhoneCountNumber } from '@/api/auth.js';
submit,
getCollectState,
updateCollectStatus,
workDetail
} from '@/api/mission.js';
import {
GoLogin
} from '@/untils/AxiosUtils.js';
import {
setRead
} from '@/api/news.js';
import {
checkPass
} from '@/api/auth.js';
import dictionary from '@/common/textdata.js'; import dictionary from '@/common/textdata.js';
import { import { dateFormat } from '../../untils/format.js';
dateFormat import { userrecruitDetail } from '@/api/userrecruit.js';
} from "../../untils/format.js"; import uniMask from '@/components/uni-mask/mask.vue';
import { import validCode from '@/components/p-valid-code/p-valid-code.vue';
userrecruitDetail import { getuserrecruitDetailApp } from '@/api/userrecruit.js';
} from '@/api/userrecruit.js'
import uniMask from '@/components/uni-mask/mask.vue'
import validCode from '@/components/p-valid-code/p-valid-code.vue'
import {
getuserrecruitDetailApp
} from '@/api/userrecruit.js'
export default { export default {
data() { data() {
return { return {
@@ -243,15 +253,18 @@
loading: false, loading: false,
latitude: 31.126855, //中心点 latitude: 31.126855, //中心点
longitude: 104.397894, longitude: 104.397894,
covers: [{ //marker标记位置 covers: [
{
//marker标记位置
id: 0, id: 0,
latitude: 0, latitude: 0,
longitude: 0, longitude: 0,
// width:30, // width:30,
// height:30, // height:30,
iconPath: '../../static/img/location.png' iconPath: '../../static/img/location.png',
}], },
missionNo: "", ],
missionNo: '',
isShow: '', isShow: '',
type: '', type: '',
id: '', id: '',
@@ -259,14 +272,15 @@
maxlength: 6, maxlength: 6,
collectStatus: 0, // 收藏状态 collectStatus: 0, // 收藏状态
showPopUp: false, showPopUp: false,
jobType: null jobType: null,
} };
}, },
components: { components: {
uniMask, uniMask,
validCode validCode,
}, },
onLoad: function(option) { //option为object类型会序列化上个页面传递的参数 onLoad: function (option) {
//option为object类型会序列化上个页面传递的参数
// this.$store.dispatch('setAutograph') // this.$store.dispatch('setAutograph')
if (option.workId) { if (option.workId) {
this.workId = decodeURIComponent(option.workId); this.workId = decodeURIComponent(option.workId);
@@ -281,48 +295,48 @@
this.id = option.id; //消息id this.id = option.id; //消息id
} }
if (option.jobType) { if (option.jobType) {
this.jobType = option.jobType this.jobType = option.jobType;
} }
}, },
onShow: function () { onShow: function () {
this.showDetail = true this.showDetail = true;
this.getData(); this.getData();
}, },
onShareAppMessage(obj) { onShareAppMessage(obj) {
return { return {
title: this.info.missionTitle, title: this.info.missionTitle,
path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}` path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}`,
} };
}, },
methods: { methods: {
dateFormat, dateFormat,
collect() { collect() {
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
// console.log('收藏,取消收藏') // console.log('收藏,取消收藏')
const status = this.collectStatus == 0 ? 1 : 0; const status = this.collectStatus == 0 ? 1 : 0;
updateCollectStatus(this.info.id, status, 2).then(res => { updateCollectStatus(this.info.id, status, 2).then((res) => {
if (res.data.code == 200) { if (res.data.code == 200) {
this.getCollectStatus() this.getCollectStatus();
} }
}) });
}, },
callPhone() { async callPhone() {
getPhoneCountNumber();
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
this.showPopUp = true; this.showPopUp = true;
}, },
@@ -331,22 +345,22 @@
}, },
// 获取收藏状态 // 获取收藏状态
getCollectStatus() { getCollectStatus() {
getCollectState(this.info.id, 2).then(res => { getCollectState(this.info.id, 2).then((res) => {
// 0 未收藏1 已收藏 // 0 未收藏1 已收藏
// console.log(res) // console.log(res)
this.collectStatus = res.data.data; this.collectStatus = res.data.data;
}) });
}, },
async getData() { async getData() {
const self = this; const self = this;
let resData = null let resData = null;
if (this.jobType) { if (this.jobType) {
resData = await getuserrecruitDetailApp({ resData = await getuserrecruitDetailApp({
id: this.id, id: this.id,
jobType: this.jobType jobType: this.jobType,
}) });
} else { } else {
resData = await userrecruitDetail(self.workId) resData = await userrecruitDetail(self.workId);
} }
if (resData.data?.code === 200) { if (resData.data?.code === 200) {
self.info = resData.data.data; self.info = resData.data.data;
@@ -360,41 +374,40 @@
self.$refs.uMap.initMap({ self.$refs.uMap.initMap({
lat: self.info.lat, lat: self.info.lat,
lon: self.info.lon, lon: self.info.lon,
}) });
} }
self.showDetail = true; self.showDetail = true;
if (!this.seeDeatil) { if (!this.seeDeatil) {
self.getCollectStatus(); self.getCollectStatus();
if (self.type === 1) { if (self.type === 1) {
// 设置已读 // 设置已读
setRead(self.id).then(res => { setRead(self.id).then((res) => {
self.$store.commit("SET_READ"); self.$store.commit('SET_READ');
}) });
} }
} }
} }
}, },
submit: function () { submit: function () {
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
const _that = this const _that = this;
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '请确认申请,申请后不能撤销', content: '请确认申请,申请后不能撤销',
success: function (res) { success: function (res) {
if (res.confirm) { if (res.confirm) {
if (_that.loading) return if (_that.loading) return;
const auth = _that.auth const auth = _that.auth;
const contractOn = _that.info.contractOn const contractOn = _that.info.contractOn;
const sealOk = _that.autograph && _that.autograph.data && _that.autograph const sealOk = _that.autograph && _that.autograph.data && _that.autograph.data.signSrcUrl;
.data.signSrcUrl
// if (sealOk) { // if (sealOk) {
// console.log('直接抢任务') // console.log('直接抢任务')
// this.submitTask() // this.submitTask()
@@ -405,86 +418,91 @@
// this.goSign(1) // this.goSign(1)
// } else // } else
if (contractOn && !sealOk) { if (contractOn && !sealOk) {
_that.goSign(2) _that.goSign(2);
} else if (sealOk && contractOn) { } else if (sealOk && contractOn) {
_that.nextBtn = true _that.nextBtn = true;
_that.lookMask() _that.lookMask();
} else { } else {
_that.submitTask() _that.submitTask();
} }
} else if (res.cancel) { } else if (res.cancel) {
_that.$api.msg('取消申请') _that.$api.msg('取消申请');
}
} }
},
}); });
}, },
// 查看合同 // 查看合同
lookMask() { lookMask() {
this.maskShow = true this.maskShow = true;
}, },
// 岗位申请 // 岗位申请
submitTask() { submitTask() {
submit(this.missionNo, 2).then(res => { submit(this.missionNo, 2).then(
uni.hideLoading() (res) => {
uni.hideLoading();
uni.showToast({ uni.showToast({
title: '操作成功', title: '操作成功',
icon: 'none' icon: 'none',
}); });
this.status = null; this.status = null;
this.loading = false this.loading = false;
}, error => { },
this.loading = false (error) => {
}); this.loading = false;
}
);
}, },
// 步骤 // 步骤
goSign(active) { goSign(active) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/projectInfo/signContract?active=${active}` url: `/pages/projectInfo/signContract?active=${active}`,
}) });
}, },
// 关闭弹窗 // 关闭弹窗
close() { close() {
this.maskShow = false this.maskShow = false;
}, },
// 合同下一步 // 合同下一步
next() { next() {
this.maskShow = false this.maskShow = false;
this.showDetail = false this.showDetail = false;
this.showCode = true this.showCode = true;
}, },
// 输入签名密码 // 输入签名密码
getInpCode(password) { getInpCode(password) {
uni.showLoading({ uni.showLoading({
title: "请求中..." title: '请求中...',
}) });
this.loading = true this.loading = true;
var obj = { var obj = {
pass: password pass: password,
} };
checkPass(obj).then(res => { checkPass(obj)
this.submitTask() .then((res) => {
this.closeShowCode() this.submitTask();
}).catch(err => { this.closeShowCode();
this.loading = false
}) })
.catch((err) => {
this.loading = false;
});
}, },
// 关闭签名密码弹窗 // 关闭签名密码弹窗
closeShowCode() { closeShowCode() {
this.showCode = false this.showCode = false;
this.showDetail = true this.showDetail = true;
}, },
// 忘记密码 // 忘记密码
forget() { forget() {
uni.navigateTo({ uni.navigateTo({
url: `/pageMy/setUserBase/seal/forget?forget=true` url: `/pageMy/setUserBase/seal/forget?forget=true`,
}) });
} },
}, },
computed: { computed: {
...mapGetters(['auth', 'autograph', 'area']), ...mapGetters(['auth', 'autograph', 'area']),
skillNames() { skillNames() {
if (this.info.skillNames) { if (this.info.skillNames) {
return this.info.skillNames.split(',') return this.info.skillNames.split(',');
} }
}, },
// cityNamed() { // cityNamed() {
@@ -495,8 +513,8 @@
// return '无' // return '无'
// } // }
// } // }
} },
} };
</script> </script>
<style lang="scss"> <style lang="scss">
@@ -507,7 +525,7 @@
position: absolute; position: absolute;
right: 36rpx; right: 36rpx;
top: 120rpx; top: 120rpx;
color: #1B66FF; color: #1b66ff;
transform: rotate(45deg); transform: rotate(45deg);
font-size: 40px; font-size: 40px;
} }
@@ -541,15 +559,14 @@
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400; font-weight: 400;
color: #5AA0FA; color: #5aa0fa;
line-height: 38rpx; line-height: 38rpx;
text-align: right; text-align: right;
} }
} }
.contractMask { .contractMask {
background-color: #FFFFFF; background-color: #ffffff;
margin: 30rpx; margin: 30rpx;
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
@@ -559,7 +576,7 @@
.close { .close {
width: 23px; width: 23px;
height: 23px; height: 23px;
color: #1B66FF; color: #1b66ff;
position: fixed; position: fixed;
right: 60rpx; right: 60rpx;
top: 60rpx; top: 60rpx;
@@ -575,10 +592,10 @@
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
text-align: center; text-align: center;
background: #1B66FF; background: #1b66ff;
font-size: 36rpx; font-size: 36rpx;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
} }
} }
@@ -592,7 +609,7 @@
} }
.bottombtn { .bottombtn {
background-color: #1B66FF; background-color: #1b66ff;
color: #fff; color: #fff;
text-align: center; text-align: center;
border-radius: 10rpx; border-radius: 10rpx;
@@ -641,7 +658,6 @@
flex-wrap: wrap; flex-wrap: wrap;
justify-content: flex-start; justify-content: flex-start;
margin: 20rpx 0; margin: 20rpx 0;
} }
.proint { .proint {
@@ -651,13 +667,12 @@
.proneed { .proneed {
font-size: 32rpx !important; font-size: 32rpx !important;
} }
.fee { .fee {
font-family: PingFangSC-Medium; font-family: PingFangSC-Medium;
font-size: 32rpx; font-size: 32rpx;
color: #F46161; color: #f46161;
margin-top: 30rpx; margin-top: 30rpx;
} }
@@ -704,9 +719,9 @@
position: absolute; position: absolute;
right: 24rpx; right: 24rpx;
top: 30rpx; top: 30rpx;
color: #FFFFFF; color: #ffffff;
font-size: 24rpx; font-size: 24rpx;
background-color: #1B66FF; background-color: #1b66ff;
border-radius: 12rpx; border-radius: 12rpx;
padding: 10rpx 20rpx; padding: 10rpx 20rpx;
} }

View File

@@ -7,53 +7,37 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
任务编码{{info.missionNo}} 任务编码{{info.missionNo}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">发布日期{{ dateFormat(info.stime) || '暂无' }}</view>
发布日期{{dateFormat((info.stime)) || '暂无'}} <view class="prolist">招聘人数{{ info.peopleNum || '暂无' }}</view>
</view>
<view class="prolist">
招聘人数{{info.peopleNum || '暂无'}}
</view>
<view class="prolist"> <view class="prolist">
行业类型{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry || '暂无' }} 行业类型{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry || '暂无' }}
</view> </view>
<view class="prolist"> <view class="prolist">岗位工种{{ info.skillNames || '暂无' }}</view>
岗位工种{{info.skillNames || '暂无'}}
</view>
<!-- <view class="fee"> <!-- <view class="fee">
{{info.wage}}{{wageUnit[info.wageUnitCategory]}} {{info.wage}}{{wageUnit[info.wageUnitCategory]}}
</view> --> </view> -->
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">岗位要求</view>
岗位要求
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
年龄要求{{age[info.ageDesc]}} 年龄要求{{age[info.ageDesc]}}
</view> </view>
</view> --> </view> -->
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">年龄要求{{ age[info.ageDesc] || '暂无' }}</view>
年龄要求{{age[info.ageDesc] || '暂无'}}
</view>
</view> </view>
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">学历要求{{ education[info.education] || '暂无' }}</view>
学历要求{{education[info.education] || '暂无'}}
</view>
</view> </view>
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">经验要求{{ info.experienceDesc || '暂无' }}</view>
经验要求{{info.experienceDesc || '暂无'}}
</view>
</view> </view>
<!-- <view class="prolist"> <!-- <view class="prolist">
岗位地址{{info.jobAddress}} 岗位地址{{info.jobAddress}}
</view> --> </view> -->
<view class="prolist proint" style="font-weight: bold;color:#333;"> <view class="prolist proint" style="font-weight: bold; color: #333">岗位描述</view>
岗位描述
</view>
<view class="prolist description"> <view class="prolist description">
{{ info.jobDescription }} {{ info.jobDescription }}
</view> </view>
@@ -64,9 +48,7 @@
</view> </view>
</view> </view>
<!-- 技能标签 end --> <!-- 技能标签 end -->
<view v-if="info.jobSources" class="prolist"> <view v-if="info.jobSources" class="prolist">来源{{ info.jobSources || '暂无' }}</view>
来源{{info.jobSources || '暂无'}}
</view>
</view> </view>
<view class="head"> <view class="head">
<!-- <view class="proname proneed"> <!-- <view class="proname proneed">
@@ -78,16 +60,17 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
用工单位{{info.jobCompanyName}} 用工单位{{info.jobCompanyName}}
</view> --> </view> -->
<view style="display: flex;align-items: center;"> <view style="display: flex; align-items: center">
<image src="../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 20rpx;" mode=""> <image
</image> src="../../static/img/city.png"
<view style="font-size: 30rpx;">{{info.jobCompanyName}}</view> style="width: 40rpx; height: 40rpx; margin-right: 20rpx"
mode=""
></image>
<view style="font-size: 30rpx">{{ info.jobCompanyName }}</view>
</view> </view>
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">地址</view>
地址
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
联系人{{info.callName}} 联系人{{info.callName}}
@@ -99,77 +82,121 @@
<!-- <view class="prolist" v-if="info.callNumber"> <!-- <view class="prolist" v-if="info.callNumber">
座机号{{info.callNumber}} 座机号{{info.callNumber}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">注册地址{{ info.cityId || '暂无' }}</view>
注册地址{{ info.cityId || '暂无'}} <view class="prolist">工作地址{{ info.address || '暂无' }}</view>
</view>
<view class="prolist">
工作地址{{info.address || '暂无'}}
</view>
<view class="map"> <view class="map">
<super-map ref="uMap" style="width: 100%;height: 100%;" :latitude="latitude" :longitude="longitude" <super-map
:open="true" :zoom="14" :min-zoom="10" :max-zoom="20" @regionchange="show = false" :init="false" ref="uMap"
:MapUrl="$config.supperMap" :flag-tip="false"></super-map> style="width: 100%; height: 100%"
:latitude="latitude"
:longitude="longitude"
:open="true"
:zoom="14"
:min-zoom="10"
:max-zoom="20"
@regionchange="show = false"
:init="false"
:MapUrl="$config.supperMap"
:flag-tip="false"
></super-map>
</view> </view>
</view> </view>
<view class="" style="height:200rpx;background-color: #f6f6f6;" v-if="isShow!=='0'"></view> <view class="" style="height: 200rpx; background-color: #f6f6f6" v-if="isShow !== '0'"></view>
<view class="btn" v-if="isShow !== '0' && status === 0"> <view class="btn" v-if="isShow !== '0' && status === 0">
<view @click="collect" <view
style="display: flex;align-items: center;margin-right: 10rpx;flex-direction: column;"> @click="collect"
<image v-if="collectStatus == 0" src="../../static/img/collect.png" style="width: 36rpx;height: 36rpx;" style="display: flex; align-items: center; margin-right: 10rpx; flex-direction: column"
mode=""></image> >
<image v-if="collectStatus == 1" src="../../static/img/collect_yes.png" <image
style="width: 36rpx;height: 36rpx;" mode=""></image> v-if="collectStatus == 0"
<view v-if="collectStatus == 0" style="font-size: 26rpx;color:#707070;margin-top:10rpx;">收藏</view> src="../../static/img/collect.png"
<view v-if="collectStatus == 1" style="font-size: 20rpx;color:#707070;margin-top:10rpx;">已收藏</view> style="width: 36rpx; height: 36rpx"
mode=""
></image>
<image
v-if="collectStatus == 1"
src="../../static/img/collect_yes.png"
style="width: 36rpx; height: 36rpx"
mode=""
></image>
<view v-if="collectStatus == 0" style="font-size: 26rpx; color: #707070; margin-top: 10rpx">收藏</view>
<view v-if="collectStatus == 1" style="font-size: 20rpx; color: #707070; margin-top: 10rpx">
已收藏
</view>
</view> </view>
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
<view @click="submit" class="bottombtn flexbtn" <view
:style="{backgroundColor: applyopen ? '#999999' : '#1B66FF'}"> @click="submit"
class="bottombtn flexbtn"
:style="{ backgroundColor: applyopen ? '#999999' : '#1B66FF' }"
>
申请 申请
</view> </view>
</view> </view>
<view class="btn" v-if="isShow !== '0' && status !== 0"> <view class="btn" v-if="isShow !== '0' && status !== 0">
<!-- <view class="bottombtn lookContract" @click="lookMask">查看合同</view> --> <!-- <view class="bottombtn lookContract" @click="lookMask">查看合同</view> -->
<view @click="collect" <view
style="display: flex;align-items: center;margin-right: 10rpx;flex-direction: column;"> @click="collect"
<image v-if="collectStatus == 0" src="../../static/img/collect.png" style="width: 36rpx;height: 36rpx;" style="display: flex; align-items: center; margin-right: 10rpx; flex-direction: column"
mode=""></image> >
<image v-if="collectStatus == 1" src="../../static/img/collect_yes.png" <image
style="width: 36rpx;height: 36rpx;" mode=""></image> v-if="collectStatus == 0"
<view v-if="collectStatus == 0" style="font-size: 26rpx;color:#707070;margin-top:10rpx;">收藏</view> src="../../static/img/collect.png"
<view v-if="collectStatus == 1" style="font-size: 20rpx;color:#707070;margin-top:10rpx;">已收藏</view> style="width: 36rpx; height: 36rpx"
mode=""
></image>
<image
v-if="collectStatus == 1"
src="../../static/img/collect_yes.png"
style="width: 36rpx; height: 36rpx"
mode=""
></image>
<view v-if="collectStatus == 0" style="font-size: 26rpx; color: #707070; margin-top: 10rpx">收藏</view>
<view v-if="collectStatus == 1" style="font-size: 20rpx; color: #707070; margin-top: 10rpx">
已收藏
</view>
</view> </view>
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
<view class="bottombtn disabledBtn flexbtn" style="border-radius: 45rpx;">已申请</view> <view class="bottombtn disabledBtn flexbtn" style="border-radius: 45rpx">已申请</view>
</view> </view>
<uniMask :maskShow="maskShow"> <uniMask :maskShow="maskShow">
<view class="contractMask"> <view class="contractMask">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="close" @click="close" style="top: 124rpx;">+</view> <view class="close" @click="close" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="close" @click="close">+</view> <view class="close" @click="close">+</view>
<!-- #endif --> <!-- #endif -->
<view style="height: 30px;"></view> <view style="height: 30px"></view>
<img :src="src" alt="" style="width:100%;height: 1000px;"> <img :src="src" alt="" style="width: 100%; height: 1000px" />
<view v-if="nextBtn" class="down" @click="next">下一步</view> <view v-if="nextBtn" class="down" @click="next">下一步</view>
</view> </view>
</uniMask> </uniMask>
<u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp"> <u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp">
<view style="height: 200rpx;padding: 20rpx 40rpx;"> <view style="height: 200rpx; padding: 20rpx 40rpx">
<view style="font-size: 28rpx;font-weight: bold;">重要提示</view> <view style="font-size: 28rpx; font-weight: bold">重要提示</view>
<view style="font-size: 24rpx;color:#707070;margin-top:10rpx;">为保障个人基本劳动权益建议通过平台用工的形式就业</view> <view style="font-size: 24rpx; color: #707070; margin-top: 10rpx">
<view style="text-align: center;font-size:28rpx;margin-top: 30rpx;"> {{ info.callName || '联系人 '}} : 为保障个人基本劳动权益建议通过平台用工的形式就业
<span style="color: blue" v-if="info.callTel" </view>
@click="tools.onDialingPhoneNumber(info.callTel)">{{ info.callTel }}</span> <view style="text-align: center; font-size: 28rpx; margin-top: 30rpx">
{{ info.callName || '联系人 ' }} :
<span style="color: blue" v-if="info.callTel" @click="tools.onDialingPhoneNumber(info.callTel)">
{{ info.callTel }}
</span>
<span style="color: #333333" v-else>无联系方式</span> <span style="color: #333333" v-else>无联系方式</span>
</view> </view>
</view> </view>
@@ -178,7 +205,7 @@
<view v-else-if="showCode" class="codeSealBox"> <view v-else-if="showCode" class="codeSealBox">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="closeCode" @click="closeShowCode" style="top: 124rpx;">+</view> <view class="closeCode" @click="closeShowCode" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="closeCode" @click="closeShowCode">+</view> <view class="closeCode" @click="closeShowCode">+</view>
@@ -188,42 +215,24 @@
<view class="name">签名密码</view> <view class="name">签名密码</view>
<view class="tip">6位数字签名密码</view> <view class="tip">6位数字签名密码</view>
</view> </view>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code> <valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<view class="forget" @click="forget">忘记密码</view> <view class="forget" @click="forget">忘记密码</view>
</view> </view>
</template> </template>
<script> <script>
import { import { mapGetters } from 'vuex';
mapGetters import { missionDetail, submit, getCollectState, updateCollectStatus, workDetail } from '@/api/mission.js';
} from 'vuex' import { GoLogin } from '@/untils/AxiosUtils.js';
import { import { setRead } from '@/api/news.js';
missionDetail, import { checkPass, getPhoneCountNumber } from '@/api/auth.js';
submit,
getCollectState,
updateCollectStatus,
workDetail
} from '@/api/mission.js';
import {
GoLogin
} from '@/untils/AxiosUtils.js';
import {
setRead
} from '@/api/news.js';
import {
checkPass
} from '@/api/auth.js';
import dictionary from '@/common/textdata.js'; import dictionary from '@/common/textdata.js';
import { import { dateFormat } from '../../untils/format.js';
dateFormat import { userrecruitDetail } from '@/api/userrecruit.js';
} from "../../untils/format.js"; import uniMask from '@/components/uni-mask/mask.vue';
import { import validCode from '@/components/p-valid-code/p-valid-code.vue';
userrecruitDetail
} from '@/api/userrecruit.js'
import uniMask from '@/components/uni-mask/mask.vue'
import validCode from '@/components/p-valid-code/p-valid-code.vue'
export default { export default {
data() { data() {
return { return {
@@ -237,15 +246,18 @@
loading: false, loading: false,
latitude: 31.126855, //中心点 latitude: 31.126855, //中心点
longitude: 104.397894, longitude: 104.397894,
covers: [{ //marker标记位置 covers: [
{
//marker标记位置
id: 0, id: 0,
latitude: 0, latitude: 0,
longitude: 0, longitude: 0,
// width:30, // width:30,
// height:30, // height:30,
iconPath: '../../static/img/location.png' iconPath: '../../static/img/location.png',
}], },
missionNo: "", ],
missionNo: '',
isShow: '', isShow: '',
type: '', type: '',
id: '', id: '',
@@ -253,14 +265,15 @@
maxlength: 6, maxlength: 6,
collectStatus: 0, // 收藏状态 collectStatus: 0, // 收藏状态
showPopUp: false, showPopUp: false,
applyopen: false applyopen: false,
} };
}, },
components: { components: {
uniMask, uniMask,
validCode validCode,
}, },
onLoad: function(option) { //option为object类型会序列化上个页面传递的参数 onLoad: function (option) {
//option为object类型会序列化上个页面传递的参数
// this.$store.dispatch('setAutograph') // this.$store.dispatch('setAutograph')
if (option.workId) { if (option.workId) {
this.workId = decodeURIComponent(option.workId); this.workId = decodeURIComponent(option.workId);
@@ -276,46 +289,47 @@
} }
}, },
onShow: function () { onShow: function () {
this.showDetail = true this.showDetail = true;
this.getData(); this.getData();
setTimeout(() => { setTimeout(() => {
console.log(this.area.dic, this.info) console.log(this.area.dic, this.info);
}, 1000) }, 1000);
}, },
onShareAppMessage(obj) { onShareAppMessage(obj) {
return { return {
title: this.info.missionTitle, title: this.info.missionTitle,
path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}` path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}`,
} };
}, },
methods: { methods: {
dateFormat, dateFormat,
collect() { collect() {
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
// console.log('收藏,取消收藏') // console.log('收藏,取消收藏')
const status = this.collectStatus == 0 ? 1 : 0; const status = this.collectStatus == 0 ? 1 : 0;
updateCollectStatus(this.info.id, status, 1).then(res => { updateCollectStatus(this.info.id, status, 1).then((res) => {
if (res.data.code == 200) { if (res.data.code == 200) {
this.getCollectStatus() this.getCollectStatus();
} }
}) });
}, },
callPhone() { async callPhone() {
getPhoneCountNumber();
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
this.showPopUp = true; this.showPopUp = true;
}, },
@@ -324,16 +338,17 @@
}, },
// 获取收藏状态 // 获取收藏状态
getCollectStatus() { getCollectStatus() {
if (!this.$api.haslogin()) return if (!this.$api.haslogin()) return;
getCollectState(this.info.id, 1).then(res => { getCollectState(this.info.id, 1).then((res) => {
// 0 未收藏1 已收藏 // 0 未收藏1 已收藏
// console.log(res) // console.log(res)
this.collectStatus = res.data.data; this.collectStatus = res.data.data;
}) });
}, },
getData: function () { getData: function () {
const self = this; const self = this;
workDetail(self.workId).then(res => { workDetail(self.workId).then(
(res) => {
self.info = res.data.data; self.info = res.data.data;
self.status = res.data.data.status; self.status = res.data.data.status;
self.missionNo = res.data.data.missionNo; self.missionNo = res.data.data.missionNo;
@@ -345,45 +360,46 @@
self.$refs.uMap.initMap({ self.$refs.uMap.initMap({
lat: self.info.lat, lat: self.info.lat,
lon: self.info.lon, lon: self.info.lon,
}) });
} }
if (res.data.data.missionNo.search('ZKRD') >= 0) { if (res.data.data.missionNo.search('ZKRD') >= 0) {
self.applyopen = true self.applyopen = true;
} }
self.showDetail = true; self.showDetail = true;
self.getCollectStatus(); self.getCollectStatus();
if (self.type === 1) { if (self.type === 1) {
// 设置已读 // 设置已读
setRead(self.id).then(res => { setRead(self.id).then((res) => {
self.$store.commit("SET_READ"); self.$store.commit('SET_READ');
})
}
}, error => {
console.log(error);
}); });
}
},
(error) => {
console.log(error);
}
);
}, },
submit: function () { submit: function () {
if (!this.$api.haslogin()) { if (!this.$api.haslogin()) {
GoLogin() GoLogin();
return return;
} }
if (!this.$api.hasResume()) { if (!this.$api.hasResume()) {
this.navTo('/pageMy/my/resume/index', true) this.navTo('/pageMy/my/resume/index', true);
return return;
} }
if (this.applyopen) return; if (this.applyopen) return;
const _that = this const _that = this;
uni.showModal({ uni.showModal({
title: '提示', title: '提示',
content: '请确认申请,申请后不能撤销', content: '请确认申请,申请后不能撤销',
success: function (res) { success: function (res) {
if (res.confirm) { if (res.confirm) {
if (_that.loading) return if (_that.loading) return;
const auth = _that.auth const auth = _that.auth;
const contractOn = _that.info.contractOn const contractOn = _that.info.contractOn;
const sealOk = _that.autograph && _that.autograph.data && _that.autograph const sealOk = _that.autograph && _that.autograph.data && _that.autograph.data.signSrcUrl;
.data.signSrcUrl
// if (sealOk) { // if (sealOk) {
// console.log('直接抢任务') // console.log('直接抢任务')
// this.submitTask() // this.submitTask()
@@ -394,86 +410,91 @@
// this.goSign(1) // this.goSign(1)
// } else // } else
if (contractOn && !sealOk) { if (contractOn && !sealOk) {
_that.goSign(2) _that.goSign(2);
} else if (sealOk && contractOn) { } else if (sealOk && contractOn) {
_that.nextBtn = true _that.nextBtn = true;
_that.lookMask() _that.lookMask();
} else { } else {
_that.submitTask() _that.submitTask();
} }
} else if (res.cancel) { } else if (res.cancel) {
_that.$api.msg('取消申请') _that.$api.msg('取消申请');
}
} }
},
}); });
}, },
// 查看合同 // 查看合同
lookMask() { lookMask() {
this.maskShow = true this.maskShow = true;
}, },
// 岗位申请 // 岗位申请
submitTask() { submitTask() {
submit(this.missionNo, 1).then(res => { submit(this.missionNo, 1).then(
uni.hideLoading() (res) => {
uni.hideLoading();
uni.showToast({ uni.showToast({
title: '操作成功', title: '操作成功',
icon: 'none' icon: 'none',
}); });
this.status = null; this.status = null;
this.loading = false this.loading = false;
}, error => { },
this.loading = false (error) => {
}); this.loading = false;
}
);
}, },
// 步骤 // 步骤
goSign(active) { goSign(active) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/projectInfo/signContract?active=${active}` url: `/pages/projectInfo/signContract?active=${active}`,
}) });
}, },
// 关闭弹窗 // 关闭弹窗
close() { close() {
this.maskShow = false this.maskShow = false;
}, },
// 合同下一步 // 合同下一步
next() { next() {
this.maskShow = false this.maskShow = false;
this.showDetail = false this.showDetail = false;
this.showCode = true this.showCode = true;
}, },
// 输入签名密码 // 输入签名密码
getInpCode(password) { getInpCode(password) {
uni.showLoading({ uni.showLoading({
title: "请求中..." title: '请求中...',
}) });
this.loading = true this.loading = true;
var obj = { var obj = {
pass: password pass: password,
} };
checkPass(obj).then(res => { checkPass(obj)
this.submitTask() .then((res) => {
this.closeShowCode() this.submitTask();
}).catch(err => { this.closeShowCode();
this.loading = false
}) })
.catch((err) => {
this.loading = false;
});
}, },
// 关闭签名密码弹窗 // 关闭签名密码弹窗
closeShowCode() { closeShowCode() {
this.showCode = false this.showCode = false;
this.showDetail = true this.showDetail = true;
}, },
// 忘记密码 // 忘记密码
forget() { forget() {
uni.navigateTo({ uni.navigateTo({
url: `/pageMy/setUserBase/seal/forget?forget=true` url: `/pageMy/setUserBase/seal/forget?forget=true`,
}) });
} },
}, },
computed: { computed: {
...mapGetters(['auth', 'autograph', 'area']), ...mapGetters(['auth', 'autograph', 'area']),
skillNames() { skillNames() {
if (this.info.skillNames) { if (this.info.skillNames) {
return this.info.skillNames.split(',') return this.info.skillNames.split(',');
} }
}, },
// cityNamed() { // cityNamed() {
@@ -484,8 +505,8 @@
// return '无' // return '无'
// } // }
// } // }
} },
} };
</script> </script>
<style lang="scss"> <style lang="scss">
@@ -496,7 +517,7 @@
position: absolute; position: absolute;
right: 36rpx; right: 36rpx;
top: 120rpx; top: 120rpx;
color: #1B66FF; color: #1b66ff;
transform: rotate(45deg); transform: rotate(45deg);
font-size: 40px; font-size: 40px;
} }
@@ -530,15 +551,14 @@
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400; font-weight: 400;
color: #5AA0FA; color: #5aa0fa;
line-height: 38rpx; line-height: 38rpx;
text-align: right; text-align: right;
} }
} }
.contractMask { .contractMask {
background-color: #FFFFFF; background-color: #ffffff;
margin: 30rpx; margin: 30rpx;
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
@@ -548,7 +568,7 @@
.close { .close {
width: 23px; width: 23px;
height: 23px; height: 23px;
color: #1B66FF; color: #1b66ff;
position: fixed; position: fixed;
right: 60rpx; right: 60rpx;
top: 60rpx; top: 60rpx;
@@ -564,10 +584,10 @@
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
text-align: center; text-align: center;
background: #1B66FF; background: #1b66ff;
font-size: 36rpx; font-size: 36rpx;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
} }
} }
@@ -581,7 +601,7 @@
} }
.bottombtn { .bottombtn {
background-color: #1B66FF; background-color: #1b66ff;
color: #fff; color: #fff;
text-align: center; text-align: center;
font-family: PingFangSC-Medium; font-family: PingFangSC-Medium;
@@ -630,7 +650,6 @@
flex-wrap: wrap; flex-wrap: wrap;
justify-content: flex-start; justify-content: flex-start;
margin: 20rpx 0; margin: 20rpx 0;
} }
.proint { .proint {
@@ -640,13 +659,12 @@
.proneed { .proneed {
font-size: 32rpx !important; font-size: 32rpx !important;
} }
.fee { .fee {
font-family: PingFangSC-Medium; font-family: PingFangSC-Medium;
font-size: 32rpx; font-size: 32rpx;
color: #F46161; color: #f46161;
margin-top: 30rpx; margin-top: 30rpx;
} }

View File

@@ -7,45 +7,27 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
任务编码{{info.missionNo}} 任务编码{{info.missionNo}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">发布日期{{ info.stime ? dateFormat(info.stime) : null }}</view>
发布日期{{ info.stime ? dateFormat((info.stime)) : null }} <view class="prolist">招聘人数{{ info.peopleNum }}</view>
</view> <view class="prolist">行业类型{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry }}</view>
<view class="prolist"> <view class="prolist">工种类型{{ info.skillNames }}</view>
招聘人数{{ info.peopleNum }}
</view>
<view class="prolist">
行业类型{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry }}
</view>
<view class="prolist">
工种类型{{ info.skillNames }}
</view>
<!-- <view class="fee"> <!-- <view class="fee">
{{info.wage}}{{wageUnit[info.wageUnitCategory]}} {{info.wage}}{{wageUnit[info.wageUnitCategory]}}
</view> --> </view> -->
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">招工要求</view>
招工要求
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
年龄要求{{age[info.ageDesc]}} 年龄要求{{age[info.ageDesc]}}
</view> </view>
</view> --> </view> -->
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">学历要求{{ info.education }}</view>
学历要求{{ info.education }} <view class="protype">经验要求{{ info.experienceDesc }}</view>
</view>
<view class="protype">
经验要求{{ info.experienceDesc }}
</view>
</view>
<view class="prolist">
招工地址{{ info.jobAddress }}
</view>
<view class="prolist proint" style="font-weight: bold;color:#333;">
招工描述
</view> </view>
<view class="prolist">招工地址{{ info.jobAddress }}</view>
<view class="prolist proint" style="font-weight: bold; color: #333">招工描述</view>
<view class="prolist description"> <view class="prolist description">
{{ info.jobDescription }} {{ info.jobDescription }}
</view> </view>
@@ -70,16 +52,17 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
用工单位{{info.jobCompanyName}} 用工单位{{info.jobCompanyName}}
</view> --> </view> -->
<view style="display: flex;align-items: center;"> <view style="display: flex; align-items: center">
<image src="../../../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 20rpx;" <image
mode=""></image> src="../../../../static/img/city.png"
<view style="font-size: 30rpx;">{{ info.jobCompanyName }}</view> style="width: 40rpx; height: 40rpx; margin-right: 20rpx"
mode=""
></image>
<view style="font-size: 30rpx">{{ info.jobCompanyName }}</view>
</view> </view>
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">地址</view>
地址
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
联系人{{info.callName}} 联系人{{info.callName}}
@@ -91,38 +74,48 @@
<!-- <view class="prolist" v-if="info.callNumber"> <!-- <view class="prolist" v-if="info.callNumber">
座机号{{info.callNumber}} 座机号{{info.callNumber}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">岗位地址{{ info.address }}</view>
岗位地址{{ info.address }}
</view>
<view class="map"> <view class="map">
<super-map ref="uMap" style="width: 100%;height: 100%;" :latitude="latitude" :longitude="longitude" <super-map
:open="true" :zoom="14" :min-zoom="10" :max-zoom="20" :MapUrl="$config.supperMap" ref="uMap"
:flag-tip="false"></super-map> style="width: 100%; height: 100%"
:latitude="latitude"
:longitude="longitude"
:open="true"
:zoom="14"
:min-zoom="10"
:max-zoom="20"
:MapUrl="$config.supperMap"
:flag-tip="false"
></super-map>
</view> </view>
<!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> --> <!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> -->
</view> </view>
<view class="" style="height:200rpx;background-color: #f6f6f6;" v-if="isShow !== '0'"></view> <view class="" style="height: 200rpx; background-color: #f6f6f6" v-if="isShow !== '0'"></view>
<view class="btn"> <view class="btn">
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
</view> </view>
<uniMask :maskShow="maskShow"> <uniMask :maskShow="maskShow">
<view class="contractMask"> <view class="contractMask">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="close" @click="close" style="top: 124rpx;">+</view> <view class="close" @click="close" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="close" @click="close">+</view> <view class="close" @click="close">+</view>
<!-- #endif --> <!-- #endif -->
<view style="height: 30px;"></view> <view style="height: 30px"></view>
<img :src="src" alt="" style="width:100%;height: 1000px;"> <img :src="src" alt="" style="width: 100%; height: 1000px" />
<view v-if="nextBtn" class="down" @click="next">下一步</view> <view v-if="nextBtn" class="down" @click="next">下一步</view>
</view> </view>
</uniMask> </uniMask>
<u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp"> <u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp">
<view style="min-height: 100rpx;padding: 60rpx 40rpx;"> <view style="min-height: 100rpx; padding: 60rpx 40rpx">
<view class="contactWrapper" v-for="(item, index) in info.applyList" :key="index"> <view class="contactWrapper" v-for="(item, index) in info.applyList" :key="index">
<view>{{ item.realName }} : {{ item.telphone }}</view> <view>{{ item.realName }} : {{ item.telphone }}</view>
<view class="applyTime">申请时间{{ item.applyTime }}</view> <view class="applyTime">申请时间{{ item.applyTime }}</view>
@@ -133,7 +126,7 @@
<view v-else-if="showCode" class="codeSealBox"> <view v-else-if="showCode" class="codeSealBox">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="closeCode" @click="closeShowCode" style="top: 124rpx;">+</view> <view class="closeCode" @click="closeShowCode" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="closeCode" @click="closeShowCode">+</view> <view class="closeCode" @click="closeShowCode">+</view>
@@ -143,38 +136,24 @@
<view class="name">签名密码</view> <view class="name">签名密码</view>
<view class="tip">6位数字签名密码</view> <view class="tip">6位数字签名密码</view>
</view> </view>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code> <valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<view class="forget" @click="forget">忘记密码</view> <view class="forget" @click="forget">忘记密码</view>
</view> </view>
</template> </template>
<script> <script>
import { import { mapGetters } from 'vuex';
mapGetters import { recruit_missionDetail } from '@/api/mission.js';
} from 'vuex' import { GoLogin } from '@/untils/AxiosUtils.js';
import { import { setRead } from '@/api/news.js';
recruit_missionDetail, import { checkPass, getPhoneCountNumber } from '@/api/auth.js';
} from '@/api/mission.js';
import {
GoLogin
} from '@/untils/AxiosUtils.js';
import {
setRead
} from '@/api/news.js';
import {
checkPass
} from '@/api/auth.js';
import dictionary from '@/common/textdata.js'; import dictionary from '@/common/textdata.js';
import { import { dateFormat } from '../../../../untils/format.js';
dateFormat import uniMask from '@/components/uni-mask/mask.vue';
} from "../../../../untils/format.js"; import validCode from '@/components/p-valid-code/p-valid-code.vue';
import uniMask from '@/components/uni-mask/mask.vue' import { getuserrecruitDetailApp } from '@/api/userrecruit.js';
import validCode from '@/components/p-valid-code/p-valid-code.vue'
import {
getuserrecruitDetailApp
} from '@/api/userrecruit.js'
export default { export default {
data() { data() {
return { return {
@@ -188,15 +167,18 @@
loading: false, loading: false,
latitude: 39.909, //中心点 latitude: 39.909, //中心点
longitude: 116.39742, longitude: 116.39742,
covers: [{ //marker标记位置 covers: [
{
//marker标记位置
id: 0, id: 0,
latitude: 0, latitude: 0,
longitude: 0, longitude: 0,
// width:30, // width:30,
// height:30, // height:30,
iconPath: '../../../../static/img/location.png' iconPath: '../../../../static/img/location.png',
}], },
missionNo: "", ],
missionNo: '',
isShow: '', isShow: '',
type: '', type: '',
id: '', id: '',
@@ -204,14 +186,15 @@
maxlength: 6, maxlength: 6,
collectStatus: 0, // 收藏状态 collectStatus: 0, // 收藏状态
showPopUp: false, showPopUp: false,
jobType: null jobType: null,
} };
}, },
components: { components: {
uniMask, uniMask,
validCode validCode,
}, },
onLoad: function(option) { //option为object类型会序列化上个页面传递的参数 onLoad: function (option) {
//option为object类型会序列化上个页面传递的参数
// this.$store.dispatch('setAutograph') // this.$store.dispatch('setAutograph')
if (option.workId) { if (option.workId) {
this.workId = decodeURIComponent(option.workId); this.workId = decodeURIComponent(option.workId);
@@ -226,23 +209,25 @@
this.id = option.id; //消息id this.id = option.id; //消息id
} }
if (option.jobType) { if (option.jobType) {
this.jobType = option.jobType this.jobType = option.jobType;
} }
}, },
onShow: function () { onShow: function () {
this.showDetail = true this.showDetail = true;
this.getData(); this.getData();
}, },
onShareAppMessage(obj) { onShareAppMessage(obj) {
return { return {
title: this.info.missionTitle, title: this.info.missionTitle,
path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}` path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}`,
} };
}, },
methods: { methods: {
dateFormat, dateFormat,
callPhone() { async callPhone() {
this.showPopUp = true;
await getPhoneCountNumber();
this.showPopUp = true; this.showPopUp = true;
}, },
closePopUp() { closePopUp() {
@@ -250,14 +235,14 @@
}, },
async getData() { async getData() {
const self = this; const self = this;
let resData = null let resData = null;
if (this.jobType) { if (this.jobType) {
resData = await getuserrecruitDetailApp({ resData = await getuserrecruitDetailApp({
id: this.id, id: this.id,
jobType: this.jobType jobType: this.jobType,
}) });
} else { } else {
resData = await recruit_missionDetail(self.workId, self.type) resData = await recruit_missionDetail(self.workId, self.type);
} }
if (resData.data?.code === 200) { if (resData.data?.code === 200) {
self.info = resData.data.data; self.info = resData.data.data;
@@ -272,55 +257,57 @@
}, },
// 查看合同 // 查看合同
lookMask() { lookMask() {
this.maskShow = true this.maskShow = true;
}, },
// 关闭弹窗 // 关闭弹窗
close() { close() {
this.maskShow = false this.maskShow = false;
}, },
// 合同下一步 // 合同下一步
next() { next() {
this.maskShow = false this.maskShow = false;
this.showDetail = false this.showDetail = false;
this.showCode = true this.showCode = true;
}, },
// 输入签名密码 // 输入签名密码
getInpCode(password) { getInpCode(password) {
uni.showLoading({ uni.showLoading({
title: "请求中..." title: '请求中...',
}) });
this.loading = true this.loading = true;
var obj = { var obj = {
pass: password pass: password,
} };
checkPass(obj).then(res => { checkPass(obj)
this.submitTask() .then((res) => {
this.closeShowCode() this.submitTask();
}).catch(err => { this.closeShowCode();
this.loading = false
}) })
.catch((err) => {
this.loading = false;
});
}, },
// 关闭签名密码弹窗 // 关闭签名密码弹窗
closeShowCode() { closeShowCode() {
this.showCode = false this.showCode = false;
this.showDetail = true this.showDetail = true;
}, },
// 忘记密码 // 忘记密码
forget() { forget() {
uni.navigateTo({ uni.navigateTo({
url: `/pageMy/setUserBase/seal/forget?forget=true` url: `/pageMy/setUserBase/seal/forget?forget=true`,
}) });
} },
}, },
computed: { computed: {
...mapGetters(['auth', 'autograph']), ...mapGetters(['auth', 'autograph']),
skillNames() { skillNames() {
if (this.info.skillNames) { if (this.info.skillNames) {
return this.info.skillNames.split(',') return this.info.skillNames.split(',');
}
}
}
} }
},
},
};
</script> </script>
<style lang="scss"> <style lang="scss">
@@ -331,7 +318,7 @@
position: absolute; position: absolute;
right: 36rpx; right: 36rpx;
top: 120rpx; top: 120rpx;
color: #1B66FF; color: #1b66ff;
transform: rotate(45deg); transform: rotate(45deg);
font-size: 40px; font-size: 40px;
} }
@@ -365,15 +352,14 @@
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400; font-weight: 400;
color: #5AA0FA; color: #5aa0fa;
line-height: 38rpx; line-height: 38rpx;
text-align: right; text-align: right;
} }
} }
.contractMask { .contractMask {
background-color: #FFFFFF; background-color: #ffffff;
margin: 30rpx; margin: 30rpx;
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
@@ -383,7 +369,7 @@
.close { .close {
width: 23px; width: 23px;
height: 23px; height: 23px;
color: #1B66FF; color: #1b66ff;
position: fixed; position: fixed;
right: 60rpx; right: 60rpx;
top: 60rpx; top: 60rpx;
@@ -399,10 +385,10 @@
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
text-align: center; text-align: center;
background: #1B66FF; background: #1b66ff;
font-size: 36rpx; font-size: 36rpx;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
} }
} }
@@ -416,7 +402,7 @@
} }
.bottombtn { .bottombtn {
background-color: #1B66FF; background-color: #1b66ff;
color: #fff; color: #fff;
text-align: center; text-align: center;
border-radius: 10rpx; border-radius: 10rpx;
@@ -465,7 +451,6 @@
flex-wrap: wrap; flex-wrap: wrap;
justify-content: flex-start; justify-content: flex-start;
margin: 20rpx 0; margin: 20rpx 0;
} }
.proint { .proint {
@@ -475,13 +460,12 @@
.proneed { .proneed {
font-size: 32rpx !important; font-size: 32rpx !important;
} }
.fee { .fee {
font-family: PingFangSC-Medium; font-family: PingFangSC-Medium;
font-size: 32rpx; font-size: 32rpx;
color: #F46161; color: #f46161;
margin-top: 30rpx; margin-top: 30rpx;
} }
@@ -532,7 +516,6 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.applyTime { .applyTime {

View File

@@ -7,45 +7,27 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
任务编码{{info.missionNo}} 任务编码{{info.missionNo}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">发布日期{{ dateFormat(info.stime) }}</view>
发布日期{{ dateFormat((info.stime)) }} <view class="prolist">招聘人数{{ info.peopleNum }}</view>
</view> <view class="prolist">行业类型{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry }}</view>
<view class="prolist"> <view class="prolist">工种类型{{ info.skillNames }}</view>
招聘人数{{ info.peopleNum }}
</view>
<view class="prolist">
行业类型{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry }}
</view>
<view class="prolist">
工种类型{{ info.skillNames }}
</view>
<!-- <view class="fee"> <!-- <view class="fee">
{{info.wage}}{{wageUnit[info.wageUnitCategory]}} {{info.wage}}{{wageUnit[info.wageUnitCategory]}}
</view> --> </view> -->
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">岗位要求</view>
岗位要求
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
年龄要求{{age[info.ageDesc]}} 年龄要求{{age[info.ageDesc]}}
</view> </view>
</view> --> </view> -->
<view class="prolist"> <view class="prolist">
<view class="protype"> <view class="protype">学历要求{{ info.education }}</view>
学历要求{{ info.education }} <view class="protype">经验要求{{ info.experienceDesc }}</view>
</view>
<view class="protype">
经验要求{{ info.experienceDesc }}
</view>
</view>
<view class="prolist">
岗位地址{{ info.jobAddress }}
</view>
<view class="prolist proint" style="font-weight: bold;color:#333;">
任务描述
</view> </view>
<view class="prolist">岗位地址{{ info.jobAddress }}</view>
<view class="prolist proint" style="font-weight: bold; color: #333">任务描述</view>
<view class="prolist description"> <view class="prolist description">
{{ info.jobDescription }} {{ info.jobDescription }}
</view> </view>
@@ -56,9 +38,7 @@
</view> </view>
</view> </view>
<!-- 技能标签 end --> <!-- 技能标签 end -->
<view v-if="info.jobSources" class="prolist"> <view v-if="info.jobSources" class="prolist">来源{{ info.jobSources }}</view>
来源{{ info.jobSources }}
</view>
</view> </view>
<view class="head"> <view class="head">
<!-- <view class="proname proneed"> <!-- <view class="proname proneed">
@@ -70,16 +50,17 @@
<!-- <view class="prolist"> <!-- <view class="prolist">
用工单位{{info.jobCompanyName}} 用工单位{{info.jobCompanyName}}
</view> --> </view> -->
<view style="display: flex;align-items: center;"> <view style="display: flex; align-items: center">
<image src="../../../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 20rpx;" <image
mode=""></image> src="../../../../static/img/city.png"
<view style="font-size: 30rpx;">{{ info.jobCompanyName }}</view> style="width: 40rpx; height: 40rpx; margin-right: 20rpx"
mode=""
></image>
<view style="font-size: 30rpx">{{ info.jobCompanyName }}</view>
</view> </view>
</view> </view>
<view class="head"> <view class="head">
<view class="proname proneed"> <view class="proname proneed">地址</view>
地址
</view>
<!-- <view class="prolist"> <!-- <view class="prolist">
<view class="protype"> <view class="protype">
联系人{{info.callName}} 联系人{{info.callName}}
@@ -91,38 +72,48 @@
<!-- <view class="prolist" v-if="info.callNumber"> <!-- <view class="prolist" v-if="info.callNumber">
座机号{{info.callNumber}} 座机号{{info.callNumber}}
</view> --> </view> -->
<view class="prolist"> <view class="prolist">岗位地址{{ info.address }}</view>
岗位地址{{ info.address }}
</view>
<view class="map"> <view class="map">
<super-map ref="uMap" style="width: 100%;height: 100%;" :latitude="latitude" :longitude="longitude" <super-map
:open="true" :zoom="14" :min-zoom="10" :max-zoom="20" :MapUrl="$config.supperMap" ref="uMap"
:flag-tip="false"></super-map> style="width: 100%; height: 100%"
:latitude="latitude"
:longitude="longitude"
:open="true"
:zoom="14"
:min-zoom="10"
:max-zoom="20"
:MapUrl="$config.supperMap"
:flag-tip="false"
></super-map>
</view> </view>
<!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> --> <!-- <map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map> -->
</view> </view>
<view class="" style="height:200rpx;background-color: #f6f6f6;" v-if="isShow !== '0'"></view> <view class="" style="height: 200rpx; background-color: #f6f6f6" v-if="isShow !== '0'"></view>
<view class="btn"> <view class="btn">
<view @click="callPhone" class="bottombtn flexbtn" <view
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;"> @click="callPhone"
class="bottombtn flexbtn"
style="margin-right: 10rpx; background-color: #fbad17; border-radius: 45rpx"
>
电话联系 电话联系
</view> </view>
</view> </view>
<uniMask :maskShow="maskShow"> <uniMask :maskShow="maskShow">
<view class="contractMask"> <view class="contractMask">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="close" @click="close" style="top: 124rpx;">+</view> <view class="close" @click="close" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="close" @click="close">+</view> <view class="close" @click="close">+</view>
<!-- #endif --> <!-- #endif -->
<view style="height: 30px;"></view> <view style="height: 30px"></view>
<img :src="src" alt="" style="width:100%;height: 1000px;"> <img :src="src" alt="" style="width: 100%; height: 1000px" />
<view v-if="nextBtn" class="down" @click="next">下一步</view> <view v-if="nextBtn" class="down" @click="next">下一步</view>
</view> </view>
</uniMask> </uniMask>
<u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp"> <u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp">
<view style="min-height: 100rpx;padding: 60rpx 40rpx;"> <view style="min-height: 100rpx; padding: 60rpx 40rpx">
<view class="contactWrapper" v-for="(item, index) in info.applyList" :key="index"> <view class="contactWrapper" v-for="(item, index) in info.applyList" :key="index">
<view>{{ item.realName }} : {{ item.telphone }}</view> <view>{{ item.realName }} : {{ item.telphone }}</view>
<view class="applyTime">申请时间{{ item.applyTime }}</view> <view class="applyTime">申请时间{{ item.applyTime }}</view>
@@ -133,7 +124,7 @@
<view v-else-if="showCode" class="codeSealBox"> <view v-else-if="showCode" class="codeSealBox">
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<view class="closeCode" @click="closeShowCode" style="top: 124rpx;">+</view> <view class="closeCode" @click="closeShowCode" style="top: 124rpx">+</view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP-WEIXIN --> <!-- #ifdef MP-WEIXIN -->
<view class="closeCode" @click="closeShowCode">+</view> <view class="closeCode" @click="closeShowCode">+</view>
@@ -143,38 +134,24 @@
<view class="name">签名密码</view> <view class="name">签名密码</view>
<view class="tip">6位数字签名密码</view> <view class="tip">6位数字签名密码</view>
</view> </view>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code> <valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code>
<view style="height: 36px;"></view> <view style="height: 36px"></view>
<view class="forget" @click="forget">忘记密码</view> <view class="forget" @click="forget">忘记密码</view>
</view> </view>
</template> </template>
<script> <script>
import { import { mapGetters } from 'vuex';
mapGetters import { recruit_missionDetail } from '@/api/mission.js';
} from 'vuex' import { GoLogin } from '@/untils/AxiosUtils.js';
import { import { setRead } from '@/api/news.js';
recruit_missionDetail import { checkPass, getPhoneCountNumber } from '@/api/auth.js';
} from '@/api/mission.js';
import {
GoLogin
} from '@/untils/AxiosUtils.js';
import {
setRead
} from '@/api/news.js';
import {
checkPass
} from '@/api/auth.js';
import dictionary from '@/common/textdata.js'; import dictionary from '@/common/textdata.js';
import { import { dateFormat } from '../../../../untils/format.js';
dateFormat import { userrecruitDetail } from '@/api/userrecruit.js';
} from "../../../../untils/format.js"; import uniMask from '@/components/uni-mask/mask.vue';
import { import validCode from '@/components/p-valid-code/p-valid-code.vue';
userrecruitDetail
} from '@/api/userrecruit.js'
import uniMask from '@/components/uni-mask/mask.vue'
import validCode from '@/components/p-valid-code/p-valid-code.vue'
export default { export default {
data() { data() {
return { return {
@@ -188,15 +165,18 @@
loading: false, loading: false,
latitude: 39.909, //中心点 latitude: 39.909, //中心点
longitude: 116.39742, longitude: 116.39742,
covers: [{ //marker标记位置 covers: [
{
//marker标记位置
id: 0, id: 0,
latitude: 0, latitude: 0,
longitude: 0, longitude: 0,
// width:30, // width:30,
// height:30, // height:30,
iconPath: '../../../../static/img/location.png' iconPath: '../../../../static/img/location.png',
}], },
missionNo: "", ],
missionNo: '',
isShow: '', isShow: '',
type: '', type: '',
id: '', id: '',
@@ -204,13 +184,14 @@
maxlength: 6, maxlength: 6,
collectStatus: 0, // 收藏状态 collectStatus: 0, // 收藏状态
showPopUp: false, showPopUp: false,
} };
}, },
components: { components: {
uniMask, uniMask,
validCode validCode,
}, },
onLoad: function(option) { //option为object类型会序列化上个页面传递的参数 onLoad: function (option) {
//option为object类型会序列化上个页面传递的参数
// this.$store.dispatch('setAutograph') // this.$store.dispatch('setAutograph')
if (option.workId) { if (option.workId) {
this.workId = decodeURIComponent(option.workId); this.workId = decodeURIComponent(option.workId);
@@ -226,27 +207,28 @@
} }
}, },
onShow: function () { onShow: function () {
this.showDetail = true this.showDetail = true;
this.getData(); this.getData();
}, },
onShareAppMessage(obj) { onShareAppMessage(obj) {
return { return {
title: this.info.missionTitle, title: this.info.missionTitle,
path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}` path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}`,
} };
}, },
methods: { methods: {
dateFormat, dateFormat,
callPhone() { async callPhone() {
this.showPopUp = true; this.showPopUp = true;
await getPhoneCountNumber();
}, },
closePopUp() { closePopUp() {
this.showPopUp = false; this.showPopUp = false;
}, },
getData: function () { getData: function () {
const self = this; const self = this;
recruit_missionDetail(self.workId, self.type).then(res => { recruit_missionDetail(self.workId, self.type).then(
(res) => {
self.info = res.data.data; self.info = res.data.data;
self.status = res.data.data.status; self.status = res.data.data.status;
self.missionNo = res.data.data.missionNo; self.missionNo = res.data.data.missionNo;
@@ -255,61 +237,65 @@
self.covers[0].latitude = self.info.lat; self.covers[0].latitude = self.info.lat;
self.covers[0].longitude = self.info.lon; self.covers[0].longitude = self.info.lon;
self.showDetail = true; self.showDetail = true;
}, error => { },
(error) => {
console.log(error); console.log(error);
}); }
);
}, },
// 查看合同 // 查看合同
lookMask() { lookMask() {
this.maskShow = true this.maskShow = true;
}, },
// 关闭弹窗 // 关闭弹窗
close() { close() {
this.maskShow = false this.maskShow = false;
}, },
// 合同下一步 // 合同下一步
next() { next() {
this.maskShow = false this.maskShow = false;
this.showDetail = false this.showDetail = false;
this.showCode = true this.showCode = true;
}, },
// 输入签名密码 // 输入签名密码
getInpCode(password) { getInpCode(password) {
uni.showLoading({ uni.showLoading({
title: "请求中..." title: '请求中...',
}) });
this.loading = true this.loading = true;
var obj = { var obj = {
pass: password pass: password,
} };
checkPass(obj).then(res => { checkPass(obj)
this.submitTask() .then((res) => {
this.closeShowCode() this.submitTask();
}).catch(err => { this.closeShowCode();
this.loading = false
}) })
.catch((err) => {
this.loading = false;
});
}, },
// 关闭签名密码弹窗 // 关闭签名密码弹窗
closeShowCode() { closeShowCode() {
this.showCode = false this.showCode = false;
this.showDetail = true this.showDetail = true;
}, },
// 忘记密码 // 忘记密码
forget() { forget() {
uni.navigateTo({ uni.navigateTo({
url: `/pageMy/setUserBase/seal/forget?forget=true` url: `/pageMy/setUserBase/seal/forget?forget=true`,
}) });
} },
}, },
computed: { computed: {
...mapGetters(['auth', 'autograph']), ...mapGetters(['auth', 'autograph']),
skillNames() { skillNames() {
if (this.info.skillNames) { if (this.info.skillNames) {
return this.info.skillNames.split(',') return this.info.skillNames.split(',');
}
}
}
} }
},
},
};
</script> </script>
<style lang="scss"> <style lang="scss">
@@ -320,7 +306,7 @@
position: absolute; position: absolute;
right: 36rpx; right: 36rpx;
top: 120rpx; top: 120rpx;
color: #1B66FF; color: #1b66ff;
transform: rotate(45deg); transform: rotate(45deg);
font-size: 40px; font-size: 40px;
} }
@@ -354,15 +340,14 @@
font-size: 28rpx; font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400; font-weight: 400;
color: #5AA0FA; color: #5aa0fa;
line-height: 38rpx; line-height: 38rpx;
text-align: right; text-align: right;
} }
} }
.contractMask { .contractMask {
background-color: #FFFFFF; background-color: #ffffff;
margin: 30rpx; margin: 30rpx;
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
@@ -372,7 +357,7 @@
.close { .close {
width: 23px; width: 23px;
height: 23px; height: 23px;
color: #1B66FF; color: #1b66ff;
position: fixed; position: fixed;
right: 60rpx; right: 60rpx;
top: 60rpx; top: 60rpx;
@@ -388,10 +373,10 @@
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
text-align: center; text-align: center;
background: #1B66FF; background: #1b66ff;
font-size: 36rpx; font-size: 36rpx;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
} }
} }
@@ -405,7 +390,7 @@
} }
.bottombtn { .bottombtn {
background-color: #1B66FF; background-color: #1b66ff;
color: #fff; color: #fff;
text-align: center; text-align: center;
border-radius: 10rpx; border-radius: 10rpx;
@@ -454,7 +439,6 @@
flex-wrap: wrap; flex-wrap: wrap;
justify-content: flex-start; justify-content: flex-start;
margin: 20rpx 0; margin: 20rpx 0;
} }
.proint { .proint {
@@ -464,13 +448,12 @@
.proneed { .proneed {
font-size: 32rpx !important; font-size: 32rpx !important;
} }
.fee { .fee {
font-family: PingFangSC-Medium; font-family: PingFangSC-Medium;
font-size: 32rpx; font-size: 32rpx;
color: #F46161; color: #f46161;
margin-top: 30rpx; margin-top: 30rpx;
} }
@@ -521,7 +504,6 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.applyTime { .applyTime {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 563 B

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 809 B

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 888 B

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 679 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 531 B

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 637 B

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 881 B

After

Width:  |  Height:  |  Size: 856 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 975 B

After

Width:  |  Height:  |  Size: 962 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 875 B

After

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 538 B

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 783 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 895 B

View File

@@ -8,7 +8,9 @@ import {
getUserInfo, getUserInfo,
logout, logout,
refreshToken, refreshToken,
mobileIsCms mobileIsCms,
noticeIsEnable,
setNoticeIsEnable
} from '@/api/user' } from '@/api/user'
import md5 from 'js-md5' import md5 from 'js-md5'
import { import {
@@ -71,8 +73,42 @@ const user = {
userLocation: null, userLocation: null,
userIsCms: false, userIsCms: false,
resumeInfo: {}, resumeInfo: {},
isEnbleNotice: false,
}, },
actions: { actions: {
getNoticeState({
commit,
dispatch
}) {
noticeIsEnable().then(res => {
if (res.data.code === 200) {
const data = res.data.data ? true : false
commit('upDateNoticeState', data)
}
})
},
setNoticeOpen({
commit,
dispatch
}) {
setNoticeIsEnable(1).then(res => {
if (res.code === 200) {
const data = res.data
commit('upDateNoticeState', true)
}
})
},
setNoticeClose({
commit,
dispatch
}) {
setNoticeIsEnable(0).then(res => {
if (res.code === 200) {
const data = res.data
commit('upDateNoticeState', false)
}
})
},
getResumeInfo({ getResumeInfo({
commit, commit,
dispatch dispatch
@@ -242,6 +278,9 @@ const user = {
} }
}, },
mutations: { mutations: {
upDateNoticeState(state, payload) {
state.isEnbleNotice = payload
},
upDataResumeInfo(state, payload) { upDataResumeInfo(state, payload) {
state.resumeInfo = payload state.resumeInfo = payload
}, },