更新
This commit is contained in:
@@ -158,6 +158,19 @@ export const myBrowing = (current, size, status) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*招工消息通知列表*/
|
||||||
|
export const recruitmentNewsList = (current, size, status) => {
|
||||||
|
return request({
|
||||||
|
url: '/api/jobslink-api/user/userrecruit/getCollectList',
|
||||||
|
method: 'get',
|
||||||
|
params: {
|
||||||
|
current,
|
||||||
|
size,
|
||||||
|
status
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/*任务详情*/
|
/*任务详情*/
|
||||||
export const missionDetail = (missionNo) => {
|
export const missionDetail = (missionNo) => {
|
||||||
return request({
|
return request({
|
||||||
@@ -168,6 +181,17 @@ export const missionDetail = (missionNo) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
/*任务详情*/
|
||||||
|
export const recruit_missionDetail = (missionNo,type) => {
|
||||||
|
return request({
|
||||||
|
url: '/api/jobslink-api/user/userrecruit/getCollectUserList',
|
||||||
|
method: 'get',
|
||||||
|
params: {
|
||||||
|
id:missionNo,
|
||||||
|
type
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/*岗位详情*/
|
/*岗位详情*/
|
||||||
// workDetail
|
// workDetail
|
||||||
|
|||||||
28
pages.json
28
pages.json
@@ -317,6 +317,34 @@
|
|||||||
"enablePullDownRefresh": false
|
"enablePullDownRefresh": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/recruit/subPage/newsDetail/projectInfo",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "任务详情",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/recruit/subPage/newsDetail/signContract",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "任务详情",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/recruit/subPage/newsDetail/userrecruitInfo",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "任务详情",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "pages/recruit/subPage/newsDetail/workInfo",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "任务详情",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pages/news/jobProjectList",
|
"path": "pages/news/jobProjectList",
|
||||||
"style": {
|
"style": {
|
||||||
|
|||||||
@@ -79,6 +79,7 @@
|
|||||||
icon:'none',
|
icon:'none',
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
debugger
|
||||||
var that = this
|
var that = this
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.$store.dispatch("LoginByUsername", {
|
this.$store.dispatch("LoginByUsername", {
|
||||||
|
|||||||
538
pages/recruit/subPage/newsDetail/projectInfo.vue
Normal file
538
pages/recruit/subPage/newsDetail/projectInfo.vue
Normal file
@@ -0,0 +1,538 @@
|
|||||||
|
<template>
|
||||||
|
<view v-if="showDetail">
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname">
|
||||||
|
{{ info.missionTitle }}
|
||||||
|
</view>
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
任务编码:{{info.missionNo}}
|
||||||
|
</view> -->
|
||||||
|
<view class="prolist">
|
||||||
|
任务日期:{{ dateFormat((info.stime)) }}至{{ dateFormat((info.etime)) }}
|
||||||
|
</view>
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
报名截止:{{dateFormat((info.etimePub))}}
|
||||||
|
</view> -->
|
||||||
|
<view class="prolist">
|
||||||
|
行业类型:{{ info.tradeNames }}
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
工种类型:{{ info.worktypeNames }}
|
||||||
|
</view>
|
||||||
|
<view class="fee">
|
||||||
|
{{ info.wage }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname proneed">
|
||||||
|
任务要求
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
<view class="protype">
|
||||||
|
年龄要求:{{ age[info.ageDesc] }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
<view class="protype">
|
||||||
|
学历要求:{{ education[info.education] }}
|
||||||
|
</view>
|
||||||
|
<view class="protype">
|
||||||
|
经验要求:{{ experience[info.experienceDesc] }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="prolist proint" style="font-weight: bold;color:#333;">
|
||||||
|
任务描述
|
||||||
|
</view>
|
||||||
|
<view class="prolist description">
|
||||||
|
{{ info.missionDesc }}
|
||||||
|
</view>
|
||||||
|
<!-- 技能标签 start -->
|
||||||
|
<view class="ask">
|
||||||
|
<view class="askList" v-for="(item, index) in skillNames" :key="index">
|
||||||
|
{{ item }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 技能标签 end -->
|
||||||
|
<view v-if="info.jobSources" class="prolist">
|
||||||
|
来源:{{ info.jobSources }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname proneed">
|
||||||
|
公司信息
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
{{ info.companyName }}
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
公司地址:{{ info.companyAddress }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname proneed">
|
||||||
|
地址
|
||||||
|
</view>
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
<view class="protype">
|
||||||
|
联系人:{{info.callName}}
|
||||||
|
</view>
|
||||||
|
<view class="protype">
|
||||||
|
联系方式:{{info.callTel}}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="prolist" v-if="info.callNumber">
|
||||||
|
座机号:{{info.callNumber}}
|
||||||
|
</view> -->
|
||||||
|
<view class="prolist">
|
||||||
|
任务地址:{{ info.address }}
|
||||||
|
</view>
|
||||||
|
<map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map>
|
||||||
|
</view>
|
||||||
|
<view class="" style="height:200rpx;background-color: #f6f6f6;" v-if="isShow !== '0'"></view>
|
||||||
|
<view class="btn">
|
||||||
|
|
||||||
|
<view @click="callPhone" class="bottombtn flexbtn"
|
||||||
|
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;">
|
||||||
|
电话联系
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<uniMask :maskShow="maskShow">
|
||||||
|
<view class="contractMask">
|
||||||
|
<!-- #ifdef H5 || APP-PLUS -->
|
||||||
|
<view class="close" @click="close" style="top: 124rpx;">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<view class="close" @click="close">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<view style="height: 30px;"></view>
|
||||||
|
<img :src="src" alt="" style="width:100%;height: 1000px;">
|
||||||
|
<view v-if="nextBtn" class="down" @click="next">下一步</view>
|
||||||
|
</view>
|
||||||
|
</uniMask>
|
||||||
|
<u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp">
|
||||||
|
<view style="min-height: 200rpx;padding: 20rpx 40rpx;">
|
||||||
|
<!-- <view style="font-size: 28rpx;font-weight: bold;">重要提示:</view>
|
||||||
|
<view style="font-size: 24rpx;color:#707070;margin-top:10rpx;">为保障个人基本劳动权益,建议通过平台用工的形式就业</view> -->
|
||||||
|
<view v-for="(item, index) in info.applyList" :key="index"
|
||||||
|
style="text-align: center;font-size:28rpx;margin-top: 30rpx;"> {{ item.realName }} : {{
|
||||||
|
item.telphone }} 申请时间: {{
|
||||||
|
item.applyTime }}</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view v-else-if="showCode" class="codeSealBox">
|
||||||
|
<!-- #ifdef H5 || APP-PLUS -->
|
||||||
|
<view class="closeCode" @click="closeShowCode" style="top: 124rpx;">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<view class="closeCode" @click="closeShowCode">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
|
||||||
|
<view class="title">
|
||||||
|
<view class="name">签名密码</view>
|
||||||
|
<view class="tip">6位数字签名密码</view>
|
||||||
|
</view>
|
||||||
|
<view style="height: 36px;"></view>
|
||||||
|
<valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code>
|
||||||
|
<view style="height: 36px;"></view>
|
||||||
|
<view class="forget" @click="forget">忘记密码?</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
import { recruit_missionDetail, submit } 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 { dateFormat } from "../../../../untils/format.js";
|
||||||
|
import uniMask from '@/components/uni-mask/mask.vue'
|
||||||
|
import uniPopup from '@/components/uni-popup/uni-popup.vue'
|
||||||
|
import validCode from '@/components/p-valid-code/p-valid-code.vue'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
...dictionary,
|
||||||
|
info: {},
|
||||||
|
status: null,
|
||||||
|
showDetail: false,
|
||||||
|
showCode: false,
|
||||||
|
maskShow: false,
|
||||||
|
nextBtn: false,
|
||||||
|
loading: false,
|
||||||
|
latitude: 39.909, //中心点
|
||||||
|
longitude: 116.39742,
|
||||||
|
covers: [{ //marker标记位置
|
||||||
|
id: 0,
|
||||||
|
latitude: 0,
|
||||||
|
longitude: 0,
|
||||||
|
// width:30,
|
||||||
|
// height:30,
|
||||||
|
iconPath: '../../../../static/img/location.png'
|
||||||
|
}],
|
||||||
|
missionNo: "",
|
||||||
|
isShow: '',
|
||||||
|
type: '',
|
||||||
|
id: '',
|
||||||
|
src: 'https://jlfiles.oss-cn-zhangjiakou.aliyuncs.com/jobslink-api/doc/%E7%94%B5%E5%AD%90%E5%90%88%E5%90%8C%E9%A2%84%E8%A7%88%E5%9B%BE%E7%89%87.png',
|
||||||
|
maxlength: 6,
|
||||||
|
collectStatus: 0, // 收藏状态
|
||||||
|
showPopUp: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: { uniMask, validCode, uniPopup },
|
||||||
|
onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
|
||||||
|
// this.$store.dispatch('setAutograph')
|
||||||
|
if (option.missionNo) {
|
||||||
|
this.missionNo = decodeURIComponent(option.missionNo);
|
||||||
|
}
|
||||||
|
if (option.isCan) {
|
||||||
|
this.isShow = option.isCan; //isShow为'0'则为我的任务、我的评价过来的,需要隐藏抢任务按钮
|
||||||
|
}
|
||||||
|
if (option.type) {
|
||||||
|
this.type = option.type; //type为1则为消息邀请过来的,需要设置消息已读;
|
||||||
|
}
|
||||||
|
if (option.id) {
|
||||||
|
this.id = option.id; //消息id
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow: function () {
|
||||||
|
this.showDetail = true
|
||||||
|
this.getData();
|
||||||
|
|
||||||
|
},
|
||||||
|
onShareAppMessage(obj) {
|
||||||
|
return {
|
||||||
|
title: this.info.missionTitle,
|
||||||
|
path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
dateFormat,
|
||||||
|
callPhone() {
|
||||||
|
this.showPopUp = true;
|
||||||
|
},
|
||||||
|
closePopUp() {
|
||||||
|
this.showPopUp = false;
|
||||||
|
},
|
||||||
|
getData: function () {
|
||||||
|
const self = this;
|
||||||
|
// missionDetail(self.missionNo).then(res => {
|
||||||
|
recruit_missionDetail(self.missionNo, self.type).then(res => {
|
||||||
|
self.info = res.data.data;
|
||||||
|
self.status = res.data.data.detailStatus;
|
||||||
|
self.latitude = self.info.lat;
|
||||||
|
self.longitude = self.info.lon;
|
||||||
|
self.covers[0].latitude = self.info.lat;
|
||||||
|
self.covers[0].longitude = self.info.lon;
|
||||||
|
self.showDetail = true;
|
||||||
|
if (self.type === 1) {
|
||||||
|
// 设置已读
|
||||||
|
setRead(self.id).then(res => {
|
||||||
|
self.$store.commit("SET_READ");
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, error => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
submit: function () {
|
||||||
|
if (!this.$store.state.user.token) {
|
||||||
|
GoLogin()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.loading) return
|
||||||
|
const auth = this.auth
|
||||||
|
const contractOn = this.info.contractOn
|
||||||
|
const sealOk = this.autograph && this.autograph.data && this.autograph.data.signSrcUrl
|
||||||
|
// if (sealOk) {
|
||||||
|
// console.log('直接抢任务')
|
||||||
|
// this.submitTask()
|
||||||
|
// } else
|
||||||
|
// if (!auth.realNameState || !auth.laborState || !auth.insureState) {
|
||||||
|
// this.goSign(0)
|
||||||
|
// } else if (!auth.bankCardState){
|
||||||
|
// this.goSign(1)
|
||||||
|
// } else
|
||||||
|
if (contractOn && !sealOk) {
|
||||||
|
this.goSign(2)
|
||||||
|
} else if (sealOk && contractOn) {
|
||||||
|
this.nextBtn = true
|
||||||
|
this.lookMask()
|
||||||
|
} else {
|
||||||
|
this.submitTask()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 查看合同
|
||||||
|
lookMask() {
|
||||||
|
this.maskShow = true
|
||||||
|
},
|
||||||
|
// 抢任务
|
||||||
|
submitTask() {
|
||||||
|
submit(this.missionNo, 0).then(res => {
|
||||||
|
uni.hideLoading()
|
||||||
|
uni.showToast({
|
||||||
|
title: '操作成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
this.status = null;
|
||||||
|
this.loading = false
|
||||||
|
}, error => {
|
||||||
|
this.loading = false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 步骤
|
||||||
|
goSign(active) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/projectInfo/signContract?active=${active}`
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭弹窗
|
||||||
|
close() {
|
||||||
|
this.maskShow = false
|
||||||
|
},
|
||||||
|
// 合同下一步
|
||||||
|
next() {
|
||||||
|
this.maskShow = false
|
||||||
|
this.showDetail = false
|
||||||
|
this.showCode = true
|
||||||
|
},
|
||||||
|
// 输入签名密码
|
||||||
|
getInpCode(password) {
|
||||||
|
uni.showLoading({
|
||||||
|
title: "请求中..."
|
||||||
|
})
|
||||||
|
this.loading = true
|
||||||
|
var obj = {
|
||||||
|
pass: password
|
||||||
|
}
|
||||||
|
checkPass(obj).then(res => {
|
||||||
|
this.submitTask()
|
||||||
|
this.closeShowCode()
|
||||||
|
}).catch(err => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭签名密码弹窗
|
||||||
|
closeShowCode() {
|
||||||
|
this.showCode = false
|
||||||
|
this.showDetail = true
|
||||||
|
},
|
||||||
|
// 忘记密码
|
||||||
|
forget() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pageMy/setUserBase/seal/forget?forget=true`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['auth', 'autograph']),
|
||||||
|
skillNames() {
|
||||||
|
if (this.info.skillNames) {
|
||||||
|
return this.info.skillNames.split(',')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.codeSealBox {
|
||||||
|
padding: 285rpx 72rpx 0 72rpx;
|
||||||
|
|
||||||
|
.closeCode {
|
||||||
|
position: absolute;
|
||||||
|
right: 36rpx;
|
||||||
|
top: 120rpx;
|
||||||
|
color: #1B66FF;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
height: 46rpx;
|
||||||
|
font-size: 46rpx;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 46rpx;
|
||||||
|
margin-right: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tip {
|
||||||
|
height: 38rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #999999;
|
||||||
|
line-height: 38rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forget {
|
||||||
|
height: 38rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #5AA0FA;
|
||||||
|
line-height: 38rpx;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.contractMask {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
margin: 30rpx;
|
||||||
|
position: relative;
|
||||||
|
border-radius: 4px;
|
||||||
|
height: 96%;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
.close {
|
||||||
|
width: 23px;
|
||||||
|
height: 23px;
|
||||||
|
color: #1B66FF;
|
||||||
|
position: fixed;
|
||||||
|
right: 60rpx;
|
||||||
|
top: 60rpx;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.down {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 30px;
|
||||||
|
left: 14%;
|
||||||
|
width: 545rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
line-height: 90rpx;
|
||||||
|
text-align: center;
|
||||||
|
background: #1B66FF;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lookContract {
|
||||||
|
width: 30%;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flexbtn {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottombtn {
|
||||||
|
background-color: #1B66FF;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 32rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
line-height: 90rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-color: #fefefe;
|
||||||
|
width: 690rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
padding-bottom: 80rpx;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disabledBtn {
|
||||||
|
background-color: #c8c9cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.map {
|
||||||
|
width: 100%;
|
||||||
|
height: 350rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.askList {
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666666;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
padding: 5rpx 15rpx;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
margin-top: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ask {
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: flex-start;
|
||||||
|
margin: 20rpx 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.proint {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
font-size: 30rpx !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.proneed {
|
||||||
|
font-size: 32rpx !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.fee {
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #F46161;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.protype {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prolist {
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
text-align: left;
|
||||||
|
padding: 5rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.proname {
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 40rpx;
|
||||||
|
color: #333333;
|
||||||
|
width: 90%;
|
||||||
|
overflow: hidden;
|
||||||
|
padding-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.head {
|
||||||
|
padding: 30rpx;
|
||||||
|
background: #fefefe;
|
||||||
|
border-bottom: 20rpx solid #f6f6f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description {
|
||||||
|
word-break: break-all;
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
90
pages/recruit/subPage/newsDetail/signContract.vue
Normal file
90
pages/recruit/subPage/newsDetail/signContract.vue
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<view class="tips">为了更方便的为您服务,请先完善认证信息!</view>
|
||||||
|
<!--<step-bar :stepList="stepList" :active="active"></step-bar>-->
|
||||||
|
<first v-if="active === '0' || active === 0" ref="first" @firstSubmit="backSubmit"></first>
|
||||||
|
<second v-if="active === '1' || active === 1" ref="second" @secondSubmit="backSubmit" :stepLength="stepLength"></second>
|
||||||
|
<three v-if="active === '2' || active === 2"></three>
|
||||||
|
<view class="backLogin" @click="logout">
|
||||||
|
退出登录
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import stepBar from '@/components/step-bar/index.vue'
|
||||||
|
import first from './step/first.vue'
|
||||||
|
import second from './step/second.vue'
|
||||||
|
import three from './step/three.vue'
|
||||||
|
export default{
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
stepList: ['实名认证','银行卡认证'],
|
||||||
|
active: 0,
|
||||||
|
stepLength: 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(options){
|
||||||
|
if (Number(options.active) === 2) {
|
||||||
|
this.stepList.push('个人签名')
|
||||||
|
this.stepLength = 3
|
||||||
|
}
|
||||||
|
this.active = options.active
|
||||||
|
},
|
||||||
|
components: {stepBar,first, second, three},
|
||||||
|
methods: {
|
||||||
|
logout() {
|
||||||
|
this.$store.dispatch('LogOut').then(() => {
|
||||||
|
uni.reLaunch({
|
||||||
|
url: '/pages/login/login'
|
||||||
|
})
|
||||||
|
this.$store.dispatch('clearAuthState')
|
||||||
|
this.$store.dispatch('endRefreshNewsTimer')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
backSubmit(){
|
||||||
|
this.sign()
|
||||||
|
},
|
||||||
|
sign(){
|
||||||
|
this.loading = false
|
||||||
|
if (Number(this.active)+1 === this.stepList.length) {
|
||||||
|
if (this.stepList.length === 2) {
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/index/index'
|
||||||
|
})
|
||||||
|
} else if (this.stepList.length === 3) {
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.active++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
page{
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.tips{
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #999999;
|
||||||
|
line-height: 28rpx;
|
||||||
|
margin: 45rpx 0 50rpx 30rpx;
|
||||||
|
}
|
||||||
|
.backLogin{
|
||||||
|
width: 128rpx;
|
||||||
|
height: 45rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #1C66FF;
|
||||||
|
line-height: 45rpx;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 100rpx;
|
||||||
|
left: 40%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
358
pages/recruit/subPage/newsDetail/step/first.vue
Normal file
358
pages/recruit/subPage/newsDetail/step/first.vue
Normal file
@@ -0,0 +1,358 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--<view style="height: 70rpx;"></view>-->
|
||||||
|
<view class="list border" style="padding-right: 32rpx;">
|
||||||
|
<view class="name">
|
||||||
|
姓名
|
||||||
|
</view>
|
||||||
|
<text v-if="auth.realNameState" style="color: #1B66FF;">{{auth.authInfo.realName}}</text>
|
||||||
|
<input v-else type="text" :value="name" placeholder="请输入" @input="setName" placeholder-style="color:#cccccc;" />
|
||||||
|
</view>
|
||||||
|
<view class="border" style="padding-right: 32rpx;">
|
||||||
|
<view class="list">
|
||||||
|
<view class="name">
|
||||||
|
身份证号
|
||||||
|
</view>
|
||||||
|
<text v-if="auth.realNameState" style="color: #1B66FF;">{{idNumberFilter(auth.authInfo.idNumber)}}</text>
|
||||||
|
<input v-else type="idcard" :value="card" placeholder="请输入" @input="setCard" style="text-transform:uppercase"
|
||||||
|
placeholder-style="color:#cccccc;" />
|
||||||
|
</view>
|
||||||
|
<view v-if="error" class="error">身份证号格式不正确</view>
|
||||||
|
</view>
|
||||||
|
<view class="list border">
|
||||||
|
<view class="listLeft">
|
||||||
|
开户银行
|
||||||
|
</view>
|
||||||
|
<view v-if="auth.bankCardState" class="listRight" style="margin-right:32rpx;">
|
||||||
|
{{auth.authInfo.bankName}}
|
||||||
|
</view>
|
||||||
|
<view v-else class="listRight" @click="goBankList">
|
||||||
|
{{bankName}}
|
||||||
|
<image src="@/static/img/right.svg" mode=""></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="list border">
|
||||||
|
<view class="name">
|
||||||
|
银行卡号
|
||||||
|
</view>
|
||||||
|
<text v-if="auth.bankCardState" style="color: #1B66FF;">{{auth.authInfo.cardNumber}}</text>
|
||||||
|
<input v-else type="number" v-model="cardNumber" placeholder="请输入银行卡号" placeholder-style="color:#cccccc;" @input="blur" />
|
||||||
|
</view>
|
||||||
|
<picker @change="bindPickerChange" :value="index" :range="laborType" class="border">
|
||||||
|
<view class="list">
|
||||||
|
<view class="listLeft">
|
||||||
|
<view class="listTitle">身份信息</view>
|
||||||
|
</view>
|
||||||
|
<view class="listRight">
|
||||||
|
<view class="rightContent nochoose">
|
||||||
|
<view v-if="auth.laborState" class="uni-input">{{ laborType[0] }}</view>
|
||||||
|
<view v-else class="uni-input">请选择</view>
|
||||||
|
</view>
|
||||||
|
<image src="@/static/img/right.svg" mode=""></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
<picker @change="bindPickerChangeBao" :value="indexbao" :range="insureType" class="border">
|
||||||
|
<view class="list">
|
||||||
|
<view class="listLeft">
|
||||||
|
<view class="listTitle">社保信息</view>
|
||||||
|
</view>
|
||||||
|
<view class="listRight">
|
||||||
|
<view class="rightContent nochoose">
|
||||||
|
<view v-if="auth.insureState" class="uni-input">{{ insureType[indexbao] }}</view>
|
||||||
|
<view v-else class="uni-input">请选择</view>
|
||||||
|
</view>
|
||||||
|
<image src="@/static/img/right.svg" mode=""></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</picker>
|
||||||
|
<view class="btn">
|
||||||
|
<view v-if="auth.realNameState && auth.bankCardState" @click="next" class="bottombtn">
|
||||||
|
完成
|
||||||
|
</view>
|
||||||
|
<view v-if="!loading && !status && !auth.bankCardState" class="bottombtn nocheck">
|
||||||
|
完成
|
||||||
|
</view>
|
||||||
|
<view v-if="!loading && status && !auth.bankCardState" @click="next" class="bottombtn">
|
||||||
|
完成
|
||||||
|
</view>
|
||||||
|
<view v-if="loading" class="bottombtn nocheck">
|
||||||
|
提交中
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import textdata from '@/common/textdata.js'
|
||||||
|
import {
|
||||||
|
mapGetters
|
||||||
|
} from 'vuex'
|
||||||
|
import {
|
||||||
|
idNumberFilter
|
||||||
|
} from '@/untils/format.js'
|
||||||
|
import {
|
||||||
|
check18IdCardNo,
|
||||||
|
validatenull
|
||||||
|
} from '@/untils/validate.js'
|
||||||
|
import {
|
||||||
|
getStore
|
||||||
|
} from '@/untils/store.js'
|
||||||
|
import {
|
||||||
|
newCertification,findAuth
|
||||||
|
} from '@/api/auth.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
laborType: textdata.laborType,
|
||||||
|
insureType: textdata.insureType,
|
||||||
|
name: '',
|
||||||
|
card: '',
|
||||||
|
error: false,
|
||||||
|
loading: false,
|
||||||
|
index: 0,
|
||||||
|
bankName: "选择银行",
|
||||||
|
cardNumber: "",
|
||||||
|
bankId: "",
|
||||||
|
clickable: false,
|
||||||
|
def: true, //银行卡是否为默认
|
||||||
|
defCount: 5, //默认每日允许认证次数
|
||||||
|
realCount:0,//已经认证的次数
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
const realName = getStore({
|
||||||
|
name: 'realName'
|
||||||
|
})
|
||||||
|
const bankCard = getStore({
|
||||||
|
name: 'bankCard'
|
||||||
|
})
|
||||||
|
if (bankCard && bankCard.bankName) {
|
||||||
|
this.bankName = bankCard.bankName
|
||||||
|
this.bankId = bankCard.bankId
|
||||||
|
this.cardNumber = bankCard.cardNumber
|
||||||
|
}
|
||||||
|
if (realName && realName.name) {
|
||||||
|
this.name = realName.name
|
||||||
|
this.card = realName.card
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
idNumberFilter,
|
||||||
|
next() {
|
||||||
|
var auth = this.auth
|
||||||
|
console.log(auth.realNameState,auth.laborState , auth.insureState)
|
||||||
|
if (auth.realNameState && auth.laborState && auth.insureState && auth.bankCardState) {
|
||||||
|
this.$emit('firstSubmit')
|
||||||
|
} else {
|
||||||
|
this.submit()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setName: function(e) {
|
||||||
|
this.name = e.detail.value;
|
||||||
|
this.setFirstObj()
|
||||||
|
},
|
||||||
|
setCard: function(e) {
|
||||||
|
this.card = e.detail.value.toUpperCase();
|
||||||
|
this.error = !check18IdCardNo(this.card)
|
||||||
|
this.setFirstObj()
|
||||||
|
return e.detail.value.toUpperCase()
|
||||||
|
},
|
||||||
|
bindPickerChange: function(e) {
|
||||||
|
uni.showLoading()
|
||||||
|
this.$store.dispatch('authLabor').then(resp => {
|
||||||
|
this.index = e.target.value;
|
||||||
|
uni.hideLoading()
|
||||||
|
}).catch(() => {
|
||||||
|
uni.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
bindPickerChangeBao: function(e) {
|
||||||
|
uni.showLoading()
|
||||||
|
this.$store.dispatch('authInsure', e.target.value * 1 + 1).then(resp => {
|
||||||
|
uni.hideLoading()
|
||||||
|
}).catch(() => {
|
||||||
|
uni.hideLoading()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
setFirstObj() {
|
||||||
|
var obj = {
|
||||||
|
name: this.name,
|
||||||
|
card: this.card
|
||||||
|
}
|
||||||
|
this.$store.dispatch('setRealName', obj)
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
findAuth().then(res=>{
|
||||||
|
let count = res.data.data.authCount; //每次点“提交”都先查询已经认证了几次
|
||||||
|
let diffCount = this.defCount - count; //剩余认证机会
|
||||||
|
this.loading = true;
|
||||||
|
if (count <= this.defCount) {
|
||||||
|
let name=this.auth.realNameState?this.auth.authInfo.realName:this.name;
|
||||||
|
let card=this.auth.realNameState?this.auth.authInfo.idNumber:this.card;
|
||||||
|
newCertification(this.indexbao + 1, name, card, this.cardNumber, this.bankId, this.def ? 1 : 0, this.bankName)
|
||||||
|
.then( //认证成功则跳转到首页面
|
||||||
|
res => {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.data.msg,
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
this.$store.commit('SET_AUTH_REALNAME', true)
|
||||||
|
this.$store.dispatch('setRealName', {})
|
||||||
|
this.$store.commit('SET_AUTH_BANKCARD', true)
|
||||||
|
this.loading = false
|
||||||
|
uni.switchTab({
|
||||||
|
url: '/pages/index/index'
|
||||||
|
})
|
||||||
|
}).catch((err) => { //认证失败会提示还有几次认证机会
|
||||||
|
if (count > 1 && count <= 5) {
|
||||||
|
//uni.hideToast();
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.showToast({
|
||||||
|
title: `今日已认证${count}次,还有${diffCount}次认证机会`,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
}, 1000)
|
||||||
|
|
||||||
|
}
|
||||||
|
this.loading = false;
|
||||||
|
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
if (count >= this.defCount) {
|
||||||
|
uni.showToast({
|
||||||
|
title: `今日已认证${this.defCount}次,请明日再来认证`,
|
||||||
|
icon: 'none',
|
||||||
|
duration: 3000
|
||||||
|
})
|
||||||
|
this.loading = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
goBankList: function() {
|
||||||
|
uni.$once('icCardSetBank', (data) => {
|
||||||
|
this.bankId = data.id;
|
||||||
|
this.bankName = data.name;
|
||||||
|
this.setBankName()
|
||||||
|
})
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/bankList/bankList'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
setBankName() {
|
||||||
|
const obj = {
|
||||||
|
bankName: this.bankName,
|
||||||
|
bankId: this.bankId,
|
||||||
|
cardNumber: this.cardNumber
|
||||||
|
}
|
||||||
|
this.$store.dispatch('setBankCard', obj)
|
||||||
|
},
|
||||||
|
blur() {
|
||||||
|
this.setBankName();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['auth', 'authInfo']),
|
||||||
|
indexbao() {
|
||||||
|
if (this.auth.insureState) {
|
||||||
|
return this.authInfo.bakValue - 1
|
||||||
|
} else {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
status() {
|
||||||
|
if (this.auth.authInfo.realName && this.auth.authInfo.idNumber) {
|
||||||
|
if (!this.cardNumber || !this.bankId || !this.auth.laborState || !this.auth.insureState) {
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!this.name || !this.card || !this.cardNumber || !this.bankId || !this.auth.laborState || !this.auth.insureState) {
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.nocheck {
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottombtn {
|
||||||
|
background-color: #1B66FF;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 32rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
line-height: 90rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-color: #fefefe;
|
||||||
|
padding: 70rpx 80rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: red;
|
||||||
|
position: absolute;
|
||||||
|
right: 15px;
|
||||||
|
top: 14px;
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.border {
|
||||||
|
border-bottom: 1px solid #DDDDDD;
|
||||||
|
height: 88rpx;
|
||||||
|
line-height: 88rpx;
|
||||||
|
position: relative;
|
||||||
|
margin: 0 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listRight {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listRight image {
|
||||||
|
width: 19rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-left: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list .name {
|
||||||
|
width: 200rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
224
pages/recruit/subPage/newsDetail/step/second.vue
Normal file
224
pages/recruit/subPage/newsDetail/step/second.vue
Normal file
@@ -0,0 +1,224 @@
|
|||||||
|
<template>
|
||||||
|
<view style="margin-top: 70rpx;">
|
||||||
|
<view class="list">
|
||||||
|
<view class="listName">
|
||||||
|
开户银行
|
||||||
|
</view>
|
||||||
|
<view v-if="auth.bankCardState" class="listContent" style="margin-right:32rpx;">
|
||||||
|
{{auth.authInfo.bankName}}
|
||||||
|
</view>
|
||||||
|
<view v-else class="listContent" @click="goBankList">
|
||||||
|
{{bankName}}
|
||||||
|
<image src="@/static/img/right.svg" mode=""></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="list">
|
||||||
|
<view class="listName">
|
||||||
|
银行卡号
|
||||||
|
</view>
|
||||||
|
<text v-if="auth.bankCardState" style="color: #999999;font-size: 14px;margin-right:32rpx;">{{auth.authInfo.cardNumber}}</text>
|
||||||
|
<input v-else type="number" v-model="cardNumber" placeholder="请输入银行卡号" placeholder-style="color:#cccccc;" @input="blur"/>
|
||||||
|
</view>
|
||||||
|
<view class="cardTips">
|
||||||
|
此银行卡信息仅作为发放工资使用;银行卡持卡人信息与基本信息一致。
|
||||||
|
</view>
|
||||||
|
<view v-if="stepLength === 2" class="btn">
|
||||||
|
<view v-if="auth.bankCardState" @click="next" class="bottombtn">
|
||||||
|
完成
|
||||||
|
</view>
|
||||||
|
<view v-if="!loading && !status && !auth.bankCardState" class="bottombtn nocheck">
|
||||||
|
完成
|
||||||
|
</view>
|
||||||
|
<view v-if="!loading && status && !auth.bankCardState" @click="next" class="bottombtn">
|
||||||
|
完成
|
||||||
|
</view>
|
||||||
|
<view v-if="loading" class="bottombtn nocheck">
|
||||||
|
提交中
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="stepLength === 3" class="btn">
|
||||||
|
<view v-if="auth.bankCardState" @click="next" class="bottombtn">
|
||||||
|
下一步
|
||||||
|
</view>
|
||||||
|
<view v-if="!loading && !status && !auth.bankCardState" class="bottombtn nocheck">
|
||||||
|
下一步
|
||||||
|
</view>
|
||||||
|
<view v-if="!loading && status && !auth.bankCardState" @click="next" class="bottombtn">
|
||||||
|
下一步
|
||||||
|
</view>
|
||||||
|
<view v-if="loading" class="bottombtn nocheck">
|
||||||
|
提交中
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {bank} from '@/api/auth.js'
|
||||||
|
import {mapGetters} from 'vuex'
|
||||||
|
import {getStore} from '@/untils/store.js'
|
||||||
|
export default{
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
edit: false,
|
||||||
|
def: true,
|
||||||
|
bankId: '',
|
||||||
|
bankName: '选择银行',
|
||||||
|
cardNumber: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props:{
|
||||||
|
stepLength: {
|
||||||
|
type: Number,
|
||||||
|
default: 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted(){
|
||||||
|
const bankCard = getStore({
|
||||||
|
name: 'bankCard'
|
||||||
|
})
|
||||||
|
if (bankCard && bankCard.bankName) {
|
||||||
|
this.bankName = bankCard.bankName
|
||||||
|
this.bankId = bankCard.bankId
|
||||||
|
this.cardNumber = bankCard.cardNumber
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
next(){
|
||||||
|
var auth = this.auth
|
||||||
|
if (auth.bankCardState){
|
||||||
|
this.$emit('secondSubmit')
|
||||||
|
}else {
|
||||||
|
this.submit()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
goBankList: function() {
|
||||||
|
uni.$once('icCardSetBank', (data) => {
|
||||||
|
this.bankId = data.id;
|
||||||
|
this.bankName = data.name;
|
||||||
|
this.setBankName()
|
||||||
|
})
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/bankList/bankList'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
this.loading = true
|
||||||
|
bank(this.bankName, this.auth.authInfo.realName, this.cardNumber, this.def ? 1 : 0).then(resp => {
|
||||||
|
uni.showToast({
|
||||||
|
title: resp.data.msg,
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
this.loading = false
|
||||||
|
this.$store.commit('SET_AUTH_BANKCARD', true)
|
||||||
|
this.$emit('secondSubmit')
|
||||||
|
}).catch(err => {
|
||||||
|
this.loading = false
|
||||||
|
// this.$emit('secondSubmit',false)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
blur(){
|
||||||
|
this.setBankName()
|
||||||
|
},
|
||||||
|
setBankName(){
|
||||||
|
const obj = {
|
||||||
|
bankName: this.bankName,
|
||||||
|
bankId: this.bankId,
|
||||||
|
cardNumber: this.cardNumber
|
||||||
|
}
|
||||||
|
this.$store.dispatch('setBankCard', obj)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['auth']),
|
||||||
|
status(){
|
||||||
|
if (!this.cardNumber || !this.bankName) {
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
.cardTips{
|
||||||
|
width: 590rpx;
|
||||||
|
height: 68rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #999999;
|
||||||
|
line-height: 34rpx;
|
||||||
|
margin:71rpx 0 0 71rpx;
|
||||||
|
}
|
||||||
|
.nocheck {
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
.bottombtn {
|
||||||
|
background-color: #1B66FF;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 32rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
line-height: 90rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-color: #fefefe;
|
||||||
|
padding: 70rpx 80rpx;
|
||||||
|
}
|
||||||
|
.list switch {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nocheck {
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listName {
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
width: 200rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listContent image {
|
||||||
|
width: 19rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-left: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listContent {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list input,
|
||||||
|
.list text {
|
||||||
|
margin-left: auto;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.list input{
|
||||||
|
flex:1;
|
||||||
|
}
|
||||||
|
.list {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
padding-left: 0;
|
||||||
|
border-bottom: 1rpx solid #f2f2f2;
|
||||||
|
margin: 0 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
174
pages/recruit/subPage/newsDetail/step/three.vue
Normal file
174
pages/recruit/subPage/newsDetail/step/three.vue
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<view class="sealBox">
|
||||||
|
<view style="height: 70rpx;"></view>
|
||||||
|
<view class="name">签名</view>
|
||||||
|
<view v-if="src" class="sealContent">
|
||||||
|
<image class="img" mode="aspectFit" :src="src"></image>
|
||||||
|
</view>
|
||||||
|
<view v-else class="sealContent" @click="go">
|
||||||
|
<view class="contentFont">点击输入手写签名</view>
|
||||||
|
</view>
|
||||||
|
<view class="list" v-if="src">
|
||||||
|
<view class="listLeft">
|
||||||
|
<view class="listTitle">签名密码</view>
|
||||||
|
</view>
|
||||||
|
<view class="listRight">
|
||||||
|
<view class="rightContent nochoose">
|
||||||
|
<view v-if="src" class="uni-input">已设置</view>
|
||||||
|
<view v-else class="uni-input">未设置</view>
|
||||||
|
</view>
|
||||||
|
<image src="@/static/img/right.svg" mode=""></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="!src" class="sealAgreement">
|
||||||
|
<checkbox :checked="status" @click="checkClick"/>
|
||||||
|
<view>我已阅读并同意</view>
|
||||||
|
<view class="agreement" @click="goAgreement('/pages/user/sealAgreement')">《申请证书协议》</view>
|
||||||
|
</view>
|
||||||
|
<view class="btn">
|
||||||
|
<view v-if="src" @click="next" class="bottombtn">完成</view>
|
||||||
|
<view v-if="!src" class="bottombtn nocheck">完成</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {mapGetters} from 'vuex'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
status:false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
// this.$store.dispatch('setAutograph')
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
goAgreement (url) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url
|
||||||
|
})
|
||||||
|
},
|
||||||
|
checkClick(){
|
||||||
|
this.status = !this.status
|
||||||
|
},
|
||||||
|
next () {
|
||||||
|
uni.navigateBack()
|
||||||
|
// uni.switchTab({
|
||||||
|
// url: '/pages/index/index'
|
||||||
|
// })
|
||||||
|
},
|
||||||
|
go(url){
|
||||||
|
if (!this.status){
|
||||||
|
uni.showToast({
|
||||||
|
title: '请先阅读并同意《申请证书协议》',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pageMy/setUserBase/seal/sealCanvas?path=/pageMy/setUserBase/seal/sealCanvas`
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getInpCode: function(e) {
|
||||||
|
console.log(e)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['autograph']),
|
||||||
|
src(){
|
||||||
|
if (this.autograph.data && this.autograph.data.signSrcUrl){
|
||||||
|
return this.autograph.data.signSrcUrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss">
|
||||||
|
.sealAgreement{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin: 30rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
.agreement{
|
||||||
|
color: #007AFF;
|
||||||
|
}
|
||||||
|
/deep/ .uni-checkbox-input{
|
||||||
|
border-radius: 22px!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.nocheck {
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
.bottombtn {
|
||||||
|
background-color: #1B66FF;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 32rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
line-height: 90rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-color: #fefefe;
|
||||||
|
padding: 70rpx 80rpx;
|
||||||
|
}
|
||||||
|
.sealBox{
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
padding: 0 15px 0 15px;
|
||||||
|
.name{
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 45rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
.listRight {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.listRight image {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
margin-left: 15rpx;
|
||||||
|
}
|
||||||
|
.list {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #333333;
|
||||||
|
height: 88rpx;
|
||||||
|
}
|
||||||
|
.sealContent{
|
||||||
|
background: #F6F6F6;
|
||||||
|
padding: 16rpx;
|
||||||
|
margin-top: 14rpx;
|
||||||
|
position:relative;
|
||||||
|
.img{
|
||||||
|
width: 100%;
|
||||||
|
height: 312rpx;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
.contentFont{
|
||||||
|
height: 312rpx;
|
||||||
|
line-height: 312rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #999999;
|
||||||
|
background: #FFFFFF;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
555
pages/recruit/subPage/newsDetail/userrecruitInfo.vue
Normal file
555
pages/recruit/subPage/newsDetail/userrecruitInfo.vue
Normal file
@@ -0,0 +1,555 @@
|
|||||||
|
<template>
|
||||||
|
<view v-if="showDetail">
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname">
|
||||||
|
{{ info.jobName }}
|
||||||
|
</view>
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
任务编码:{{info.missionNo}}
|
||||||
|
</view> -->
|
||||||
|
<view class="prolist">
|
||||||
|
发布日期:{{ info.stime ? dateFormat((info.stime)) : null }}
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
招聘人数:{{ info.peopleNum }}
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
行业类型:{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry }}
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
工种类型:{{ info.skillNames }}
|
||||||
|
</view>
|
||||||
|
<!-- <view class="fee">
|
||||||
|
{{info.wage}}{{wageUnit[info.wageUnitCategory]}}
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname proneed">
|
||||||
|
招工要求
|
||||||
|
</view>
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
<view class="protype">
|
||||||
|
年龄要求:{{age[info.ageDesc]}}
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<view class="prolist">
|
||||||
|
<view class="protype">
|
||||||
|
学历要求:{{ info.education }}
|
||||||
|
</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 class="prolist description">
|
||||||
|
{{ info.jobDescription }}
|
||||||
|
</view>
|
||||||
|
<!-- 技能标签 start -->
|
||||||
|
<view class="ask">
|
||||||
|
<view class="askList" v-for="(item, index) in skillNames" :key="index">
|
||||||
|
{{ item }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 技能标签 end -->
|
||||||
|
<!-- <view v-if="info.jobSources" class="prolist">
|
||||||
|
来源:{{info.jobSources}}
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
<view class="head">
|
||||||
|
<!-- <view class="proname proneed">
|
||||||
|
企业信息
|
||||||
|
</view> -->
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
{{info.companyName}}
|
||||||
|
</view> -->
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
企业名称:{{info.jobCompanyName}}
|
||||||
|
</view> -->
|
||||||
|
<view style="display: flex;align-items: center;">
|
||||||
|
<image src="../../../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 20rpx;"
|
||||||
|
mode=""></image>
|
||||||
|
<view style="font-size: 30rpx;">{{ info.jobCompanyName }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname proneed">
|
||||||
|
地址
|
||||||
|
</view>
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
<view class="protype">
|
||||||
|
联系人:{{info.callName}}
|
||||||
|
</view>
|
||||||
|
<view class="protype">
|
||||||
|
联系方式:{{info.callTel}}
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<!-- <view class="prolist" v-if="info.callNumber">
|
||||||
|
座机号:{{info.callNumber}}
|
||||||
|
</view> -->
|
||||||
|
<view class="prolist">
|
||||||
|
岗位地址:{{ info.address }}
|
||||||
|
</view>
|
||||||
|
<map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map>
|
||||||
|
</view>
|
||||||
|
<view class="" style="height:200rpx;background-color: #f6f6f6;" v-if="isShow !== '0'"></view>
|
||||||
|
<view class="btn">
|
||||||
|
<view @click="callPhone" class="bottombtn flexbtn"
|
||||||
|
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;">
|
||||||
|
电话联系
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<uniMask :maskShow="maskShow">
|
||||||
|
<view class="contractMask">
|
||||||
|
<!-- #ifdef H5 || APP-PLUS -->
|
||||||
|
<view class="close" @click="close" style="top: 124rpx;">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<view class="close" @click="close">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<view style="height: 30px;"></view>
|
||||||
|
<img :src="src" alt="" style="width:100%;height: 1000px;">
|
||||||
|
<view v-if="nextBtn" class="down" @click="next">下一步</view>
|
||||||
|
</view>
|
||||||
|
</uniMask>
|
||||||
|
<u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp">
|
||||||
|
<view style="min-height: 200rpx;padding: 20rpx 40rpx;">
|
||||||
|
<!-- <view style="font-size: 28rpx;font-weight: bold;">重要提示:</view>
|
||||||
|
<view style="font-size: 24rpx;color:#707070;margin-top:10rpx;">为保障个人基本劳动权益,建议通过平台用工的形式就业</view> -->
|
||||||
|
<view v-for="(item, index) in info.applyList" :key="index"
|
||||||
|
style="text-align: center;font-size:28rpx;margin-top: 30rpx;"> {{ item.realName }} : {{
|
||||||
|
item.telphone }} 申请时间: {{
|
||||||
|
item.applyTime }}</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view v-else-if="showCode" class="codeSealBox">
|
||||||
|
<!-- #ifdef H5 || APP-PLUS -->
|
||||||
|
<view class="closeCode" @click="closeShowCode" style="top: 124rpx;">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<view class="closeCode" @click="closeShowCode">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
|
||||||
|
<view class="title">
|
||||||
|
<view class="name">签名密码</view>
|
||||||
|
<view class="tip">6位数字签名密码</view>
|
||||||
|
</view>
|
||||||
|
<view style="height: 36px;"></view>
|
||||||
|
<valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code>
|
||||||
|
<view style="height: 36px;"></view>
|
||||||
|
<view class="forget" @click="forget">忘记密码?</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
import { recruit_missionDetail, submit, } 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 { dateFormat } from "../../../../untils/format.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 {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
...dictionary,
|
||||||
|
info: {},
|
||||||
|
status: null,
|
||||||
|
showDetail: false,
|
||||||
|
showCode: false,
|
||||||
|
maskShow: false,
|
||||||
|
nextBtn: false,
|
||||||
|
loading: false,
|
||||||
|
latitude: 39.909, //中心点
|
||||||
|
longitude: 116.39742,
|
||||||
|
covers: [{ //marker标记位置
|
||||||
|
id: 0,
|
||||||
|
latitude: 0,
|
||||||
|
longitude: 0,
|
||||||
|
// width:30,
|
||||||
|
// height:30,
|
||||||
|
iconPath: '../../../../static/img/location.png'
|
||||||
|
}],
|
||||||
|
missionNo: "",
|
||||||
|
isShow: '',
|
||||||
|
type: '',
|
||||||
|
id: '',
|
||||||
|
src: 'https://jlfiles.oss-cn-zhangjiakou.aliyuncs.com/jobslink-api/doc/%E7%94%B5%E5%AD%90%E5%90%88%E5%90%8C%E9%A2%84%E8%A7%88%E5%9B%BE%E7%89%87.png',
|
||||||
|
maxlength: 6,
|
||||||
|
collectStatus: 0, // 收藏状态
|
||||||
|
showPopUp: false,
|
||||||
|
jobType: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: { uniMask, validCode },
|
||||||
|
onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
|
||||||
|
// this.$store.dispatch('setAutograph')
|
||||||
|
if (option.workId) {
|
||||||
|
this.workId = decodeURIComponent(option.workId);
|
||||||
|
}
|
||||||
|
if (option.isCan) {
|
||||||
|
this.isShow = option.isCan; //isShow为'0'则为我的任务、我的评价过来的,需要隐藏抢任务按钮
|
||||||
|
}
|
||||||
|
if (option.type) {
|
||||||
|
this.type = option.type; //type为1则为消息邀请过来的,需要设置消息已读;
|
||||||
|
}
|
||||||
|
if (option.id) {
|
||||||
|
this.id = option.id; //消息id
|
||||||
|
}
|
||||||
|
if (option.jobType) {
|
||||||
|
this.jobType = option.jobType
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow: function () {
|
||||||
|
this.showDetail = true
|
||||||
|
this.getData();
|
||||||
|
|
||||||
|
},
|
||||||
|
onShareAppMessage(obj) {
|
||||||
|
return {
|
||||||
|
title: this.info.missionTitle,
|
||||||
|
path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
dateFormat,
|
||||||
|
callPhone() {
|
||||||
|
this.showPopUp = true;
|
||||||
|
},
|
||||||
|
closePopUp() {
|
||||||
|
this.showPopUp = false;
|
||||||
|
},
|
||||||
|
async getData() {
|
||||||
|
const self = this;
|
||||||
|
let resData = null
|
||||||
|
if (this.jobType) {
|
||||||
|
resData = await getuserrecruitDetailApp({ id: this.id, jobType: this.jobType })
|
||||||
|
} else {
|
||||||
|
resData = await recruit_missionDetail(self.workId, self.type)
|
||||||
|
}
|
||||||
|
if (resData.data?.code === 200) {
|
||||||
|
self.info = resData.data.data;
|
||||||
|
self.status = resData.data.data.status;
|
||||||
|
self.missionNo = resData.data.data.missionNo;
|
||||||
|
self.latitude = self.info.lat;
|
||||||
|
self.longitude = self.info.lon;
|
||||||
|
self.covers[0].latitude = self.info.lat;
|
||||||
|
self.covers[0].longitude = self.info.lon;
|
||||||
|
self.showDetail = true;
|
||||||
|
if (!this.seeDeatil) {
|
||||||
|
if (self.type === 1) {
|
||||||
|
// 设置已读
|
||||||
|
setRead(self.id).then(res => {
|
||||||
|
self.$store.commit("SET_READ");
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
submit: function () {
|
||||||
|
if (!this.$store.state.user.token) {
|
||||||
|
GoLogin()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.loading) return
|
||||||
|
const auth = this.auth
|
||||||
|
const contractOn = this.info.contractOn
|
||||||
|
const sealOk = this.autograph && this.autograph.data && this.autograph.data.signSrcUrl
|
||||||
|
// if (sealOk) {
|
||||||
|
// console.log('直接抢任务')
|
||||||
|
// this.submitTask()
|
||||||
|
// } else
|
||||||
|
// if (!auth.realNameState || !auth.laborState || !auth.insureState) {
|
||||||
|
// this.goSign(0)
|
||||||
|
// } else if (!auth.bankCardState){
|
||||||
|
// this.goSign(1)
|
||||||
|
// } else
|
||||||
|
if (contractOn && !sealOk) {
|
||||||
|
this.goSign(2)
|
||||||
|
} else if (sealOk && contractOn) {
|
||||||
|
this.nextBtn = true
|
||||||
|
this.lookMask()
|
||||||
|
} else {
|
||||||
|
this.submitTask()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 查看合同
|
||||||
|
lookMask() {
|
||||||
|
this.maskShow = true
|
||||||
|
},
|
||||||
|
// 岗位申请
|
||||||
|
submitTask() {
|
||||||
|
submit(this.missionNo, 2).then(res => {
|
||||||
|
uni.hideLoading()
|
||||||
|
uni.showToast({
|
||||||
|
title: '操作成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
this.status = null;
|
||||||
|
this.loading = false
|
||||||
|
}, error => {
|
||||||
|
this.loading = false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 步骤
|
||||||
|
goSign(active) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/projectInfo/signContract?active=${active}`
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭弹窗
|
||||||
|
close() {
|
||||||
|
this.maskShow = false
|
||||||
|
},
|
||||||
|
// 合同下一步
|
||||||
|
next() {
|
||||||
|
this.maskShow = false
|
||||||
|
this.showDetail = false
|
||||||
|
this.showCode = true
|
||||||
|
},
|
||||||
|
// 输入签名密码
|
||||||
|
getInpCode(password) {
|
||||||
|
uni.showLoading({
|
||||||
|
title: "请求中..."
|
||||||
|
})
|
||||||
|
this.loading = true
|
||||||
|
var obj = {
|
||||||
|
pass: password
|
||||||
|
}
|
||||||
|
checkPass(obj).then(res => {
|
||||||
|
this.submitTask()
|
||||||
|
this.closeShowCode()
|
||||||
|
}).catch(err => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭签名密码弹窗
|
||||||
|
closeShowCode() {
|
||||||
|
this.showCode = false
|
||||||
|
this.showDetail = true
|
||||||
|
},
|
||||||
|
// 忘记密码
|
||||||
|
forget() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pageMy/setUserBase/seal/forget?forget=true`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['auth', 'autograph']),
|
||||||
|
skillNames() {
|
||||||
|
if (this.info.skillNames) {
|
||||||
|
return this.info.skillNames.split(',')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.codeSealBox {
|
||||||
|
padding: 285rpx 72rpx 0 72rpx;
|
||||||
|
|
||||||
|
.closeCode {
|
||||||
|
position: absolute;
|
||||||
|
right: 36rpx;
|
||||||
|
top: 120rpx;
|
||||||
|
color: #1B66FF;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
height: 46rpx;
|
||||||
|
font-size: 46rpx;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 46rpx;
|
||||||
|
margin-right: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tip {
|
||||||
|
height: 38rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #999999;
|
||||||
|
line-height: 38rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forget {
|
||||||
|
height: 38rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #5AA0FA;
|
||||||
|
line-height: 38rpx;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.contractMask {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
margin: 30rpx;
|
||||||
|
position: relative;
|
||||||
|
border-radius: 4px;
|
||||||
|
height: 96%;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
.close {
|
||||||
|
width: 23px;
|
||||||
|
height: 23px;
|
||||||
|
color: #1B66FF;
|
||||||
|
position: fixed;
|
||||||
|
right: 60rpx;
|
||||||
|
top: 60rpx;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.down {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 30px;
|
||||||
|
left: 14%;
|
||||||
|
width: 545rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
line-height: 90rpx;
|
||||||
|
text-align: center;
|
||||||
|
background: #1B66FF;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lookContract {
|
||||||
|
width: 30%;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flexbtn {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottombtn {
|
||||||
|
background-color: #1B66FF;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 32rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
line-height: 90rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-color: #fefefe;
|
||||||
|
width: 690rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
padding-bottom: 80rpx;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disabledBtn {
|
||||||
|
background-color: #c8c9cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.map {
|
||||||
|
width: 100%;
|
||||||
|
height: 350rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.askList {
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666666;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
padding: 5rpx 15rpx;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
margin-top: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ask {
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: flex-start;
|
||||||
|
margin: 20rpx 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.proint {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
font-size: 30rpx !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.proneed {
|
||||||
|
font-size: 32rpx !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.fee {
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #F46161;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.protype {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prolist {
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
text-align: left;
|
||||||
|
padding: 5rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.proname {
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 40rpx;
|
||||||
|
color: #333333;
|
||||||
|
width: 90%;
|
||||||
|
overflow: hidden;
|
||||||
|
padding-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.head {
|
||||||
|
padding: 30rpx;
|
||||||
|
background: #fefefe;
|
||||||
|
border-bottom: 20rpx solid #f6f6f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description {
|
||||||
|
word-break: break-all;
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
563
pages/recruit/subPage/newsDetail/workInfo.vue
Normal file
563
pages/recruit/subPage/newsDetail/workInfo.vue
Normal file
@@ -0,0 +1,563 @@
|
|||||||
|
<template>
|
||||||
|
<view v-if="showDetail">
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname">
|
||||||
|
{{ info.jobName }}
|
||||||
|
</view>
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
任务编码:{{info.missionNo}}
|
||||||
|
</view> -->
|
||||||
|
<view class="prolist">
|
||||||
|
发布日期:{{ dateFormat((info.stime)) }}
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
招聘人数:{{ info.peopleNum }}
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
行业类型:{{ info.tradeNames ? info.tradeNames : info.jobCompanyIndustry }}
|
||||||
|
</view>
|
||||||
|
<view class="prolist">
|
||||||
|
工种类型:{{ info.skillNames }}
|
||||||
|
</view>
|
||||||
|
<!-- <view class="fee">
|
||||||
|
{{info.wage}}{{wageUnit[info.wageUnitCategory]}}
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname proneed">
|
||||||
|
岗位要求
|
||||||
|
</view>
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
<view class="protype">
|
||||||
|
年龄要求:{{age[info.ageDesc]}}
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<view class="prolist">
|
||||||
|
<view class="protype">
|
||||||
|
学历要求:{{ info.education }}
|
||||||
|
</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 class="prolist description">
|
||||||
|
{{ info.jobDescription }}
|
||||||
|
</view>
|
||||||
|
<!-- 技能标签 start -->
|
||||||
|
<view class="ask">
|
||||||
|
<view class="askList" v-for="(item, index) in skillNames" :key="index">
|
||||||
|
{{ item }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 技能标签 end -->
|
||||||
|
<view v-if="info.jobSources" class="prolist">
|
||||||
|
来源:{{ info.jobSources }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="head">
|
||||||
|
<!-- <view class="proname proneed">
|
||||||
|
企业信息
|
||||||
|
</view> -->
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
{{info.companyName}}
|
||||||
|
</view> -->
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
企业名称:{{info.jobCompanyName}}
|
||||||
|
</view> -->
|
||||||
|
<view style="display: flex;align-items: center;">
|
||||||
|
<image src="../../../../static/img/city.png" style="width: 40rpx;height: 40rpx;margin-right: 20rpx;"
|
||||||
|
mode=""></image>
|
||||||
|
<view style="font-size: 30rpx;">{{ info.jobCompanyName }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="head">
|
||||||
|
<view class="proname proneed">
|
||||||
|
地址
|
||||||
|
</view>
|
||||||
|
<!-- <view class="prolist">
|
||||||
|
<view class="protype">
|
||||||
|
联系人:{{info.callName}}
|
||||||
|
</view>
|
||||||
|
<view class="protype">
|
||||||
|
联系方式:{{info.callTel}}
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
<!-- <view class="prolist" v-if="info.callNumber">
|
||||||
|
座机号:{{info.callNumber}}
|
||||||
|
</view> -->
|
||||||
|
<view class="prolist">
|
||||||
|
岗位地址:{{ info.address }}
|
||||||
|
</view>
|
||||||
|
<map class="map" :latitude="latitude" :longitude="longitude" :markers="covers"></map>
|
||||||
|
</view>
|
||||||
|
<view class="" style="height:200rpx;background-color: #f6f6f6;" v-if="isShow !== '0'"></view>
|
||||||
|
<view class="btn">
|
||||||
|
<view @click="callPhone" class="bottombtn flexbtn"
|
||||||
|
style="margin-right: 10rpx;background-color: #FBAD17;border-radius: 45rpx;">
|
||||||
|
电话联系
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<uniMask :maskShow="maskShow">
|
||||||
|
<view class="contractMask">
|
||||||
|
<!-- #ifdef H5 || APP-PLUS -->
|
||||||
|
<view class="close" @click="close" style="top: 124rpx;">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<view class="close" @click="close">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<view style="height: 30px;"></view>
|
||||||
|
<img :src="src" alt="" style="width:100%;height: 1000px;">
|
||||||
|
<view v-if="nextBtn" class="down" @click="next">下一步</view>
|
||||||
|
</view>
|
||||||
|
</uniMask>
|
||||||
|
<u-popup closeable :show="showPopUp" mode="bottom" @close="closePopUp">
|
||||||
|
<view style="min-height: 200rpx;padding: 20rpx 40rpx;">
|
||||||
|
<!-- <view style="font-size: 28rpx;font-weight: bold;">重要提示:</view>
|
||||||
|
<view style="font-size: 24rpx;color:#707070;margin-top:10rpx;">为保障个人基本劳动权益,建议通过平台用工的形式就业</view> -->
|
||||||
|
<view v-for="(item, index) in info.applyList" :key="index"
|
||||||
|
style="text-align: center;font-size:28rpx;margin-top: 30rpx;"> {{ item.realName }} : {{
|
||||||
|
item.telphone }} 申请时间: {{
|
||||||
|
item.applyTime }}</view>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view v-else-if="showCode" class="codeSealBox">
|
||||||
|
<!-- #ifdef H5 || APP-PLUS -->
|
||||||
|
<view class="closeCode" @click="closeShowCode" style="top: 124rpx;">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<view class="closeCode" @click="closeShowCode">+</view>
|
||||||
|
<!-- #endif -->
|
||||||
|
|
||||||
|
<view class="title">
|
||||||
|
<view class="name">签名密码</view>
|
||||||
|
<view class="tip">6位数字签名密码</view>
|
||||||
|
</view>
|
||||||
|
<view style="height: 36px;"></view>
|
||||||
|
<valid-code ref="validCode" @finish="getInpCode" :maxlength="maxlength"></valid-code>
|
||||||
|
<view style="height: 36px;"></view>
|
||||||
|
<view class="forget" @click="forget">忘记密码?</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
import { missionDetail, 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 { dateFormat } from "../../../../untils/format.js";
|
||||||
|
import { 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 {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
...dictionary,
|
||||||
|
info: {},
|
||||||
|
status: null,
|
||||||
|
showDetail: false,
|
||||||
|
showCode: false,
|
||||||
|
maskShow: false,
|
||||||
|
nextBtn: false,
|
||||||
|
loading: false,
|
||||||
|
latitude: 39.909, //中心点
|
||||||
|
longitude: 116.39742,
|
||||||
|
covers: [{ //marker标记位置
|
||||||
|
id: 0,
|
||||||
|
latitude: 0,
|
||||||
|
longitude: 0,
|
||||||
|
// width:30,
|
||||||
|
// height:30,
|
||||||
|
iconPath: '../../../../static/img/location.png'
|
||||||
|
}],
|
||||||
|
missionNo: "",
|
||||||
|
isShow: '',
|
||||||
|
type: '',
|
||||||
|
id: '',
|
||||||
|
src: 'https://jlfiles.oss-cn-zhangjiakou.aliyuncs.com/jobslink-api/doc/%E7%94%B5%E5%AD%90%E5%90%88%E5%90%8C%E9%A2%84%E8%A7%88%E5%9B%BE%E7%89%87.png',
|
||||||
|
maxlength: 6,
|
||||||
|
collectStatus: 0, // 收藏状态
|
||||||
|
showPopUp: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: { uniMask, validCode },
|
||||||
|
onLoad: function (option) { //option为object类型,会序列化上个页面传递的参数
|
||||||
|
// this.$store.dispatch('setAutograph')
|
||||||
|
if (option.workId) {
|
||||||
|
this.workId = decodeURIComponent(option.workId);
|
||||||
|
}
|
||||||
|
if (option.isCan) {
|
||||||
|
this.isShow = option.isCan; //isShow为'0'则为我的任务、我的评价过来的,需要隐藏抢任务按钮
|
||||||
|
}
|
||||||
|
if (option.type) {
|
||||||
|
this.type = option.type; //type为1则为消息邀请过来的,需要设置消息已读;
|
||||||
|
}
|
||||||
|
if (option.id) {
|
||||||
|
this.id = option.id; //消息id
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onShow: function () {
|
||||||
|
this.showDetail = true
|
||||||
|
this.getData();
|
||||||
|
|
||||||
|
},
|
||||||
|
onShareAppMessage(obj) {
|
||||||
|
return {
|
||||||
|
title: this.info.missionTitle,
|
||||||
|
path: `/pages/projectInfo/projectInfo?missionNo=${this.info.missionNo}`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
dateFormat,
|
||||||
|
collect() {
|
||||||
|
// console.log('收藏,取消收藏')
|
||||||
|
const status = this.collectStatus == 0 ? 1 : 0;
|
||||||
|
updateCollectStatus(this.info.id, status, 1).then(res => {
|
||||||
|
if (res.data.code == 200) {
|
||||||
|
this.getCollectStatus()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
callPhone() {
|
||||||
|
this.showPopUp = true;
|
||||||
|
},
|
||||||
|
closePopUp() {
|
||||||
|
this.showPopUp = false;
|
||||||
|
},
|
||||||
|
// 获取收藏状态
|
||||||
|
getCollectStatus() {
|
||||||
|
getCollectState(this.info.id, 1).then(res => {
|
||||||
|
// 0 未收藏,1 已收藏
|
||||||
|
// console.log(res)
|
||||||
|
this.collectStatus = res.data.data;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getData: function () {
|
||||||
|
const self = this;
|
||||||
|
workDetail(self.workId).then(res => {
|
||||||
|
self.info = res.data.data;
|
||||||
|
self.status = res.data.data.status;
|
||||||
|
self.missionNo = res.data.data.missionNo;
|
||||||
|
self.latitude = self.info.lat;
|
||||||
|
self.longitude = self.info.lon;
|
||||||
|
self.covers[0].latitude = self.info.lat;
|
||||||
|
self.covers[0].longitude = self.info.lon;
|
||||||
|
self.showDetail = true;
|
||||||
|
self.getCollectStatus();
|
||||||
|
if (self.type === 1) {
|
||||||
|
// 设置已读
|
||||||
|
setRead(self.id).then(res => {
|
||||||
|
self.$store.commit("SET_READ");
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, error => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
submit: function () {
|
||||||
|
if (!this.$store.state.user.token) {
|
||||||
|
GoLogin()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this.loading) return
|
||||||
|
const auth = this.auth
|
||||||
|
const contractOn = this.info.contractOn
|
||||||
|
const sealOk = this.autograph && this.autograph.data && this.autograph.data.signSrcUrl
|
||||||
|
// if (sealOk) {
|
||||||
|
// console.log('直接抢任务')
|
||||||
|
// this.submitTask()
|
||||||
|
// } else
|
||||||
|
// if (!auth.realNameState || !auth.laborState || !auth.insureState) {
|
||||||
|
// this.goSign(0)
|
||||||
|
// } else if (!auth.bankCardState){
|
||||||
|
// this.goSign(1)
|
||||||
|
// } else
|
||||||
|
if (contractOn && !sealOk) {
|
||||||
|
this.goSign(2)
|
||||||
|
} else if (sealOk && contractOn) {
|
||||||
|
this.nextBtn = true
|
||||||
|
this.lookMask()
|
||||||
|
} else {
|
||||||
|
this.submitTask()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 查看合同
|
||||||
|
lookMask() {
|
||||||
|
this.maskShow = true
|
||||||
|
},
|
||||||
|
// 岗位申请
|
||||||
|
submitTask() {
|
||||||
|
submit(this.missionNo, 1).then(res => {
|
||||||
|
uni.hideLoading()
|
||||||
|
uni.showToast({
|
||||||
|
title: '操作成功',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
this.status = null;
|
||||||
|
this.loading = false
|
||||||
|
}, error => {
|
||||||
|
this.loading = false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 步骤
|
||||||
|
goSign(active) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/projectInfo/signContract?active=${active}`
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭弹窗
|
||||||
|
close() {
|
||||||
|
this.maskShow = false
|
||||||
|
},
|
||||||
|
// 合同下一步
|
||||||
|
next() {
|
||||||
|
this.maskShow = false
|
||||||
|
this.showDetail = false
|
||||||
|
this.showCode = true
|
||||||
|
},
|
||||||
|
// 输入签名密码
|
||||||
|
getInpCode(password) {
|
||||||
|
uni.showLoading({
|
||||||
|
title: "请求中..."
|
||||||
|
})
|
||||||
|
this.loading = true
|
||||||
|
var obj = {
|
||||||
|
pass: password
|
||||||
|
}
|
||||||
|
checkPass(obj).then(res => {
|
||||||
|
this.submitTask()
|
||||||
|
this.closeShowCode()
|
||||||
|
}).catch(err => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 关闭签名密码弹窗
|
||||||
|
closeShowCode() {
|
||||||
|
this.showCode = false
|
||||||
|
this.showDetail = true
|
||||||
|
},
|
||||||
|
// 忘记密码
|
||||||
|
forget() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pageMy/setUserBase/seal/forget?forget=true`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['auth', 'autograph']),
|
||||||
|
skillNames() {
|
||||||
|
if (this.info.skillNames) {
|
||||||
|
return this.info.skillNames.split(',')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.codeSealBox {
|
||||||
|
padding: 285rpx 72rpx 0 72rpx;
|
||||||
|
|
||||||
|
.closeCode {
|
||||||
|
position: absolute;
|
||||||
|
right: 36rpx;
|
||||||
|
top: 120rpx;
|
||||||
|
color: #1B66FF;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
height: 46rpx;
|
||||||
|
font-size: 46rpx;
|
||||||
|
font-family: PingFangSC-Medium, PingFang SC;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 46rpx;
|
||||||
|
margin-right: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tip {
|
||||||
|
height: 38rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #999999;
|
||||||
|
line-height: 38rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forget {
|
||||||
|
height: 38rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-family: PingFangSC-Regular, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #5AA0FA;
|
||||||
|
line-height: 38rpx;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.contractMask {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
margin: 30rpx;
|
||||||
|
position: relative;
|
||||||
|
border-radius: 4px;
|
||||||
|
height: 96%;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
|
.close {
|
||||||
|
width: 23px;
|
||||||
|
height: 23px;
|
||||||
|
color: #1B66FF;
|
||||||
|
position: fixed;
|
||||||
|
right: 60rpx;
|
||||||
|
top: 60rpx;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
font-size: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.down {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 30px;
|
||||||
|
left: 14%;
|
||||||
|
width: 545rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
line-height: 90rpx;
|
||||||
|
text-align: center;
|
||||||
|
background: #1B66FF;
|
||||||
|
font-size: 36rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lookContract {
|
||||||
|
width: 30%;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flexbtn {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottombtn {
|
||||||
|
background-color: #1B66FF;
|
||||||
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 32rpx;
|
||||||
|
height: 90rpx;
|
||||||
|
line-height: 90rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-color: #fefefe;
|
||||||
|
width: 690rpx;
|
||||||
|
padding: 30rpx;
|
||||||
|
padding-bottom: 80rpx;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.disabledBtn {
|
||||||
|
background-color: #c8c9cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.map {
|
||||||
|
width: 100%;
|
||||||
|
height: 350rpx;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.askList {
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #666666;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
padding: 5rpx 15rpx;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
margin-top: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ask {
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: flex-start;
|
||||||
|
margin: 20rpx 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.proint {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
font-size: 30rpx !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.proneed {
|
||||||
|
font-size: 32rpx !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.fee {
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #F46161;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.protype {
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.prolist {
|
||||||
|
font-family: PingFangSC-Regular;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
text-align: left;
|
||||||
|
padding: 5rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.proname {
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: PingFangSC-Medium;
|
||||||
|
font-size: 40rpx;
|
||||||
|
color: #333333;
|
||||||
|
width: 90%;
|
||||||
|
overflow: hidden;
|
||||||
|
padding-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.head {
|
||||||
|
padding: 30rpx;
|
||||||
|
background: #fefefe;
|
||||||
|
border-bottom: 20rpx solid #f6f6f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description {
|
||||||
|
word-break: break-all;
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,202 +1,205 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view class="body">
|
||||||
<view :key="group" v-for="(item,group) in list">
|
<!-- <view v-if="browsingResultList.length > 0" class="search-result">
|
||||||
<m-slide-list :prop="prop" :key="value.id" v-for="(value,index) in item" :value="value" :button="buttonList" @remove="click(value,group,index)"
|
<view v-for="(item, index) in browsingResultList" class="search-item" v-if="item.workname" :key="index" @click="">
|
||||||
@controller-reg="controller.reg" @controller-moving="controller.moving" @controller-opened="controller.opened"
|
<image src="../../static/img/search.svg" style="width: 32rpx;height: 32rpx;margin-right: 10rpx;" mode=""></image>
|
||||||
@controller-closed="controller.closed">
|
<view style="flex:1">{{ item.workname }}</view>
|
||||||
<view class="news-item">
|
<view class="type" v-if="item.type == 0">任务</view>
|
||||||
<view class="now-message-info" hover-class="uni-item--hover" @click="clickMethod(value)" :style="{width:windowWidth}">
|
<view class="type" v-else-if="item.type == 1">岗位</view>
|
||||||
<view class="list-right">
|
<view class="type" v-else-if="item.type == 2">政策</view>
|
||||||
<view v-if="value[prop.isRead] === 0" class="point"></view>
|
</view>
|
||||||
<view class="list-title">{{ value[prop.title] }}</view>
|
</view> -->
|
||||||
<view class="list-detail">{{ value[prop.listDesc] }}</view>
|
<block v-for="(page, pIndex) in data" :key="pIndex">
|
||||||
</view>
|
<block v-for="(item, index) in page" :key="item.id">
|
||||||
<view class="list-right-1" v-if="value[prop.time]">{{ value[prop.time] }}</view>
|
<view class="search-item" @click="toDetail(item)">
|
||||||
|
<!-- <company-list :companyitem="item" :noApply="false"></company-list> -->
|
||||||
|
<image src="/static/img/eyeopen.svg" style="width: 32rpx;height: 32rpx;margin-right: 10rpx;"
|
||||||
|
mode=""></image>
|
||||||
|
<view style="flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ item.workname }}
|
||||||
</view>
|
</view>
|
||||||
<view style="clear:both"></view>
|
<view class="type" v-if="item.type1 == 0">任务</view>
|
||||||
|
<view class="type" v-else-if="item.type1 == 1">岗位</view>
|
||||||
|
<view class="type" v-else-if="item.type1 == 2">招工</view>
|
||||||
|
<view class="baddd"></view>
|
||||||
</view>
|
</view>
|
||||||
</m-slide-list>
|
</block>
|
||||||
<!-- <view class="news-loading">
|
</block>
|
||||||
加载中...
|
<view class="nothing" v-if="data.length === 0">
|
||||||
</view> -->
|
<image src="/static/img/pic_notask.svg" mode=""></image>
|
||||||
|
<view class="nothingContnt">
|
||||||
|
暂无浏览信息
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import mSlideList from '../../../components/mark-slide-list/mark-slide-list.vue';
|
import vTabs from '@/components/v-tabs/v-tabs.vue';
|
||||||
import controller from '../../../components/mark-slide-list/controller';
|
import {
|
||||||
import {
|
recruitmentNewsList
|
||||||
mapGetters
|
} from '@/api/mission.js';
|
||||||
} from 'vuex'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
mSlideList
|
vTabs,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
data: [],
|
||||||
|
activeTab: 0,
|
||||||
|
current: 1,
|
||||||
|
size: 10,
|
||||||
|
total: 0,
|
||||||
|
browsingResultList: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad: function () {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
/*页面滚动到底部 换页*/
|
||||||
|
onReachBottom: function () {
|
||||||
|
if (this.current <= Math.ceil(this.total / this.size)) {
|
||||||
|
this.getData();
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
icon: "none",
|
||||||
|
title: '已经是最后一页',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
/*下拉刷新*/
|
||||||
|
onPullDownRefresh: function () {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init() {
|
||||||
|
this.current = 1
|
||||||
|
this.data = []
|
||||||
|
this.getData()
|
||||||
},
|
},
|
||||||
data() {
|
getData() {
|
||||||
return {
|
var status = Number(this.activeTab) + 1
|
||||||
loading: false,
|
recruitmentNewsList(this.current, this.size, status).then(res => {
|
||||||
id: '',
|
|
||||||
controller: new controller(),
|
|
||||||
buttonList: [{
|
|
||||||
title: '删除',
|
|
||||||
background: '#ff3b32',
|
|
||||||
clickName: 'remove'
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
},
|
|
||||||
onLoad({
|
|
||||||
type
|
|
||||||
}) {
|
|
||||||
this.id = type
|
|
||||||
uni.setNavigationBarTitle({
|
|
||||||
title: this.news.data[type].title
|
|
||||||
});
|
|
||||||
},
|
|
||||||
onPullDownRefresh() {
|
|
||||||
this.loading = true
|
|
||||||
this.$store.dispatch("newsReload", this.id).then(() => {
|
|
||||||
this.loading = false
|
|
||||||
uni.stopPullDownRefresh();
|
|
||||||
}).catch(() => {
|
|
||||||
this.loading = false
|
|
||||||
uni.stopPullDownRefresh();
|
uni.stopPullDownRefresh();
|
||||||
|
console.log(res)
|
||||||
|
if (this.current === 1) {
|
||||||
|
this.data = [];
|
||||||
|
}
|
||||||
|
this.current += 1;
|
||||||
|
this.total = res.data.data.total;
|
||||||
|
if (res.data.data && res.data.data.records.length) {
|
||||||
|
this.data.push(res.data.data.records);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// onPageScroll(obj) {},
|
gomap: function () {
|
||||||
onReachBottom() {
|
uni.navigateTo({
|
||||||
if (!this.loading) {
|
url: '../mapSeach/mapSeach'
|
||||||
this.loading = true
|
})
|
||||||
this.$store.dispatch("newsGetNextPage", this.id).then(() => {
|
},
|
||||||
this.loading = false
|
changeTab: function (e) {
|
||||||
|
this.activeTab = e;
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
toDetail(item) {
|
||||||
|
const no = item.id
|
||||||
|
// 判断是岗位还是任务 0:任务,1:岗位,2:招工
|
||||||
|
if (item.type1 == 0) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/recruit/subPage/newsDetail/projectInfo?missionNo=${encodeURIComponent(no)}&type=${item.type1}&isCan=1`
|
||||||
|
})
|
||||||
|
} else if (item.type1 == 1) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/recruit/subPage/newsDetail/workInfo?workId=${encodeURIComponent(no)}&type=${item.type1}&isCan=1`
|
||||||
|
})
|
||||||
|
} else if (item.type1 == 2) {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/recruit/subPage/newsDetail/userrecruitInfo?workId=${encodeURIComponent(no)}&isCan=1&type=${item.type1}`
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
//查看详情
|
|
||||||
clickMethod(data) {
|
|
||||||
this.news.data[this.id].navigateTo(data, this.$store.dispatch)
|
|
||||||
},
|
|
||||||
click(value, group, index) {
|
|
||||||
this.$store.dispatch('removeNew', {
|
|
||||||
id: value.id,
|
|
||||||
key: this.id,
|
|
||||||
group,
|
|
||||||
index
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapGetters(['news']),
|
|
||||||
list() {
|
|
||||||
if (this.id) {
|
|
||||||
return this.news.data[this.id].data
|
|
||||||
}
|
|
||||||
},
|
|
||||||
prop() {
|
|
||||||
if (this.id) {
|
|
||||||
return this.news.data[this.id].prop
|
|
||||||
}
|
|
||||||
},
|
|
||||||
windowWidth() {
|
|
||||||
return uni.getSystemInfoSync().windowWidth + 'px';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style scoped>
|
||||||
.uni-item--hover {
|
page {
|
||||||
background-color: #f1f1f1 !important;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.news-item {
|
.tab {
|
||||||
height: 160rpx;
|
height: 46px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.now-message-info {
|
.body {
|
||||||
position: relative;
|
height: 100%;
|
||||||
box-sizing: border-box;
|
}
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
/* justify-content: space-between; */
|
|
||||||
font-size: 16px;
|
|
||||||
clear: both;
|
|
||||||
height: 160rpx;
|
|
||||||
padding: 0 30rpx;
|
|
||||||
// margin-bottom: 20rpx;
|
|
||||||
background: #ffffff;
|
|
||||||
float: left;
|
|
||||||
border-bottom: 1px solid #f2f2f2;
|
|
||||||
|
|
||||||
.icon-image {
|
.probody image {
|
||||||
border-radius: 10rpx;
|
width: 88rpx;
|
||||||
width: 100rpx;
|
height: 88rpx;
|
||||||
height: 100rpx;
|
position: absolute;
|
||||||
float: left;
|
right: 0;
|
||||||
}
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.icon-circle {
|
.probody {
|
||||||
background: #3396fb;
|
width: 100%;
|
||||||
border-radius: 100%;
|
position: relative;
|
||||||
width: 100rpx;
|
}
|
||||||
height: 100rpx;
|
|
||||||
line-height: 100rpx;
|
|
||||||
text-align: center;
|
|
||||||
color: #ffffff;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 20px;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-right {
|
.baddd {
|
||||||
position: relative;
|
background: #f6f6f6;
|
||||||
float: left;
|
height: 20rpx;
|
||||||
margin-left: 25rpx;
|
}
|
||||||
margin-right: 30rpx;
|
|
||||||
|
|
||||||
.point {
|
.nothing {
|
||||||
position: absolute;
|
height: 100%;
|
||||||
top: 15rpx;
|
padding-top: 50%;
|
||||||
left: -25rpx;
|
box-sizing: border-box;
|
||||||
width: 20rpx;
|
}
|
||||||
height: 20rpx;
|
|
||||||
background: red;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-title {
|
.nothing image {
|
||||||
width: 350rpx;
|
width: 400rpx;
|
||||||
line-height: 1.5;
|
height: 200rpx;
|
||||||
overflow: hidden;
|
display: block;
|
||||||
margin-bottom: 10rpx;
|
margin: 0 auto;
|
||||||
color: #333;
|
}
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 1;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-detail {
|
.nothingContnt {
|
||||||
width: 350rpx;
|
font-family: PingFangSC-Regular;
|
||||||
font-size: 14px;
|
font-size: 28rpx;
|
||||||
color: #a9a9a9;
|
color: #666;
|
||||||
display: -webkit-box;
|
margin-top: 30rpx;
|
||||||
-webkit-box-orient: vertical;
|
text-align: center;
|
||||||
-webkit-line-clamp: 1;
|
}
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-right-1 {
|
.title {
|
||||||
position: absolute;
|
font-size: 26rpx;
|
||||||
right: 30rpx;
|
font-weight: bold;
|
||||||
color: #a9a9a9;
|
border-bottom: 1rpx solid #ddd;
|
||||||
font-size: 24rpx;
|
height: 60rpx;
|
||||||
}
|
line-height: 60rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.news-loading {}
|
.search-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 26rpx;
|
||||||
|
border-bottom: 1rpx solid #ddd;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-item .type {
|
||||||
|
font-size: 20rpx;
|
||||||
|
color: #707070;
|
||||||
|
background-color: #dddddd;
|
||||||
|
border-radius: 15rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
line-height: 30rpx;
|
||||||
|
padding: 0 20rpx;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -49,35 +49,35 @@ const news = {
|
|||||||
state: {
|
state: {
|
||||||
count: 0,
|
count: 0,
|
||||||
data: {
|
data: {
|
||||||
// "0": {
|
"0": {
|
||||||
// id: "0",
|
id: "0",
|
||||||
// title: "消息通知",
|
title: "消息通知",
|
||||||
// icon: "../../static/img/notice.svg",
|
icon: "../../../static/img/notice.svg",
|
||||||
// page: {
|
page: {
|
||||||
// current: 0,
|
current: 0,
|
||||||
// size,
|
size,
|
||||||
// total: size
|
total: size
|
||||||
// },
|
},
|
||||||
// data: [],
|
data: [],
|
||||||
// prop: {
|
prop: {
|
||||||
// title: 'title',
|
title: 'title',
|
||||||
// desc: (value) => {
|
desc: (value) => {
|
||||||
// if (value.data[0])
|
if (value.data[0])
|
||||||
// return value.data[0][0]['desc']
|
return value.data[0][0]['desc']
|
||||||
// },
|
},
|
||||||
// time: 'createTime',
|
time: 'createTime',
|
||||||
// isRead: 'isRead',
|
isRead: 'isRead',
|
||||||
// listDesc: 'desc',
|
listDesc: 'desc',
|
||||||
// },
|
},
|
||||||
// navigateTo(item) {
|
navigateTo(item) {
|
||||||
// uni.$once('getNewsDetail', (cb) => {
|
uni.$once('getNewsDetail', (cb) => {
|
||||||
// cb(item)
|
cb(item)
|
||||||
// })
|
})
|
||||||
// uni.navigateTo({
|
uni.navigateTo({
|
||||||
// url: "/pages/news/newsDetail?type=0"
|
url: "/pages/news/newsDetail?type=0"
|
||||||
// })
|
})
|
||||||
// }
|
}
|
||||||
// },
|
},
|
||||||
"1": {
|
"1": {
|
||||||
id: "1",
|
id: "1",
|
||||||
title: "任务申请",
|
title: "任务申请",
|
||||||
@@ -141,7 +141,7 @@ const news = {
|
|||||||
// "3": {
|
// "3": {
|
||||||
// id: "1",
|
// id: "1",
|
||||||
// title: "技能推送",
|
// title: "技能推送",
|
||||||
// icon: "../../static/img/jineng.svg",
|
// icon: "../../../static/img/jineng.svg",
|
||||||
// page: {
|
// page: {
|
||||||
// current: 0,
|
// current: 0,
|
||||||
// size,
|
// size,
|
||||||
@@ -315,7 +315,7 @@ const news = {
|
|||||||
state.allUnread = getCount(state.unread)
|
state.allUnread = getCount(state.unread)
|
||||||
},
|
},
|
||||||
CLEAR_NEWS_DATA: (state, id) => {
|
CLEAR_NEWS_DATA: (state, id) => {
|
||||||
state.data[id].page = {
|
state.data[id]?.page = {
|
||||||
current: 0,
|
current: 0,
|
||||||
size
|
size
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,8 @@ module.exports = {
|
|||||||
port: 1887,
|
port: 1887,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
// target: 'http://192.168.3.104:8000', // 本地服务接口地址
|
|
||||||
target: "http://39.98.184.58:8000", // 阿里云后台地址
|
|
||||||
// target: 'http://192.168.3.108:8000', // 本地服务接口地址
|
// target: 'http://192.168.3.108:8000', // 本地服务接口地址
|
||||||
// target: 'http://192.168.3.111:8000', // 本地服务接口地址
|
target: 'http://192.168.3.173:8000', // 本地服务接口地址
|
||||||
ws: true,
|
ws: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
'^/api': '/'
|
'^/api': '/'
|
||||||
|
|||||||
Reference in New Issue
Block a user