提交 e8f1f2f9 authored 作者: 赵世杰's avatar 赵世杰

1

上级 a82c596c
No preview for this file type
<script> <script>
export default { export default {
onLaunch: function() { onLaunch: function() {
console.log('App Launch') const that = this;
if (!uni.getStorageSync('jy-recruit-token')) {
uni.login({
success(e) {
that.$http.get('/public/ali/getopenId', {
code: e.code,
}).then(res => {
const code = JSON.parse(res.code)
uni.setStorageSync('openId', code.alipay_system_oauth_token_response.open_id)
// 无账号注册账号
that.$http.post('/public/person/c', {
openId: code.alipay_system_oauth_token_response.open_id
}).then(res => {
})
})
}
})
}
}, },
onShow: function() { onShow: function() {
console.log('App Show') console.log('App Show')
......
...@@ -299,7 +299,8 @@ ...@@ -299,7 +299,8 @@
if (vm.activedSubIndex || vm.activedSubIndex === 0) { if (vm.activedSubIndex || vm.activedSubIndex === 0) {
res3 = vm.colItems2[vm.activedSubIndex] || {}; res3 = vm.colItems2[vm.activedSubIndex] || {};
} }
this.colItems3 = res3.children || []; // 放开才有第三级数据
// this.colItems3 = res3.children || [];
} }
}, },
......
<template>
<div class="well-dialog" :class="{'well-dialog--show':showDialog }">
<div class="well-dialog__mask" @click="closeDialog"></div>
<div class="well-dialog__container">
<div class="tree-select-contain">
<div class="header">
<div class="caption">
{{titleText}}
</div>
<div class="action" @click="confirm()">
关闭
</div>
</div>
<scroll-view scroll-x style="width: 100%;height: 100%;"
:scroll-left="scrollLeft" :scroll-with-animation="true">
<div class="con" :class="{'width-per150': colItems3.length}">
<div class="col">
<scroll-view scroll-y style="height: 100%;">
<ul>
<li v-for="(item, index) in data" :key="index"
@click="clickNavItem(index)"
:class="{'active': activedNavIndex == index,'selected':item.selected}">
{{item.name}}
</li>
</ul>
</scroll-view>
</div>
<div class="col">
<scroll-view scroll-y style="height: 100%;">
<ul>
<li v-for="(item, index) in colItems2" :key="index"
@click="clickSubItem(index)"
:class="{'active': activedSubIndex === index,'selected':item.selected}">
{{item.name}}
</li>
</ul>
</scroll-view>
</div>
<div class="col" v-show="colItems3.length">
<scroll-view scroll-y style="height: 100%;">
<ul>
<li v-for="(item, index) in colItems3" :key="index"
@click="clickThirdItem(item,index)"
:class="{'active': item.selected}">
<div class="label-font">{{item.name}}</div>
<icon type="success_no_circle" size="20" v-if="item.selected" color="#0083FF"/>
</li>
</ul>
</scroll-view>
</div>
</div>
</scroll-view>
</div>
</div>
</div>
</template>
<script>
/**
* “分类选择器”组件
* 参数:
* @param showDialog 是否显示组件,true为打开
* @param titleText 组件标题
* @param maxSelected 最多选中几项
* @param selectedValues 选中的值的value,如:[060ef5006a504697a7d642d7e7d199cc', '060ef5006a504697a7d642d7e7d199cc']
* @param data 所要展示的数据,例子:
* 事件:
* @clickNav 点击一级标签时触发的事件
* @clickSub 点击二级标签时触发的事件
* @clickThird 点击三级标签时触发的事件
* @doConfirm 点击确定时触发的事件
*
*
* 例子:
* <well-tree-select @doConfirm="doConfirmCategorys"
* :showDialog.sync="showDialog"
* :data="categorysList"
* :title-text="'选择职位'"
* :max-selected="2"
* :selected-ids="selectedValues"></well-tree-select>
* **/
export default {
props: {
showDialog: { type: Boolean, default: false },
titleText: { type: String, default: '请选择' },
data: { type: Array, default: [] },
maxSelected: { type: Number, default: 3 },
selectedValues: { type: Array, default: [] }
},
data () {
return {
scrollLeft: 0,
activedNavIndex: 0,//第一列选中第几个
activedSubIndex: null,//第二列选中第几个
colItems2: [],//第二列数据
colItems3: [],//第三列数据
selectedItems: []//选中的数据
};
},
watch: {
selectedValues: {
handler: function (newValue, oldValue) {
console.log('selectedValues change', newValue);
this.initChange();
},
immediate: true
},
data (newData, oldData) {
console.log('newData');
this.initChange();
}
},
methods: {
/**
* 点击遮罩层关闭弹窗
* **/
closeDialog () {
this.$emit('update:showDialog', false);
},
/**
* 点击第一列
* **/
clickNavItem (index) {
//console.log("clickNavItem");
this.activedNavIndex = index;
this.activedSubIndex = null;
//更新第二列及第三列数据
this.setColItems();
this.$emit('clickNav', this.data[index]);
},
/**
* 点击第二列
* **/
clickSubItem (index) {
this.activedSubIndex = index;
console.log('clickSubItem', index);
//更新第二列及第三列数据
this.setColItems();
this.scrollLeft = this.scrollLeft + wx.getSystemInfoSync().windowWidth / 2;
this.$emit('clickSub', this.colItems2[index]);
},
/**
* 点击第三列
* **/
clickThirdItem (item, index) {
this.selectedItems.push({
navIndex: this.activedNavIndex,
subIndex: this.activedSubIndex,
thirdIndex: index,
id: item.id,
name: item.name,
code: item.code
});
//最多选择maxSelected项
let delectCount = this.selectedItems.length - this.maxSelected;
if (delectCount > 0) {
this.selectedItems.splice(0, delectCount);
}
//selectedItems发生了变化,需要更新选中状态
this.updateSelectedStyle();
this.$emit('clickThird', item);
},
/**
* 点击确认
* **/
confirm () {
this.$emit('doConfirm', this.selectedItems);
this.closeDialog();
},
/**
* 初始化选中状态
* **/
initChange () {
//根据外部出入的ids,找出每个选中值的上级下标
let col1 = this.data || [];
let flag = false;
for (let i = 0; i < col1.length; i++) {
let col2 = col1[i].chilList || [];
for (let j = 0; j < col2.length; j++) {
let col3 = col2[j].chilList || [];
for (let k = 0; k < col3.length; k++) {
if (this.selectedValues.indexOf(col3[k].id) > -1) {
this.selectedItems.push({
navIndex: i,
subIndex: j,
thirdIndex: k,
id: col3[k].id,
name: col3[k].name,
code: col3[k].code
});
if (!flag) {
this.activedNavIndex = i;
this.activedSubIndex = j;
flag = true;
}
}
}
}
}
//根据选中值展示每列数据
this.setColItems();
//根据选中值,设置选中状态
this.updateSelectedStyle();
},
/**
* 更新选中样式
* **/
updateSelectedStyle () {
//先取消所有选中状态
let col1 = this.data || [];
for (let i = 0; i < col1.length; i++) {
col1[i].selected = false;
let col2 = col1[i].chilList || [];
for (let j = 0; j < col2.length; j++) {
col2[j].selected = false;
let col3 = col2[j].chilList || [];
for (let k = 0; k < col3.length; k++) {
col3[k].selected = false;
}
}
}
let _selects = this.selectedItems || [];
for (let i = 0; i < _selects.length; i++) {
let item = _selects[i];
let col1 = this.data[item.navIndex];
let col2 = col1.chilList[item.subIndex];
let col3 = col2.chilList[item.thirdIndex];
col1.selected = true;
col2.selected = true;
col3.selected = true;
}
},
/**
* activedNavIndex、activedSubIndex发生变化时,
* 设置第二列和第三列数据
* **/
setColItems: function () {
let vm = this;
let res2 = {};
if (vm.activedNavIndex || vm.activedNavIndex === 0) {
res2 = vm.data[vm.activedNavIndex] || {};
}
this.colItems2 = res2.chilList || [];
let res3 = {};
if (vm.activedSubIndex || vm.activedSubIndex === 0) {
res3 = vm.colItems2[vm.activedSubIndex] || {};
}
// this.colItems3 = res3.chilList || [];
}
},
components: {},
onShow () {
},
created () {
}
};
</script>
<style lang="less" scoped>
@import './well-treeSelect.less';
</style>
...@@ -45,7 +45,7 @@ const responseInterceptor = (response) => { ...@@ -45,7 +45,7 @@ const responseInterceptor = (response) => {
icon: 'none', icon: 'none',
duration: 3000 duration: 3000
}); });
uni.clearStorageSync() uni.setStorageSync('jy-recruit-token','')
return Promise.reject(data); return Promise.reject(data);
} else { } else {
// 其他业务错误 // 其他业务错误
......
...@@ -59,9 +59,10 @@ ...@@ -59,9 +59,10 @@
"mp-alipay" : { "mp-alipay" : {
"usingComponents" : true, "usingComponents" : true,
"appid" : "2021005184646262", "appid" : "2021005184646262",
"permission" : { "plugins" : {
"zhima.auth.workcert.verify" : { "resume" : {
"desc" : "用于验证你的芝麻工作证信息" "version" : "*",
"provider" : "2021005166611515"
} }
} }
}, },
......
...@@ -9,13 +9,24 @@ ...@@ -9,13 +9,24 @@
"navigationBarTitleText": "君营直聘", "navigationBarTitleText": "君营直聘",
"enablePullDownRefresh": true, // 开启下拉刷新 "enablePullDownRefresh": true, // 开启下拉刷新
"backgroundColor": "#F5F5F5", // 下拉刷新背景色 "backgroundColor": "#F5F5F5", // 下拉刷新背景色
"backgroundTextStyle": "dark" // 下拉刷新文字颜色(dark/light) "backgroundTextStyle": "dark", // 下拉刷新文字颜色(dark/light)
"mp-alipay": {
"usingComponents": {
"resume-popup":"plugin://resume/resume-login-authorize-popup"
}
}
} }
}, },
{ {
"path": "pages/home/jobDetails", "path": "pages/home/jobDetails",
"style": { "style": {
"navigationBarTitleText": "职位详情" "navigationBarTitleText": "职位详情",
"mp-alipay": {
"usingComponents": {
"resume-popup":"plugin://resume/resume-login-authorize-popup",
"resume-popup2": "plugin://resume/resume-popup"
}
}
} }
}, },
{ {
...@@ -28,7 +39,12 @@ ...@@ -28,7 +39,12 @@
{ {
"path": "pages/user/index", "path": "pages/user/index",
"style": { "style": {
"navigationBarTitleText": "我的" "navigationBarTitleText": "我的",
"mp-alipay": {
"usingComponents": {
"resume-popup":"plugin://resume/resume-login-authorize-popup"
}
}
} }
}, },
{ {
...@@ -66,7 +82,7 @@ ...@@ -66,7 +82,7 @@
"path" : "pages/user/collectLog", "path" : "pages/user/collectLog",
"style" : "style" :
{ {
"navigationBarTitleText" : "收藏记录", "navigationBarTitleText" : "岗位收藏",
"enablePullDownRefresh": true, // 开启下拉刷新 "enablePullDownRefresh": true, // 开启下拉刷新
"backgroundColor": "#F5F5F5", // 下拉刷新背景色 "backgroundColor": "#F5F5F5", // 下拉刷新背景色
"backgroundTextStyle": "dark" // 下拉刷新文字颜色(dark/light) "backgroundTextStyle": "dark" // 下拉刷新文字颜色(dark/light)
...@@ -99,6 +115,13 @@ ...@@ -99,6 +115,13 @@
{ {
"navigationBarTitleText" : "" "navigationBarTitleText" : ""
} }
},
{
"path" : "pages/user/license",
"style" :
{
"navigationBarTitleText" : "人力资源许可证&营业执照"
}
} }
], ],
"globalStyle": { "globalStyle": {
......
...@@ -7,7 +7,16 @@ ...@@ -7,7 +7,16 @@
</view> --> </view> -->
<u-search placeholder="搜索职位/公司" v-model="selTitle" @custom="load"/> <u-search placeholder="搜索职位/公司" v-model="selTitle" @custom="load"/>
</view> </view>
<u-tabs :list="tabList" @change="changeTabs"> <u-tabs
:list="tabList"
@change="changeTabs"
:activeStyle="{
color: '#303133',
fontWeight: 'bold',
transform: 'scale(1.25)',
transition: 'all .2s linear'
}"
>
<view <view
slot="right" slot="right"
style="padding: 0 30rpx 0 10rpx" style="padding: 0 30rpx 0 10rpx"
...@@ -20,7 +29,7 @@ ...@@ -20,7 +29,7 @@
></u-icon> ></u-icon>
</view> </view>
</u-tabs> </u-tabs>
<view class="list"> <scroll-view scroll-y class="list" @scrolltolower="loadMore">
<view class="list-item" v-for="item in list" @click="toDetail(item)"> <view class="list-item" v-for="item in list" @click="toDetail(item)">
<view class="list-title f_b"> <view class="list-title f_b">
<view class="f_s"> <view class="f_s">
...@@ -53,20 +62,32 @@ ...@@ -53,20 +62,32 @@
:loadmore-text="loadmoreText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" :nomore-text="nomoreText"
/> />
</view> </scroll-view>
<LoginOpen v-if="loginShow" @close="loginSuccess"/> <resume-popup
:visible="visible"
appId="2021005184646262"
outBizNo="outBizNo"
templateId="DEFAULT"
onClose="onClose"
onSuccess="onSuccess"
onFailure="onFailure"
/>
</view> </view>
</template> </template>
<script> <script>
import { getResume } from '../../util/loginSetInfo.js'
export default { export default {
data() { data() {
return { return {
loginShow: false, pageNum: 1,
pageSize: 10,
outBizNo: '',
visible: false,
list: [], list: [],
selTitle: '', selTitle: '',
tabName: '推荐', tabName: '推荐',
status: 'nomore', status: 'nomore', // loadmore loading
loadingText: '努力加载中', loadingText: '努力加载中',
loadmoreText: '轻轻上拉', loadmoreText: '轻轻上拉',
nomoreText: '实在没有了', nomoreText: '实在没有了',
...@@ -75,9 +96,14 @@ ...@@ -75,9 +96,14 @@
] ]
} }
}, },
onLoad() { onLoad() {
this.$scope.onClose = this.onClose;
this.$scope.onSuccess = this.onSuccess;
this.$scope.onFailure = this.onFailure;
}, },
onPullDownRefresh() { onPullDownRefresh() {
this.selTitle = ''
this.pageNum = 1
this.load('sx') this.load('sx')
}, },
onShow() { onShow() {
...@@ -85,14 +111,59 @@ ...@@ -85,14 +111,59 @@
this.load() this.load()
}, },
methods: { methods: {
generateOutBizNo() {
const timestamp = new Date().getTime();
const random = Math.floor(Math.random() * 10000).toString().padStart(4, '0');
return `job_auth_${timestamp}_${random}`;
},
loadMore() {
if (this.status == 'loadmore') {
this.pageNum = this.pageNum + 1
this.load()
}
},
handleTap() {
this.outBizNo = this.generateOutBizNo()
this.visible = true;
},
onFailure({code, message}) {
console.log(code, message);
this.visible = true
},
onClose() {
this.visible = false;
},
onSuccess(applyId) {
this.visible = false;
getResume(applyId,()=> {
uni.showToast({
title: '登录成功',
icon: 'none'
})
this.getDetail()
this.addTab()
})
},
getDetail() { getDetail() {
if (uni.getStorageSync('jy-recruit-token')) { if (uni.getStorageSync('jy-recruit-token')) {
this.$http.get('/person/person/details', {}).then(res => { this.$http.get('/person/person/details', {}).then(res => {
if (!res.data) {
uni.showToast({
title:'登录信息有误,请重新登录',
icon: 'none'
})
uni.clearStorageSync()
return
}
this.userInfo = res.data this.userInfo = res.data
this.$http.get('/objective/l', {personId: res.data.id}).then(res => { this.$http.get('/objective/l', {personId: res.data.id}).then(res => {
this.tabList = [{name: '推荐'}] this.tabList = [{name: '推荐'}]
for(const item of res.data.list) { for(const item of res.data.list) {
this.tabList.push({name:item.industryName}) this.tabList.push({
name:item.industryName,
province: item.province,
city: item.city
})
} }
}) })
}) })
...@@ -104,13 +175,7 @@ ...@@ -104,13 +175,7 @@
url: `/pages/user/resume/addIntention?id=${this.userInfo.id}` url: `/pages/user/resume/addIntention?id=${this.userInfo.id}`
}) })
} else { } else {
this.loginShow = true this.handleTap()
}
},
loginSuccess(e) {
this.loginShow = false
if (e) {
this.getDetail()
} }
}, },
changeTabs(e) { changeTabs(e) {
...@@ -118,13 +183,23 @@ ...@@ -118,13 +183,23 @@
this.load() this.load()
}, },
load(type) { load(type) {
let province = '',city = ''
if (this.tabName != '推荐') {
province = this.tabList.find(item => item.name == this.tabName).province
city = this.tabList.find(item => item.name == this.tabName).city
}
this.status = 'loading'
this.$http.get('/public/recruit/l', { this.$http.get('/public/recruit/l', {
status: 'up', status: 'up',
baseCode: 'jyjfb', baseCode: 'jyjfb',
selTitle: this.selTitle, selTitle: this.selTitle,
industryName: this.tabName == '推荐' ? '' : this.tabName city,province,
industryName: this.tabName == '推荐' ? '' : this.tabName,
pageNum: this.pageNum,
pageSize: this.pageSize,
}).then(res => { }).then(res => {
this.list = res.data.list this.list = this.pageNum == 1 ? res.data.list : [...this.list,...res.data.list],
this.status = this.list.length >= res.data.total ? 'nomore' : 'loadmore'
if (type == 'sx') { if (type == 'sx') {
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
setTimeout(() => { setTimeout(() => {
...@@ -138,7 +213,7 @@ ...@@ -138,7 +213,7 @@
}, },
toDetail(el = {}) { toDetail(el = {}) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/home/jobDetails?id=${el.id}` url: `/pages/home/jobDetails?id=${el.id}&source=jyzp`
}) })
} }
} }
...@@ -147,7 +222,7 @@ ...@@ -147,7 +222,7 @@
<style lang="scss"> <style lang="scss">
.home{ .home{
height: 100%; height: 100vh;
overflow: hidden; overflow: hidden;
.top{ .top{
height: 120rpx; height: 120rpx;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<view class="jobInfo"> <view class="jobInfo">
<view class="f_b"> <view class="f_b">
<view class="jobName">{{ detail.name }}</view> <view class="jobName">{{ detail.name }}</view>
<view class="jobSalary">{{detail.salaryMin}}-{{detail.salaryMax}}</view> <view class="jobSalary">{{detail.salaryMin}}-{{detail.salaryMax}} {{detail.payTimes ? detail.payTimes + '薪' : ''}}</view>
</view> </view>
<view class="companyName">{{detail.industryName}}</view> <view class="companyName">{{detail.industryName}}</view>
<view class="requirement f_s"> <view class="requirement f_s">
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
{{ detail.recruitType }} {{ detail.recruitType }}
</view> </view>
</view> </view>
<u-cell icon="map" :title="`${detail.province} ${detail.city} ${detail.region} ${detail.address}`" :border="false"/>
</view> </view>
<view class="jobDesc"> <view class="jobDesc">
<view class="moduleTitle">职位描述</view> <view class="moduleTitle">职位描述</view>
...@@ -70,25 +71,56 @@ ...@@ -70,25 +71,56 @@
<u-button type="primary" text="已投递" v-if="signUp" disabled></u-button> <u-button type="primary" text="已投递" v-if="signUp" disabled></u-button>
<u-button type="primary" text="投递简历" v-else @click="deliver"></u-button> <u-button type="primary" text="投递简历" v-else @click="deliver"></u-button>
</view> </view>
<LoginOpen v-if="loginShow" @close="loginSuccess"/> <resume-popup
:visible="visible"
appId="2021005184646262"
:outBizNo="outBizNo"
templateId="DEFAULT"
onClose="onClose"
onSuccess="onSuccess"
onFailure="onFailure"
/>
<resume-popup2
:visible="visible2"
appId="2021005184646262"
outBizNo="outBizNo"
:outJobId="detail.id"
:jobName="detail.name"
:recruitmentPlatformName="detail.orgName"
templateId="DEFAULT"
requiredAttributes="baseInfo|phone|educationLevel|workExperience"
onClose="onClose2"
onSuccess="onSuccess2"
onFailure="onFailure2"
/>
</view> </view>
</template> </template>
<script> <script>
import { getResume } from '../../util/loginSetInfo.js'
export default { export default {
data() { data() {
return { return {
outBizNo: '',
visible: false,
visible2: false,
recruitId: '', recruitId: '',
detail: {}, detail: {},
userInfo: [], userInfo: [],
token: '', token: '',
signUp: false, // 是否已报名 signUp: false, // 是否已报名
collect: false, // 是否已收藏 collect: false, // 是否已收藏
loginShow: false, // 登录弹窗 source: '',
} }
}, },
onLoad(o) { onLoad(o) {
console.log(o) this.$scope.onClose = this.onClose;
this.$scope.onClose2 = this.onClose2;
this.$scope.onSuccess = this.onSuccess;
this.$scope.onSuccess2 = this.onSuccess2;
this.$scope.onFailure = this.onFailure;
this.$scope.onFailure2 = this.onFailure2;
this.recruitId = o.id this.recruitId = o.id
this.source = o.source || ''
this.token = uni.getStorageSync('jy-recruit-token') || '' this.token = uni.getStorageSync('jy-recruit-token') || ''
this.$http.get('/public/recruit/details', { this.$http.get('/public/recruit/details', {
id: o.id, id: o.id,
...@@ -97,8 +129,126 @@ ...@@ -97,8 +129,126 @@
this.getSignRecord() this.getSignRecord()
}) })
this.getLoginInfo() this.getLoginInfo()
if (o.source != 'jyzp' && !this.token) {
const that = this
uni.login({
success(e) {
that.$http.get('/public/ali/getopenId', {
code: e.code,
}).then(res => {
const code = JSON.parse(res.code)
console.log('getOpenId',code)
const openId = code.alipay_system_oauth_token_response.open_id
uni.setStorageSync('openId', openId)
that.$http.post('/public/person/c', {
openId: openId
}).then(res => {
uni.request({
// url: 'http://192.168.0.6:8000/loginform',
url: 'https://jyzp.365jft.com/jfb-recruit/loginform',
method: 'POST',
data: {
account: openId,
wxType: 'wx'
},
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success: (res) => {
uni.setStorageSync('jy-recruit-token',res.data.token)
that.token = res.data.token
},
fail: (err) => {
console.log('请求失败', err);
}
});
})
})
}
})
}
}, },
methods: { methods: {
generateOutBizNo() {
const timestamp = new Date().getTime();
const random = Math.floor(Math.random() * 10000).toString().padStart(4, '0');
return `job_auth_${timestamp}_${random}`;
},
handleTap() {
this.outBizNo = this.generateOutBizNo()
this.visible = true;
},
onFailure({code, message}) {
console.log(code, message);
this.visible = true
},
onClose() {
this.visible = false;
},
onFailure2(res) {
console.log(111111,res);
this.visible2 = true
},
onClose2() {
this.visible2 = false;
},
onSuccess(applyId) {
this.visible = false;
getResume(applyId,()=> {
uni.showToast({
title: '登录成功',
icon: 'none'
})
this.token = uni.getStorageSync('jy-recruit-token')
this.getSignRecord()
this.getLoginInfo()
})
},
onSuccess2(applyId) {
this.visible2 = false;
console.log('投递成功',applyId)
this.signUp = true
if (this.source == 'jyzp') {
console.log(2)
uni.showToast({
title: `报名成功`,
icon: 'none',
})
} else {
uni.showModal({
content: '投递成功',
confirmText: '返回支付宝就业',
showCancel: false,
success: function (res) {
if (res.confirm) {
my.exitMiniProgram();
}
}
})
}
// 直接通过安心工作证回调投递成功 无需再单独调用投递接口
// if (this.userInfo.name && this.userInfo.tabList.length > 0) {
// this.$http.post('/signRecord/c', {
// recruitId: this.recruitId,
// }).then(res => {
// this.signUp = true
// uni.showToast({
// title: `报名成功`,
// icon: 'none',
// })
// })
// } else {
// uni.showToast({
// title: '请先完善简历',
// icon: 'none'
// })
// uni.navigateTo({
// url: `/pages/user/resume/index`
// })
// }
},
toCompanyDetails(org) { toCompanyDetails(org) {
uni.setStorageSync('ogrDetails',org) uni.setStorageSync('ogrDetails',org)
uni.navigateTo({ uni.navigateTo({
...@@ -127,7 +277,7 @@ ...@@ -127,7 +277,7 @@
}) })
}) })
} else { // 未登录 触发登录 } else { // 未登录 触发登录
this.loginShow = true this.handleTap()
} }
}, },
// 检查是否已报名 // 检查是否已报名
...@@ -148,37 +298,12 @@ ...@@ -148,37 +298,12 @@
// 投递简历 // 投递简历
deliver() { deliver() {
if (this.token) { if (this.token) {
if (this.userInfo.name && this.userInfo.tabList.length > 0) { this.outBizNo = this.generateOutBizNo()
this.$http.post('/signRecord/c', { this.visible2 = true;
recruitId: this.recruitId,
}).then(res => {
this.signUp = true
uni.showToast({
title: `报名成功`,
icon: 'none',
})
})
} else {
uni.showToast({
title: '请先完善简历',
icon: 'none'
})
uni.navigateTo({
url: `/pages/user/resume/index`
})
}
} else { // 未登录 触发登录 } else { // 未登录 触发登录
this.loginShow = true this.handleTap()
} }
}, },
loginSuccess(e) {
this.loginShow = false
if (e) {
this.token = e
this.getSignRecord()
this.getLoginInfo()
}
}
} }
} }
</script> </script>
...@@ -215,6 +340,12 @@ ...@@ -215,6 +340,12 @@
} }
font-weight: 300; font-weight: 300;
} }
.u-cell__body{
padding: 10px 0 !important;
.u-cell__title-text{
font-weight: 300;
}
}
} }
.jobDesc{ .jobDesc{
background: #fff; background: #fff;
......
<template> <template>
<view class="collectLog"> <view class="collectLog">
<view class="list"> <scroll-view scroll-y class="list" @scrolltolower="loadMore">
<view class="list-item" v-for="item in list" @click="toDetail(item)"> <view class="list-item" v-for="item in list" @click="toDetail(item)">
<view class="list-title f_b"> <view class="list-title f_b">
<view class="f_s"> <view class="f_s">
...@@ -28,12 +28,18 @@ ...@@ -28,12 +28,18 @@
</view> </view>
</view> </view>
<u-loadmore <u-loadmore
v-if="list.length"
:status="status" :status="status"
:loading-text="loadingText" :loading-text="loadingText"
:loadmore-text="loadmoreText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" :nomore-text="nomoreText"
/> />
</view> <u-loadmore
v-else
status="nomore"
nomore-text="没有收藏岗位"
/>
</scroll-view>
</view> </view>
</template> </template>
...@@ -41,29 +47,39 @@ ...@@ -41,29 +47,39 @@
export default { export default {
data() { data() {
return { return {
pageNum: 1,
pageSize: 10,
list: [], list: [],
status: 'nomore', status: 'nomore',
loadingText: '努力加载中', loadingText: '努力加载中',
loadmoreText: '轻轻上拉', loadmoreText: '轻轻上拉',
nomoreText: '实在没有了', nomoreText: '没有了',
tabList: [
{name: '推荐'}
]
} }
}, },
onLoad() { onLoad() {
this.load() this.load()
}, },
onPullDownRefresh() { onPullDownRefresh() {
this.pageNum = 1
this.load('sx') this.load('sx')
}, },
onShow() { onShow() {
}, },
methods: { methods: {
loadMore() {
if (this.status == 'loadmore') {
this.pageNum = this.pageNum + 1
this.load()
}
},
load(type) { load(type) {
this.$http.get('/collect/l', {}).then(res => { this.$http.get('/collect/l', {
this.list = res.data.list pageNum: this.pageNum,
pageSize: this.pageSize,
}).then(res => {
this.list = this.pageNum == 1 ? res.data.list : [...this.list,...res.data.list],
this.status = this.list.length >= res.data.total ? 'nomore' : 'loadmore'
if (type == 'sx') { if (type == 'sx') {
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
setTimeout(() => { setTimeout(() => {
...@@ -77,7 +93,7 @@ ...@@ -77,7 +93,7 @@
}, },
toDetail(el = {}) { toDetail(el = {}) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/home/jobDetails?id=${el.id}` url: `/pages/home/jobDetails?id=${el.id}&source=jyzp`
}) })
} }
} }
...@@ -86,7 +102,7 @@ ...@@ -86,7 +102,7 @@
<style lang="scss"> <style lang="scss">
.collectLog{ .collectLog{
height: 100%; height: 100vh;
overflow: hidden; overflow: hidden;
.list{ .list{
height: calc(100%); height: calc(100%);
......
<template> <template>
<view class="deliverLog"> <view class="deliverLog">
<view class="list"> <scroll-view scroll-y class="list" @scrolltolower="loadMore">
<view class="list-item" v-for="item in list" @click="toDetail(item)"> <view class="list-item" v-for="item in list" @click="toDetail(item)">
<view class="list-title f_b"> <view class="list-title f_b">
<view class="f_s"> <view class="f_s">
...@@ -27,13 +27,19 @@ ...@@ -27,13 +27,19 @@
<view>{{item.org.city != '市辖区' ? item.org.city : item.org.province}}</view> <view>{{item.org.city != '市辖区' ? item.org.city : item.org.province}}</view>
</view> </view>
</view> </view>
<u-loadmore <u-loadmore
v-if="list.length"
:status="status" :status="status"
:loading-text="loadingText" :loading-text="loadingText"
:loadmore-text="loadmoreText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" :nomore-text="nomoreText"
/> />
</view> <u-loadmore
v-else
status="nomore"
nomore-text="没有投递记录"
/>
</scroll-view>
</view> </view>
</template> </template>
...@@ -41,29 +47,40 @@ ...@@ -41,29 +47,40 @@
export default { export default {
data() { data() {
return { return {
pageNum: 1,
pageSize: 10,
list: [], list: [],
status: 'nomore', status: 'nomore',
loadingText: '努力加载中', loadingText: '努力加载中',
loadmoreText: '轻轻上拉', loadmoreText: '轻轻上拉',
nomoreText: '实在没有了', nomoreText: '没有了',
tabList: [
{name: '推荐'}
]
} }
}, },
onLoad() { onLoad() {
this.load() this.load()
}, },
onPullDownRefresh() { onPullDownRefresh() {
this.pageNum = 1
this.load('sx') this.load('sx')
}, },
onShow() { onShow() {
}, },
methods: { methods: {
loadMore() {
if (this.status == 'loadmore') {
this.pageNum = this.pageNum + 1
this.load()
}
},
load(type) { load(type) {
this.$http.get('/signRecord/l', {}).then(res => { this.status = 'loading'
this.list = res.data.list this.$http.get('/signRecord/l', {
pageNum: this.pageNum,
pageSize: this.pageSize,
}).then(res => {
this.list = this.pageNum == 1 ? res.data.list : [...this.list,...res.data.list],
this.status = this.list.length >= res.data.total ? 'nomore' : 'loadmore'
if (type == 'sx') { if (type == 'sx') {
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
setTimeout(() => { setTimeout(() => {
...@@ -77,7 +94,7 @@ ...@@ -77,7 +94,7 @@
}, },
toDetail(el = {}) { toDetail(el = {}) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/home/jobDetails?id=${el.id}` url: `/pages/home/jobDetails?id=${el.id}&source=jyzp`
}) })
} }
} }
...@@ -86,7 +103,7 @@ ...@@ -86,7 +103,7 @@
<style lang="scss"> <style lang="scss">
.deliverLog{ .deliverLog{
height: 100%; height: 100vh;
overflow: hidden; overflow: hidden;
.list{ .list{
height: calc(100%); height: calc(100%);
......
...@@ -3,18 +3,61 @@ ...@@ -3,18 +3,61 @@
<u-cell title="我的简历" isLink @click="toResume"/> <u-cell title="我的简历" isLink @click="toResume"/>
<u-cell title="投递记录" isLink @click="toDeliverLog"/> <u-cell title="投递记录" isLink @click="toDeliverLog"/>
<u-cell title="收藏记录" isLink @click="toCollectLog"/> <u-cell title="收藏记录" isLink @click="toCollectLog"/>
<u-cell title="人力资源许可证&营业执照" isLink @click="toLicense"/>
<u-cell title="清空缓存" isLink @click="clean"/> <u-cell title="清空缓存" isLink @click="clean"/>
<LoginOpen v-if="loginShow" @close="loginShow = false"/> <resume-popup
:visible="visible"
appId="2021005184646262"
outBizNo="outBizNo"
templateId="DEFAULT"
onClose="onClose"
onSuccess="onSuccess"
onFailure="onFailure"
/>
</div> </div>
</template> </template>
<script> <script>
import { getResume } from '../../util/loginSetInfo.js'
export default { export default {
data() { data() {
return { return {
loginShow: false outBizNo: '',
visible: false,
}; };
}, },
onLoad() {
this.$scope.onClose = this.onClose;
this.$scope.onSuccess = this.onSuccess;
this.$scope.onFailure = this.onFailure;
},
methods: { methods: {
generateOutBizNo() {
const timestamp = new Date().getTime();
const random = Math.floor(Math.random() * 10000).toString().padStart(4, '0');
return `job_auth_${timestamp}_${random}`;
},
handleTap() {
this.outBizNo = this.generateOutBizNo()
this.visible = true;
},
onFailure({code, message}) {
console.log(code, message);
this.visible = true
},
onClose() {
this.visible = false;
},
onSuccess(applyId) {
this.visible = false;
getResume(applyId,()=> {
uni.showToast({
title: '登录成功',
icon: 'none'
})
this.toResume()
})
},
toResume() { toResume() {
const token = uni.getStorageSync('jy-recruit-token'); const token = uni.getStorageSync('jy-recruit-token');
if (token) { if (token) {
...@@ -22,9 +65,14 @@ export default { ...@@ -22,9 +65,14 @@ export default {
url: '/pages/user/resume/index' url: '/pages/user/resume/index'
}) })
} else { } else {
this.loginShow = true this.handleTap()
} }
}, },
toLicense() {
uni.navigateTo({
url: '/pages/user/license'
})
},
toDeliverLog() { toDeliverLog() {
const token = uni.getStorageSync('jy-recruit-token'); const token = uni.getStorageSync('jy-recruit-token');
if (token) { if (token) {
...@@ -32,7 +80,7 @@ export default { ...@@ -32,7 +80,7 @@ export default {
url: '/pages/user/deliverLog' url: '/pages/user/deliverLog'
}) })
} else { } else {
this.loginShow = true this.handleTap()
} }
}, },
toCollectLog() { toCollectLog() {
...@@ -42,11 +90,11 @@ export default { ...@@ -42,11 +90,11 @@ export default {
url: '/pages/user/collectLog' url: '/pages/user/collectLog'
}) })
} else { } else {
this.loginShow = true this.handleTap()
} }
}, },
clean() { clean() {
uni.clearStorageSync() uni.setStorageSync('jy-recruit-token','')
uni.showToast({ uni.showToast({
title: '清理成功', title: '清理成功',
icon: 'none' icon: 'none'
......
<template>
<view>
<view style="text-align: center;padding: 30rpx;">人力资源许可证</view>
<img src="/static/images/rlzy.jpeg" style="width: 100%;"/>
<view style="text-align: center;padding: 30rpx;">营业执照</view>
<img src="/static/images/yyzz.jpeg" style="width: 100%;"/>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
}
}
</script>
<style>
</style>
...@@ -10,26 +10,38 @@ ...@@ -10,26 +10,38 @@
<u-form-item label="期望职位" prop="workType"> <u-form-item label="期望职位" prop="workType">
<u-cell <u-cell
size="large" size="large"
:title="userInfo.industryName || '选择期望职位'"
isLink isLink
@click="showDialog2 = true" @click="showDialog2 = true"
/> >
<view slot="title">
<view v-if="userInfo.industryName">{{userInfo.industryName}}</view>
<view class="cell-placeholder" v-else>选择期望职位</view>
</view>
</u-cell>
</u-form-item> </u-form-item>
<u-form-item label="工作城市" prop="city"> <u-form-item label="工作城市" prop="city">
<u-cell <u-cell
size="large" size="large"
:title="userInfo.region && `${userInfo.province }-${userInfo.city}-${userInfo.region}` || '选择工作城市'"
isLink isLink
@click="showDialog = true" @click="showDialog = true"
/> >
<view slot="title">
<view v-if="userInfo.city">{{userInfo.province }}-{{userInfo.city}}</view>
<view class="cell-placeholder" v-else>选择工作城市</view>
</view>
</u-cell>
</u-form-item> </u-form-item>
<u-form-item label="薪资要求" prop="salaryMin"> <u-form-item label="薪资要求" prop="salaryMin">
<u-cell <u-cell
size="large" size="large"
:title="userInfo.salaryMin && userInfo.salaryMax ? `${userInfo.salaryMin}-${userInfo.salaryMax}` : '选择薪资范围'"
isLink isLink
@click="setSalary" @click="setSalary"
/> >
<view slot="title">
<view v-if="userInfo.salaryMin && userInfo.salaryMax">{{userInfo.salaryMin}}-{{userInfo.salaryMax}}</view>
<view class="cell-placeholder" v-else>选择薪资范围</view>
</view>
</u-cell>
<u-picker <u-picker
:show="salaryShow" :show="salaryShow"
:columns="salaryList" :columns="salaryList"
...@@ -41,10 +53,14 @@ ...@@ -41,10 +53,14 @@
<u-form-item label="工作性质" prop="workType"> <u-form-item label="工作性质" prop="workType">
<u-cell <u-cell
size="large" size="large"
:title="workTypeList[0] && workTypeList.join('/') || '如:全职'"
isLink isLink
@click="workTypeShow = true" @click="workTypeShow = true"
/> >
<view slot="title">
<view v-if="workTypeList[0]">{{workTypeList.join('/')}}</view>
<view class="cell-placeholder" v-else>如:全职</view>
</view>
</u-cell>
<u-popup :show="workTypeShow" :round="10" mode="bottom"> <u-popup :show="workTypeShow" :round="10" mode="bottom">
<view class="work_type"> <view class="work_type">
<view class="f_b"> <view class="f_b">
...@@ -64,7 +80,7 @@ ...@@ -64,7 +80,7 @@
</u-form> </u-form>
<view class="br"></view> <view class="br"></view>
<view class="footer"> <view class="footer">
<u-button @click="submit" type="primary">保存</u-button> <u-button @click="submit" type="primary" shape="circle">保存</u-button>
</view> </view>
<well-tree-select <well-tree-select
@clickThird="clickThird" @clickThird="clickThird"
...@@ -155,6 +171,9 @@ ...@@ -155,6 +171,9 @@
}, },
clickSub(item) { clickSub(item) {
this.v2 = item.label this.v2 = item.label
this.userInfo.province = this.v1
this.userInfo.city = this.v2
this.showDialog = false
}, },
clickThird(item) { clickThird(item) {
this.v3 = item.label this.v3 = item.label
......
...@@ -10,10 +10,14 @@ ...@@ -10,10 +10,14 @@
<u-form-item label="最高学历" prop="qualification"> <u-form-item label="最高学历" prop="qualification">
<u-cell <u-cell
size="large" size="large"
:title="userInfo.qualification || '请选择'"
isLink isLink
@click="showDialog = true" @click="showDialog = true"
/> >
<view slot="title">
<view v-if="userInfo.qualification">{{userInfo.qualification}}</view>
<view class="cell-placeholder" v-else>请选择</view>
</view>
</u-cell>
<u-picker <u-picker
keyName="name" keyName="name"
:show="showDialog" :show="showDialog"
...@@ -35,7 +39,8 @@ ...@@ -35,7 +39,8 @@
style="width: 35vw;padding: 10rpx 0;" style="width: 35vw;padding: 10rpx 0;"
@click="show=true" @click="show=true"
> >
<view>{{userInfo.startTime || '入学时间'}}</view> <view v-if="userInfo.startTime" class="form_val">{{userInfo.startTime}}</view>
<view v-else class="cell-placeholder form_val">入学时间</view>
<u-icon size="18" name="arrow-right"/> <u-icon size="18" name="arrow-right"/>
</view> </view>
- -
...@@ -45,7 +50,8 @@ ...@@ -45,7 +50,8 @@
style="width: 35vw;padding: 10rpx 0;" style="width: 35vw;padding: 10rpx 0;"
@click="show2=true" @click="show2=true"
> >
<view>{{userInfo.endTime || '毕业时间'}}</view> <view v-if="userInfo.endTime" class="form_val">{{userInfo.endTime}}</view>
<view v-else class="cell-placeholder form_val">毕业时间</view>
<u-icon size="18" name="arrow-right"/> <u-icon size="18" name="arrow-right"/>
</view> </view>
</view> </view>
...@@ -57,7 +63,7 @@ ...@@ -57,7 +63,7 @@
mode="year-month" mode="year-month"
:minDate="2649600000" :minDate="2649600000"
:maxDate="1786778555000" :maxDate="1786778555000"
@close="show=false" @cancel="show=false"
@confirm="setStartTime" @confirm="setStartTime"
></u-datetime-picker> ></u-datetime-picker>
<!-- 离职时间 --> <!-- 离职时间 -->
...@@ -67,14 +73,14 @@ ...@@ -67,14 +73,14 @@
mode="year-month" mode="year-month"
:minDate="2649600000" :minDate="2649600000"
:maxDate="1786778555000" :maxDate="1786778555000"
@close="show2=false" @cancel="show2=false"
@confirm="setEndTime" @confirm="setEndTime"
></u-datetime-picker> ></u-datetime-picker>
</u-form-item> </u-form-item>
</u-form> </u-form>
<view class="br"></view> <view class="br"></view>
<view class="footer"> <view class="footer">
<u-button @click="submit" type="primary">保存</u-button> <u-button @click="submit" type="primary" shape="circle">保存</u-button>
</view> </view>
</view> </view>
...@@ -124,6 +130,14 @@ ...@@ -124,6 +130,14 @@
const month = String(date.getMonth() + 1).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0');
return `${year}-${month}`; return `${year}-${month}`;
}, },
checkWorkDate(startDate, endDate) {
const startValue = parseInt(startDate.replace("-", ""), 10);
const endValue = parseInt(endDate.replace("-", ""), 10);
if (startValue > endValue) {
return false;
}
return true
},
submit(){ submit(){
if (!this.userInfo.qualification) { if (!this.userInfo.qualification) {
return uni.showToast({ return uni.showToast({
...@@ -131,6 +145,18 @@ ...@@ -131,6 +145,18 @@
icon: 'none' icon: 'none'
}) })
} }
if (!this.userInfo.school) {
return uni.showToast({
title: '请输入学校名称',
icon: 'none'
})
}
if (this.userInfo.startTime && this.userInfo.endTime && !this.checkWorkDate(this.userInfo.startTime,this.userInfo.endTime)) {
return uni.showToast({
title: '入学时间不能早于毕业时间',
icon: 'none'
})
}
const url = this.userInfo.id ? '/personEducational/u' : '/personEducational/c' const url = this.userInfo.id ? '/personEducational/u' : '/personEducational/c'
this.$http.post(url, this.userInfo).then(res => { this.$http.post(url, this.userInfo).then(res => {
uni.showToast({ uni.showToast({
......
...@@ -21,14 +21,12 @@ ...@@ -21,14 +21,12 @@
<view class="module"> <view class="module">
<view class="f_b"> <view class="f_b">
<view class="name">求职意向</view> <view class="name">求职意向</view>
<view class="f_s" @click="toIntention"> <u-icon
<u-icon name="setting"
name="setting" size="22"
size="22" color="#3686DC"
color="#3686DC" @click="toIntention"
/> />
<view style="margin-left: 16rpx;color: #3686DC;">管理</view>
</view>
</view> </view>
<view class="f_s" v-for="item in intentionList"> <view class="f_s" v-for="item in intentionList">
<u-icon name="file-text-fill" size="20"/> <u-icon name="file-text-fill" size="20"/>
...@@ -40,14 +38,12 @@ ...@@ -40,14 +38,12 @@
<view class="module"> <view class="module">
<view class="f_b"> <view class="f_b">
<view class="name">工作/实习经历</view> <view class="name">工作/实习经历</view>
<view class="f_s" @click="toWork('')"> <u-icon
<u-icon name="plus"
name="plus" size="22"
size="22" color="#3686DC"
color="#3686DC" @click="toWork('')"
/> />
<view style="margin-left: 16rpx;color: #3686DC;">添加</view>
</view>
</view> </view>
</view> </view>
<view class="module" v-for="item in workExperienceList"> <view class="module" v-for="item in workExperienceList">
...@@ -67,28 +63,26 @@ ...@@ -67,28 +63,26 @@
<view class="module"> <view class="module">
<view class="f_b"> <view class="f_b">
<view class="name">教育经历</view> <view class="name">教育经历</view>
<view class="f_s" @click="toEducation('')"> <u-icon
<u-icon name="plus"
name="plus" size="22"
size="22" color="#3686DC"
color="#3686DC" @click="toEducation('')"
/> />
<view style="margin-left: 16rpx;color: #3686DC;">添加</view>
</view>
</view> </view>
</view> </view>
<view class="module" v-for="item in personEducationalList"> <view class="module" v-for="item in personEducationalList">
<view class="f_b"> <view class="f_b">
<view class="f_s"> <view class="f_s">
<u-icon name="bookmark-fill" size="24"/> <u-icon name="file-text-fill" size="24"/>
<view class="name" style="margin-left: 16rpx;"> <view class="name" style="margin-left: 16rpx;">
{{item.school}} {{item.school}}
</view> </view>
</view> </view>
<u-icon name="edit-pen" size="22" color="#3686DC" @click="toEducation(item.id)"/> <u-icon name="edit-pen" size="22" color="#3686DC" @click="toEducation(item.id)"/>
</view> </view>
<view class="time">{{item.startTime}} - {{item.endTime}}</view> <view class="time" v-if="item.startTime && item.endTime">{{item.startTime}} - {{item.endTime}}</view>
<view style="color: #666;">{{item.qualification}} | {{item.major}}</view> <view style="color: #666;">{{item.qualification}} {{item.major ? '| ' + item.major : ''}}</view>
</view> </view>
<view class="module"> <view class="module">
<view class="f_b"> <view class="f_b">
...@@ -118,6 +112,15 @@ ...@@ -118,6 +112,15 @@
}, },
onShow() { onShow() {
this.$http.get('/person/person/details', {}).then(res => { this.$http.get('/person/person/details', {}).then(res => {
if (!res.data) {
uni.showToast({
title:'登录信息有误,请重新登录',
icon: 'none'
})
uni.clearStorageSync()
uni.navigateBack()
return
}
this.userInfo = res.data this.userInfo = res.data
this.$http.get('/objective/l', {personId: res.data.id}).then(res => { this.$http.get('/objective/l', {personId: res.data.id}).then(res => {
this.intentionList = res.data.list this.intentionList = res.data.list
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
</view> </view>
</view> </view>
<view class="footer"> <view class="footer">
<u-button @click="add" type="primary">新增</u-button> <u-button @click="add" type="primary" shape="circle">新增</u-button>
</view> </view>
</view> </view>
</template> </template>
......
...@@ -10,25 +10,39 @@ ...@@ -10,25 +10,39 @@
<u-form-item label="姓名" prop="name" borderBottom> <u-form-item label="姓名" prop="name" borderBottom>
<u-input v-model="userInfo.name" border="none" /> <u-input v-model="userInfo.name" border="none" />
</u-form-item> </u-form-item>
<u-form-item label="性别" prop="sex" borderBottom> <u-form-item label="性别" prop="sex">
<u-radio-group v-model="userInfo.sex"> <u-cell
<u-radio label="男" :name="true" :customStyle="{marginRight: '30px'}"/> size="large"
<u-radio label="女" :name="false"/> isLink
</u-radio-group> @click="show = true"
>
<view slot="title">
<view>{{userInfo.sex ? '男' : '女'}}</view>
</view>
</u-cell>
<u-action-sheet
:actions="[{name: '男'},{name: '女'}]"
:show="show"
@select="setSex"
:safeAreaInsetBottom="true"
cancelText="取消"
round="20"
@close="show=false"
/>
</u-form-item> </u-form-item>
<u-form-item label="年龄" prop="age" borderBottom> <u-form-item label="年龄" prop="age" borderBottom>
<u-input v-model="userInfo.age" border="none" /> <u-input v-model="userInfo.age" border="none" disabled placeholder="输入身份证识别" />
</u-form-item> </u-form-item>
<u-form-item label="手机号码" prop="phoneNumber" borderBottom> <u-form-item label="手机号码" prop="phoneNumber" borderBottom>
<u-input v-model="userInfo.phoneNumber" border="none" /> <u-input v-model="userInfo.phoneNumber" border="none" />
</u-form-item> </u-form-item>
<u-form-item label="身份证号" prop="idNo" borderBottom> <u-form-item label="身份证号" prop="idNo" borderBottom>
<u-input v-model="userInfo.idNo" border="none" /> <u-input v-model="userInfo.idNo" border="none" @blur="getAgeFromIdCard" />
</u-form-item> </u-form-item>
</u-form> </u-form>
<view class="br"></view> <view class="br"></view>
<view class="footer"> <view class="footer">
<u-button @click="submit" type="primary">保存</u-button> <u-button @click="submit" type="primary" shape="circle">保存</u-button>
</view> </view>
</view> </view>
...@@ -38,7 +52,8 @@ ...@@ -38,7 +52,8 @@
export default { export default {
data() { data() {
return { return {
userInfo:{} userInfo:{},
show: false,
} }
}, },
onLoad() { onLoad() {
...@@ -47,6 +62,51 @@ ...@@ -47,6 +62,51 @@
}) })
}, },
methods: { methods: {
setSex(e){
this.userInfo.sex = e.name == '男' ? true : false
this.show = false
},
getAgeFromIdCard(idCard) {
// 验证身份证号格式(简单验证)
if (!/^\d{17}[\dXx]$/.test(idCard)) {
return uni.showToast({
title: '请输入正确的身份证号',
icon: 'none'
})
}
// 提取出生日期部分
let birthStr = idCard.substring(6, 14);
// 解析为年、月、日
let birthYear = parseInt(birthStr.substring(0, 4));
let birthMonth = parseInt(birthStr.substring(4, 6));
let birthDay = parseInt(birthStr.substring(6, 8));
// 获取当前日期
let today = new Date();
let currentYear = today.getFullYear();
let currentMonth = today.getMonth() + 1; // 月份从0开始,需加1
let currentDay = today.getDate();
// 计算年龄
let age = currentYear - birthYear;
// 若当前月份小于出生月份,年龄减1
if (currentMonth < birthMonth) {
age--;
}
// 若月份相同但日期小于出生日,年龄减1
else if (currentMonth === birthMonth && currentDay < birthDay) {
age--;
}
if (age > 0) {
this.userInfo.age = age
} else {
uni.showToast({
title: '身份证信息错误',
icon: 'none'
})
}
},
submit(){ submit(){
if (!this.userInfo.name) { if (!this.userInfo.name) {
return uni.showToast({ return uni.showToast({
...@@ -62,7 +122,7 @@ ...@@ -62,7 +122,7 @@
} }
if (!this.userInfo.age) { if (!this.userInfo.age) {
return uni.showToast({ return uni.showToast({
title: '请输入年龄', title: '请输入正确的身份证号',
icon: 'none' icon: 'none'
}) })
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
maxlength="500" maxlength="500"
></u--textarea> ></u--textarea>
<view class="footer"> <view class="footer">
<u-button @click="submit" type="primary">提交</u-button> <u-button @click="submit" type="primary" shape="circle">保存</u-button>
</view> </view>
</view> </view>
</template> </template>
......
...@@ -20,7 +20,8 @@ ...@@ -20,7 +20,8 @@
style="width: 35vw;padding: 10rpx 0;" style="width: 35vw;padding: 10rpx 0;"
@click="show=true" @click="show=true"
> >
<view>{{userInfo.startTime || '入职时间'}}</view> <view v-if="userInfo.startTime" class="form_val">{{userInfo.startTime}}</view>
<view v-else class="cell-placeholder form_val">入职时间</view>
<u-icon size="18" name="arrow-right"/> <u-icon size="18" name="arrow-right"/>
</view> </view>
- -
...@@ -30,7 +31,8 @@ ...@@ -30,7 +31,8 @@
style="width: 35vw;padding: 10rpx 0;" style="width: 35vw;padding: 10rpx 0;"
@click="show2=true" @click="show2=true"
> >
<view>{{userInfo.endTime || '离职时间'}}</view> <view v-if="userInfo.endTime" class="form_val">{{userInfo.endTime}}</view>
<view v-else class="cell-placeholder form_val">离职时间</view>
<u-icon size="18" name="arrow-right"/> <u-icon size="18" name="arrow-right"/>
</view> </view>
</view> </view>
...@@ -42,7 +44,7 @@ ...@@ -42,7 +44,7 @@
mode="year-month" mode="year-month"
:minDate="2649600000" :minDate="2649600000"
:maxDate="1786778555000" :maxDate="1786778555000"
@close="show=false" @cancel="show=false"
@confirm="setStartTime" @confirm="setStartTime"
></u-datetime-picker> ></u-datetime-picker>
<!-- 离职时间 --> <!-- 离职时间 -->
...@@ -52,12 +54,21 @@ ...@@ -52,12 +54,21 @@
mode="year-month" mode="year-month"
:minDate="2649600000" :minDate="2649600000"
:maxDate="1786778555000" :maxDate="1786778555000"
@close="show2=false" @cancel="show2=false"
@confirm="setEndTime" @confirm="setEndTime"
></u-datetime-picker> ></u-datetime-picker>
</u-form-item> </u-form-item>
<u-form-item label="所属行业" prop="industryName" borderBottom> <u-form-item label="所属行业" prop="industryName">
<u-input v-model="userInfo.industryName" border="none" placeholder="请输入" /> <u-cell
size="large"
isLink
@click="showDialog = true"
>
<view slot="title">
<view v-if="userInfo.industryName">{{userInfo.industryName}}</view>
<view class="cell-placeholder" v-else>选择所属行业</view>
</view>
</u-cell>
</u-form-item> </u-form-item>
<u-form-item label="月薪" prop="money" borderBottom> <u-form-item label="月薪" prop="money" borderBottom>
<u-input v-model="userInfo.money" border="none" placeholder="元/月" /> <u-input v-model="userInfo.money" border="none" placeholder="元/月" />
...@@ -69,21 +80,39 @@ ...@@ -69,21 +80,39 @@
border="bottom" border="bottom"
height="80" height="80"
maxlength="500" maxlength="500"
@blur="descrBlur"
></u--textarea> ></u--textarea>
</u-form-item> </u-form-item>
</u-form> </u-form>
<view class="br"></view> <view class="br"></view>
<view class="footer"> <view class="footer">
<u-button @click="submit" type="primary">保存</u-button> <u-button @click="submit" type="primary" shape="circle">保存</u-button>
</view> </view>
<well-tree-select3
@clickThird="clickThird"
@clickSub="clickSub"
@clickNav="clickNav"
:showDialog.sync="showDialog"
:data="industryList"
:max-selected="1"
:selected-values="selectedValues"
@doConfirm="showDialog = false"
/>
</view> </view>
</template> </template>
<script> <script>
import wellTreeSelect3 from '../../../components/well-treeSelect/well-treeSelect3.vue';
export default { export default {
components: {
wellTreeSelect3
},
data() { data() {
return { return {
showDialog: false,
v1: '',
v2: '',
industryList: [],
userInfo:{}, userInfo:{},
show: false, show: false,
startTime: new Date().getTime(), startTime: new Date().getTime(),
...@@ -97,9 +126,29 @@ ...@@ -97,9 +126,29 @@
this.userInfo = res.data this.userInfo = res.data
}) })
} }
this.$http.get('/public/industry/l/all', {}).then(res => {
this.industryList = res.data
})
}, },
methods: { methods: {
clickNav(item) {
this.v1 = item.name
},
clickSub(item) {
this.v2 = item.name
this.userInfo.industryName = `${this.v2}`
this.showDialog = false
},
clickThird(item) {
this.v3 = item.name
// this.userInfo.industryName = `${this.v1}-${this.v2}-${this.v3}`
this.userInfo.industryName = `${this.v3}`
// industryId
this.showDialog = false
},
descrBlur(e) {
console.log(e)
},
setStartTime(e) { setStartTime(e) {
this.userInfo.startTime = this.formatTimestampToYearMonth(e.value) this.userInfo.startTime = this.formatTimestampToYearMonth(e.value)
this.show = false this.show = false
...@@ -114,6 +163,14 @@ ...@@ -114,6 +163,14 @@
const month = String(date.getMonth() + 1).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0');
return `${year}-${month}`; return `${year}-${month}`;
}, },
checkWorkDate(startDate, endDate) {
const startValue = parseInt(startDate.replace("-", ""), 10);
const endValue = parseInt(endDate.replace("-", ""), 10);
if (startValue > endValue) {
return false;
}
return true
},
submit(){ submit(){
if (!this.userInfo.orgName) { if (!this.userInfo.orgName) {
return uni.showToast({ return uni.showToast({
...@@ -139,6 +196,12 @@ ...@@ -139,6 +196,12 @@
icon: 'none' icon: 'none'
}) })
} }
if (!this.checkWorkDate(this.userInfo.startTime,this.userInfo.endTime)) {
return uni.showToast({
title: '入职时间不能早于离职时间',
icon: 'none'
})
}
if (!this.userInfo.industryName) { if (!this.userInfo.industryName) {
return uni.showToast({ return uni.showToast({
title: '请输入所属行业', title: '请输入所属行业',
......
No preview for this file type
...@@ -23,4 +23,23 @@ page > view{ ...@@ -23,4 +23,23 @@ page > view{
} }
.u-cell{ .u-cell{
background-color: #fff; background-color: #fff;
}
.cell-placeholder{
color: #C2C6CC;
}
.u-input{
margin-top: 5px;
}
.u-form-item__body__left__content__label{
color: #666 !important;
margin-top: 14rpx;
}
.u-form-item .u-cell__body{
padding: 10px 0 !important;
}
.u-form-item{
input,textarea,.u-cell__title,.form_val{
font-size: 30rpx !important;
font-weight: 500;
}
} }
\ No newline at end of file
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
"pages/home/companyDetails", "pages/home/companyDetails",
"pages/user/resume/work", "pages/user/resume/work",
"pages/user/resume/education", "pages/user/resume/education",
"pages/user/resume/selfEvaluation" "pages/user/resume/selfEvaluation",
"pages/user/license"
], ],
"subPackages": [], "subPackages": [],
"window": { "window": {
...@@ -39,9 +40,10 @@ ...@@ -39,9 +40,10 @@
} }
] ]
}, },
"permission": { "plugins": {
"zhima.auth.workcert.verify": { "resume": {
"desc": "用于验证你的芝麻工作证信息" "version": "*",
"provider": "2021005166611515"
} }
}, },
"usingComponents": { "usingComponents": {
......
.u-line-1{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:1;-webkit-box-orient:vertical!important}.u-line-2{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:2;-webkit-box-orient:vertical!important}.u-line-3{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:3;-webkit-box-orient:vertical!important}.u-line-4{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:4;-webkit-box-orient:vertical!important}.u-line-5{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:5;-webkit-box-orient:vertical!important}.u-border{border-width:.5px!important;border-color:#dadbde!important;border-style:solid}.u-border-top{border-top-width:.5px!important;border-color:#dadbde!important;border-top-style:solid}.u-border-left{border-left-width:.5px!important;border-color:#dadbde!important;border-left-style:solid}.u-border-right{border-right-width:.5px!important;border-color:#dadbde!important;border-right-style:solid}.u-border-bottom{border-bottom-width:.5px!important;border-color:#dadbde!important;border-bottom-style:solid}.u-border-top-bottom{border-top-width:.5px!important;border-bottom-width:.5px!important;border-color:#dadbde!important;border-top-style:solid;border-bottom-style:solid}.u-reset-button{padding:0;background-color:initial;font-size:inherit;line-height:inherit;color:inherit}.u-reset-button::after{border:none}.u-hover-class{opacity:.7}.u-primary-light{color:#ecf5ff}.u-warning-light{color:#fdf6ec}.u-success-light{color:#f5fff0}.u-error-light{color:#fef0f0}.u-info-light{color:#f4f4f5}.u-primary-light-bg{background-color:#ecf5ff}.u-warning-light-bg{background-color:#fdf6ec}.u-success-light-bg{background-color:#f5fff0}.u-error-light-bg{background-color:#fef0f0}.u-info-light-bg{background-color:#f4f4f5}.u-primary-dark{color:#398ade}.u-warning-dark{color:#f1a532}.u-success-dark{color:#53c21d}.u-error-dark{color:#e45656}.u-info-dark{color:#767a82}.u-primary-dark-bg{background-color:#398ade}.u-warning-dark-bg{background-color:#f1a532}.u-success-dark-bg{background-color:#53c21d}.u-error-dark-bg{background-color:#e45656}.u-info-dark-bg{background-color:#767a82}.u-primary-disabled{color:#9acafc}.u-warning-disabled{color:#f9d39b}.u-success-disabled{color:#a9e08f}.u-error-disabled{color:#f7b2b2}.u-info-disabled{color:#c4c6c9}.u-primary{color:#3c9cff}.u-warning{color:#f9ae3d}.u-success{color:#5ac725}.u-error{color:#f56c6c}.u-info{color:#909399}.u-primary-bg{background-color:#3c9cff}.u-warning-bg{background-color:#f9ae3d}.u-success-bg{background-color:#5ac725}.u-error-bg{background-color:#f56c6c}.u-info-bg{background-color:#909399}.u-main-color{color:#303133}.u-content-color{color:#606266}.u-tips-color{color:#909193}.u-light-color{color:#c0c4cc}.u-safe-area-inset-top{padding-top:0;padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top)}.u-safe-area-inset-right{padding-right:0;padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}.u-safe-area-inset-bottom{padding-bottom:0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.u-safe-area-inset-left{padding-left:0;padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left)}::-webkit-scrollbar{display:none;width:0!important;height:0!important;-webkit-appearance:none;background:transparent}page > view{height:100vh}.f_s{display:flex;justify-content:flex-start;align-items:center}.f_b{display:flex;justify-content:space-between;align-items:center}.tag{padding:8rpx 16rpx;background-color:#f6f6f6;color:#717171;border-radius:6rpx;font-size:24rpx}.tag + .tag{margin-left:10px}.u-cell{background-color:#fff}page::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%{background-image:url(https://cdn2.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn2.dcloud.net.cn/img/shadow-grey.png)}}@keyframes shadow-preload{0%{background-image:url(https://cdn2.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn2.dcloud.net.cn/img/shadow-grey.png)}} .u-line-1{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:1;-webkit-box-orient:vertical!important}.u-line-2{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:2;-webkit-box-orient:vertical!important}.u-line-3{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:3;-webkit-box-orient:vertical!important}.u-line-4{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:4;-webkit-box-orient:vertical!important}.u-line-5{display:-webkit-box!important;overflow:hidden;text-overflow:ellipsis;word-break:break-all;-webkit-line-clamp:5;-webkit-box-orient:vertical!important}.u-border{border-width:.5px!important;border-color:#dadbde!important;border-style:solid}.u-border-top{border-top-width:.5px!important;border-color:#dadbde!important;border-top-style:solid}.u-border-left{border-left-width:.5px!important;border-color:#dadbde!important;border-left-style:solid}.u-border-right{border-right-width:.5px!important;border-color:#dadbde!important;border-right-style:solid}.u-border-bottom{border-bottom-width:.5px!important;border-color:#dadbde!important;border-bottom-style:solid}.u-border-top-bottom{border-top-width:.5px!important;border-bottom-width:.5px!important;border-color:#dadbde!important;border-top-style:solid;border-bottom-style:solid}.u-reset-button{padding:0;background-color:initial;font-size:inherit;line-height:inherit;color:inherit}.u-reset-button::after{border:none}.u-hover-class{opacity:.7}.u-primary-light{color:#ecf5ff}.u-warning-light{color:#fdf6ec}.u-success-light{color:#f5fff0}.u-error-light{color:#fef0f0}.u-info-light{color:#f4f4f5}.u-primary-light-bg{background-color:#ecf5ff}.u-warning-light-bg{background-color:#fdf6ec}.u-success-light-bg{background-color:#f5fff0}.u-error-light-bg{background-color:#fef0f0}.u-info-light-bg{background-color:#f4f4f5}.u-primary-dark{color:#398ade}.u-warning-dark{color:#f1a532}.u-success-dark{color:#53c21d}.u-error-dark{color:#e45656}.u-info-dark{color:#767a82}.u-primary-dark-bg{background-color:#398ade}.u-warning-dark-bg{background-color:#f1a532}.u-success-dark-bg{background-color:#53c21d}.u-error-dark-bg{background-color:#e45656}.u-info-dark-bg{background-color:#767a82}.u-primary-disabled{color:#9acafc}.u-warning-disabled{color:#f9d39b}.u-success-disabled{color:#a9e08f}.u-error-disabled{color:#f7b2b2}.u-info-disabled{color:#c4c6c9}.u-primary{color:#3c9cff}.u-warning{color:#f9ae3d}.u-success{color:#5ac725}.u-error{color:#f56c6c}.u-info{color:#909399}.u-primary-bg{background-color:#3c9cff}.u-warning-bg{background-color:#f9ae3d}.u-success-bg{background-color:#5ac725}.u-error-bg{background-color:#f56c6c}.u-info-bg{background-color:#909399}.u-main-color{color:#303133}.u-content-color{color:#606266}.u-tips-color{color:#909193}.u-light-color{color:#c0c4cc}.u-safe-area-inset-top{padding-top:0;padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top)}.u-safe-area-inset-right{padding-right:0;padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}.u-safe-area-inset-bottom{padding-bottom:0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.u-safe-area-inset-left{padding-left:0;padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left)}::-webkit-scrollbar{display:none;width:0!important;height:0!important;-webkit-appearance:none;background:transparent}page > view{height:100vh}.f_s{display:flex;justify-content:flex-start;align-items:center}.f_b{display:flex;justify-content:space-between;align-items:center}.tag{padding:8rpx 16rpx;background-color:#f6f6f6;color:#717171;border-radius:6rpx;font-size:24rpx}.tag + .tag{margin-left:10px}.u-cell{background-color:#fff}.cell-placeholder{color:#c2c6cc}.u-input{margin-top:5px}.u-form-item__body__left__content__label{color:#666!important;margin-top:14rpx}.u-form-item .u-cell__body{padding:10px 0!important}.u-form-item input, .u-form-item textarea, .u-form-item .u-cell__title, .u-form-item .form_val{font-size:30rpx!important;font-weight:500}page::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%{background-image:url(https://cdn2.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn2.dcloud.net.cn/img/shadow-grey.png)}}@keyframes shadow-preload{0%{background-image:url(https://cdn2.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn2.dcloud.net.cn/img/shadow-grey.png)}}
\ No newline at end of file \ No newline at end of file
(my["webpackJsonp"]=my["webpackJsonp"]||[]).push([["common/main"],{"2e9c":function(e,t,n){"use strict";n.r(t);var o=n("c5bb"),c=n.n(o);for(var r in o)["default"].indexOf(r)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(r);t["default"]=c.a},"7c6c":function(e,t,n){"use strict";var o=n("e66b"),c=n.n(o);c.a},c5bb:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o={onLaunch:function(){console.log("App Launch")},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")}};t.default=o},cd18:function(e,t,n){"use strict";n.r(t);var o=n("2e9c");for(var c in o)["default"].indexOf(c)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(c);n("7c6c");var r=n("828b"),u=Object(r["a"])(o["default"],void 0,void 0,!1,null,null,null,!1,void 0,void 0);t["default"]=u.exports},cf92:function(e,t,n){"use strict";(function(e){var t=n("47a9"),o=t(n("7ca3"));n("9db3");var c=t(n("cd18")),r=t(n("3240"));n("7393");var u=t(n("6f22")),i=t(n("a357"));function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}my.__webpack_require_UNI_MP_PLUGIN__=n;r.default.component("LoginOpen",(function(){n.e("components/login").then(function(){return resolve(n("ae9f"))}.bind(null,n)).catch(n.oe)})),r.default.prototype.$http=u.default,r.default.use(i.default),r.default.config.productionTip=!1,c.default.mpType="app";var a=new r.default(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},c.default));e(a).$mount()}).call(this,n("6861")["createApp"])},e66b:function(e,t,n){}},[["cf92","common/runtime","common/vendor"]]]); (my["webpackJsonp"]=my["webpackJsonp"]||[]).push([["common/main"],{"2e9c":function(e,t,n){"use strict";n.r(t);var o=n("c5bb"),c=n.n(o);for(var r in o)["default"].indexOf(r)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(r);t["default"]=c.a},"7c6c":function(e,t,n){"use strict";var o=n("e66b"),c=n.n(o);c.a},c5bb:function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={onLaunch:function(){var t=this;e.getStorageSync("jy-recruit-token")||e.login({success:function(n){t.$http.get("/public/ali/getopenId",{code:n.code}).then((function(n){var o=JSON.parse(n.code);e.setStorageSync("openId",o.alipay_system_oauth_token_response.open_id),t.$http.post("/public/person/c",{openId:o.alipay_system_oauth_token_response.open_id}).then((function(e){}))}))}})},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")}};t.default=n}).call(this,n("6861")["default"])},cd18:function(e,t,n){"use strict";n.r(t);var o=n("2e9c");for(var c in o)["default"].indexOf(c)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(c);n("7c6c");var r=n("828b"),u=Object(r["a"])(o["default"],void 0,void 0,!1,null,null,null,!1,void 0,void 0);t["default"]=u.exports},cf92:function(e,t,n){"use strict";(function(e){var t=n("47a9"),o=t(n("7ca3"));n("9db3");var c=t(n("cd18")),r=t(n("3240"));n("7393");var u=t(n("6f22")),i=t(n("a357"));function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}my.__webpack_require_UNI_MP_PLUGIN__=n;r.default.component("LoginOpen",(function(){n.e("components/login").then(function(){return resolve(n("ae9f"))}.bind(null,n)).catch(n.oe)})),r.default.prototype.$http=u.default,r.default.use(i.default),r.default.config.productionTip=!1,c.default.mpType="app";var f=new r.default(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},c.default));e(f).$mount()}).call(this,n("6861")["createApp"])},e66b:function(e,t,n){}},[["cf92","common/runtime","common/vendor"]]]);
\ No newline at end of file \ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论