认证流程+新页面

main
lijingyu007 6 months ago
parent 65c6badbee
commit 2adaf1659c
  1. 119
      pages.json
  2. 14
      pages/index/index.vue
  3. 246
      pages/index/outsourcing/cloudUserPage.vue
  4. 245
      pages/index/outsourcing/cloudUserdetail.vue
  5. 262
      pages/index/outsourcing/moreCloud.vue
  6. 10
      pages/index/outsourcing/outsourcing.vue
  7. 276
      pages/personal/personalresume/advantage.vue
  8. 412
      pages/personal/personalresume/basicinform.vue
  9. 203
      pages/personal/personalresume/education.vue
  10. 271
      pages/personal/personalresume/personalresume.vue
  11. 199
      pages/personal/personalresume/projectexperience.vue
  12. 206
      pages/personal/personalresume/workexperience.vue

@ -2,7 +2,7 @@
"easycom": {
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
},
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages
"pages": [
{
"path": "pages/index/index",
"style": {
@ -45,6 +45,15 @@
"navigationBarBackgroundColor": "#284CD1"
}
},{
"path" : "pages/personal/personalresume/education",
"style" :
{
"navigationBarTitleText" : "",
"navigationBarBackgroundColor": "#284CD1"
}
}
,{
"path" : "pages/personal/privacy",
"style" :
{
@ -73,41 +82,12 @@
"navigationBarTitleText" : "设置",
"navigationBarBackgroundColor": "#284CD1"
}
},{
// "path": "pages/all/all",
// "style": {
// "navigationBarTitleText": "全部",
// "navigationBarBackgroundColor": "#284CD1"
// }
},{
// "path": "pages/shoppingtrolley/shoppingtrolley",
// "style": {
// "navigationBarTitleText": "购物车",
// "navigationBarBackgroundColor": "#284CD1"
// }
},{
"path": "pages/personal/personal",
"style": {
"navigationBarTitleText": "我的",
"navigationBarBackgroundColor": "#284CD1"
}
},
{
// "path" : "pages/index/searchfor",
// "style" :
// {
// "navigationBarTitleText" : "搜索",
// "navigationBarBackgroundColor": "#284CD1"
// }
},
{
// "path" : "pages/index/addshoppingcart",
// "style" :
// {
// "navigationBarTitleText" : "加入购物车",
// "navigationBarBackgroundColor": "#284CD1"
// }
},{
"path" : "pages/personal/mysignup/notice",
"style" :
@ -140,6 +120,30 @@
"navigationBarBackgroundColor": "#284CD1"
}
},
{
"path" : "pages/index/outsourcing/cloudUserPage",
"style" :
{
"navigationBarTitleText" : "人力服务",
"navigationBarBackgroundColor": "#284CD1"
}
},
{
"path" : "pages/index/outsourcing/moreCloud",
"style" :
{
"navigationBarTitleText" : "人力服务",
"navigationBarBackgroundColor": "#284CD1"
}
},
{
"path" : "pages/index/outsourcing/cloudUserdetail",
"style" :
{
"navigationBarTitleText" : "人力服务",
"navigationBarBackgroundColor": "#284CD1"
}
},
{
"path" : "pages/index/toolleasing/toolleasing",
"style" :
@ -165,8 +169,6 @@
{
"navigationBarTitleText" : "众包服务",
"navigationBarBackgroundColor": "#284CD1"
// "enablePullDownRefresh": true, //true
// "onReachBottomDistance":100 // px
}
},
{
@ -184,13 +186,6 @@
"navigationBarTitleText" : "客服",
"navigationBarBackgroundColor": "#284CD1"
}
},{
// "path" : "pages/all/dynamicdetails",
// "style" :
// {
// "navigationBarTitleText" : "动态详情",
// "navigationBarBackgroundColor": "#284CD1"
// }
},{
"path" : "pages/personal/login",
"style" :
@ -303,7 +298,7 @@
"path" : "pages/personal/personalresume/basicinform",
"style" :
{
"navigationBarTitleText" : "基本信息",
"navigationBarTitleText" : "新增资格证书",
"navigationBarBackgroundColor": "#284CD1"
}
},
@ -371,29 +366,7 @@
}
}
],
"globalStyle": {
"navigationBarTextStyle": "white",
@ -403,7 +376,6 @@
},
"tabBar": {
"color" : "#7A7E83",
// "selectedColor" : "#7A7E83",
"selectedColor" : "#1578ED",
"borderStyle" : "black",
"backgroundColor" : "#F8F8F8",
@ -414,31 +386,12 @@
"selectedIconPath" : "static/index/activeindex.png",
"text" : "首页"
},
// {
// "pagePath" : "pages/message/message",
// "iconPath" : "static/index/message.png",
// "selectedIconPath" : "static/index/activemessage.png",
// "text" : "消息"
// },
{
"pagePath" : "pages/index/testcrowdsourc/testcrowdsourc",
"iconPath" : "static/index/cedt.png",
"selectedIconPath" : "static/index/actcedt.png",
"text" : "众包大厅"
},
// {
// "pagePath" : "pages/all/all",
// "iconPath" : "static/index/all.png",
// "selectedIconPath" : "static/index/activeall.png",
// "text" : "全部"
// },
// {
// "pagePath" : "pages/shoppingtrolley/shoppingtrolley",
// "iconPath" : "static/index/shopping.png",
// "selectedIconPath" : "static/index/activeshopping.png",
// "text" : "购物车"
// },
{
"pagePath" : "pages/personal/personal",
"iconPath" : "static/index/person.png",

@ -421,9 +421,17 @@
})
} else {
// uni.showToast({ title: '线', icon: 'none', duration: 1000 });
uni.navigateTo({
url: './outsourcing/outsourcing'
})
const userinform = uni.getStorageSync('wxUserInfo');
if (userinform.companyStatus == 2) {
uni.navigateTo({
url: '/pages/index/outsourcing/outsourcing'
})
} else {
uni.navigateTo({
url: '/pages/index/outsourcing/cloudUserPage'
})
}
}
},
//

@ -0,0 +1,246 @@
<template>
<view class="moreCould">
<image src="../../../static/index/tj.png" class="topbanner" mode=""></image>
<view class="topbanner1">
<image src="../../../static/index/tj.png" class="topbanner1img" mode=""></image>
<view class="topbtn" @click="ruzhu">
立即入驻
</view>
</view>
<view class="titlePeo">
<view class="titletopt">
<image src="../../../static/crowd/rihhj.png" alt="" />
<p style="margin:0px 10px">优选企业岗位</p>
<image src="../../../static/crowd/lesftt.png" alt="" />
</view>
</view>
<view class="userCont">
<view class="userContIt" v-for="it in 4" @click="goDetail">
<view class="userContItT">
<view class="userContItTT">
<view class="userContItTTL">
嵌入式软件测试工程师(偶尔出差)
</view>
<view class="userContItTTR">
6-10K
</view>
</view>
<view class="userContItTB">
<view class="userContItTBit">北京/西安</view>
<view class="userContItTBit">1-3年经验</view>
<view class="userContItTBit">本科</view>
<view class="userContItTBit">嵌入式</view>
</view>
</view>
<view class="userContItB">
<view class="userContItBL">北京关键科技股份有限公司</view>
<view class="userContItBR">计算机软件</view>
</view>
</view>
</view>
<view class="maskDia" v-if="showida">
<view class="maskBox">
<view class="maskBoxT">
入驻云员工请前往PC端认证
</view>
<view class="maskBoxM">
PC端网址https://www.keyitest.cn/
</view>
<view class="maskBoxB" @click="copyUrl">
复制网址
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
showida: false
};
},
methods: {
goDetail() {
uni.navigateTo({
url: '/pages/index/outsourcing/cloudUserdetail'
})
},
ruzhu() {
this.showida = true
},
copyUrl() {
},
}
}
</script>
<style lang="scss" scoped>
.moreCould {
padding: 25px;
box-sizing: border-box;
.topbanner {
width: 100%;
height: 250rpx;
margin-bottom: 24rpx;
}
.topbanner1 {
height: 200rpx;
position: relative;
margin-bottom: 40rpx;
.topbanner1img {
width: 100%;
height: 100%;
}
.topbtn {
width: 190rpx;
height: 52rpx;
line-height: 52rpx;
text-align: center;
background: linear-gradient(90deg, #6B3AF8, #2080FE);
border-radius: 4rpx;
position: absolute;
bottom: 54rpx;
left: 50%;
transform: translateX(-50%);
font-weight: 500;
font-size: 22rpx;
color: #F4F5F7;
}
}
.userCont {
.userContIt {
height: 220rpx;
background: rgba(255, 255, 255, 0.8);
box-shadow: 0rpx 4rpx 27rpx 3rpx rgba(16, 60, 117, 0.1);
border-radius: 6rpx;
margin-bottom: 26rpx;
.userContItT {
height: calc(100% - 61rpx);
padding: 39rpx 28rpx 0 28rpx;
box-sizing: border-box;
.userContItTT {
display: flex;
align-content: center;
justify-content: space-between;
.userContItTTL {
font-weight: bold;
font-size: 28rpx;
color: #000000;
}
.userContItTTR {
font-weight: bold;
font-size: 28rpx;
color: #FB3838;
}
}
.userContItTB {
display: flex;
align-content: center;
font-weight: 500;
font-size: 19rpx;
color: #666666;
margin-top: 20rpx;
.userContItTBit {
height: 38rpx;
background: rgba(230, 231, 235, 0.3);
border-radius: 3rpx;
padding: 0 20rpx;
line-height: 38rpx;
margin-right: 18rpx;
}
}
}
.userContItB {
height: 61rpx;
background: linear-gradient(270deg, rgba(253, 238, 1235, 0.65), rgba(234, 241, 252, 0.65));
border-radius: 6rpx;
padding: 0 28rpx;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 500;
font-size: 22rpx;
color: #666666;
}
}
}
}
.maskDia {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(5, 5, 7, 0.5);
display: flex;
align-items: center;
justify-content: center;
.maskBox {
width: 570rpx;
height: 220rpx;
background: linear-gradient(0deg, #FFFFFF, #EFF3FE);
box-shadow: 0rpx 4rpx 21rpx 4rpx rgba(22, 27, 33, 0.1);
border-radius: 6rpx;
border: 1px solid #999999;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
.maskBoxT {
color: #1A1A1A;
font-size: 26rpx;
font-weight: bold;
}
.maskBoxM {
color: #1A1A1A;
font-size: 26rpx;
font-weight: 500;
margin: 20rpx 0;
}
.maskBoxB {
color: #1578ED;
font-size: 26rpx;
font-weight: 500;
}
}
}
.titlePeo {
font-weight: bold;
font-size: 35rpx;
color: #1A1A1A;
margin: 40rpx 0;
}
.titletopt {
display: flex;
justify-content: center;
align-items: center;
}
.titletopt image {
height: 20rpx;
width: 200rpx;
}
</style>

@ -0,0 +1,245 @@
<template>
<view class="moreCould">
<view class="topbanner">
<image class="topbannerimg" src="../../../static/index/activeall.png" mode=""></image>
<view class="topCon">
<view class="topConT">
<div class="topConTL">嵌入式软件测试工程师</div>
<div class="topConTR">6-10K</div>
</view>
<view class="topConM">
<div class="topConMit">
<image src="../../../static/index/dd.png" mode=""></image>
北京
</div>
<div class="topConMit">
<image src="../../../static/index/dd.png" mode=""></image>
北京
</div>
<div class="topConMit">
<image src="../../../static/index/dd.png" mode=""></image>
北京
</div>
<div class="topConMit">
<image src="../../../static/index/dd.png" mode=""></image>
北京
</div>
<div class="topConMit">
<image src="../../../static/index/dd.png" mode=""></image>
北京
</div>
</view>
<view class="topConB">
<div class="topConBit">五险一金</div>
<div class="topConBit">加班补助</div>
<div class="topConBit">餐补</div>
<div class="topConBit">带薪年假</div>
</view>
</view>
<view class="bocontent">
<div class="bocontentBox">
<div class="bocontentBoxT">职位描述</div>
<div class="skillBox">
<div class="skillBoxIt">C++test</div>
<div class="skillBoxIt">Testbed</div>
<div class="skillBoxIt">loadrunner</div>
<div class="skillBoxIt">jmeter</div>
<div class="skillBoxIt">C++</div>
</div>
<div class="bocontentBoxC">
岗位要求<br />
1.本科及以上学历计算机相关专业毕业<br />
2.对测试工作有兴趣能够接受出差
</div>
<div class="bocontentBoxC">
岗位技能<br />
1.掌握软件测试技能具备用例编写能力<br />
2.熟练掌握CC++语言有白盒测试经验有单元测试经验者优先非常重要条件<br />
3.具有嵌入式培训工作经历及相关行业测试经验者优先<br />
4.熟悉C++testTestbedloadrunnerjmeter等测试工具或具有第三方测评经验者优先录用
</div>
<div class="bocontentBoxC">
岗位职责<br />
1.负责嵌入式软件的单元测试集成测试配置项测试和系统测试完成测试计划测试用例编写问题单提交测试报告编写<br />
2.负责通用软件文档审查功能测试性能测试兼容性易用性可靠性信息安全性维护性可移植性测试完成测试文档和测试报告编写<br />
3.完成内部测试和第三方软件测评
</div>
<div class="bocontentBoxT">工作地点</div>
<div class="bocontentBoxC">北京市昌平区国电投中央园区</div>
<div class="bocontentBoxT">入职企业</div>
<div class="bocontentBoxC">北京关键科技股份有限公司</div>
</div>
</view>
<view class="bottomBtn">
<div class="bottomB" @click="shenqing">
申请职位
</div>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
};
},
methods: {
shenqing() {}
}
}
</script>
<style lang="scss" scoped>
.moreCould {
.topbanner {
height: 250rpx;
margin-bottom: 26rpx;
position: relative;
.topbannerimg {
width: 100%;
height: 100%;
}
.topCon {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 0 60rpx;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
.topConT {
display: flex;
align-items: center;
justify-content: space-between;
.topConTL {
font-weight: bold;
font-size: 34rpx;
color: #FFFFFF;
}
.topConTR {
font-weight: bold;
font-size: 34rpx;
color: #FCA362;
}
}
.topConM {
display: flex;
align-items: center;
margin: 34rpx 0;
.topConMit {
display: flex;
align-items: center;
font-weight: 500;
font-size: 22rpx;
color: #FFFFFF;
margin-right: 32rpx;
image {
width: 23rpx;
height: 23rpx;
margin-right: 7rpx;
}
}
}
.topConB {
display: flex;
align-items: center;
.topConBit {
width: 113rpx;
height: 43rpx;
line-height: 43rpx;
text-align: center;
background: rgba(140, 158, 177, 0.3);
border-radius: 3rpx;
font-weight: 500;
font-size: 22rpx;
color: #E6E6E6;
margin-right: 18rpx;
}
}
}
.bocontent {
padding: 0 25rpx;
box-sizing: border-box;
.bocontentBox {
background: #FFFFFF;
padding: 30rpx;
box-sizing: border-box;
.bocontentBoxT {
font-weight: bold;
font-size: 30rpx;
color: #1A1A1A;
margin-bottom: 27rpx;
}
.bocontentBoxC {
font-weight: 500;
font-size: 24rpx;
color: #595959;
line-height: 40rpx;
margin-bottom: 30rpx;
}
.skillBox {
display: flex;
align-items: center;
flex-wrap: wrap;
margin-bottom: 30rpx;
.skillBoxIt {
height: 45rpx;
line-height: 45rpx;
background: #F2F3F7;
border-radius: 3rpx;
padding: 0 10rpx;
margin-right: 17rpx;
font-weight: 500;
font-size: 23rpx;
color: #4D4D4D;
}
}
}
}
.bottomBtn {
height: 120rpx;
background: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
margin-top: 32rpx;
.bottomB {
width: 700rpx;
height: 70rpx;
background: #1778F7;
border-radius: 6rpx;
font-weight: 500;
font-size: 30rpx;
color: #FFFFFF;
line-height: 70rpx;
text-align: center;
}
}
}
}
</style>

@ -0,0 +1,262 @@
<template>
<view class="moreCould">
<view class="topbanner">
<image class="topbannerimg" src="../../../static/index/activeall.png" mode=""></image>
<view class="topCon">
<view class="topConT">
关键云员工
</view>
<view class="topConTB">
真实有效的软件人才库名校毕业
</view>
</view>
</view>
<view class="searchBox">
<div class="input">
<u-input v-model="value" clearable :type="type" border />
</div>
<view class="searchbtn" @click="search">
搜索
</view>
</view>
<div class="contentBox">
<view class="jianliboxitem" v-for="it in peopleList" >
<view class="address">
<image src="../../../static/index/dd.png" mode=""></image>
北京
</view>
<view class="jlboxtop">
<image class="jlboxtopimg" :src="it.url" alt="" />
<view class="jlboxtoptit">{{it.name}}</view>
<view class="jlboxtopzc">{{it.zhicheng}}</view>
<view class="jlboxtopzcC">{{it.zhicheng}}</view>
</view>
<view class="jlboxbottom">
<view class="jlboxbottoml jlboxbottomlbor">
<image class="jlboxbottomlimg" src="../../../static/crowd/daxue.png" alt="" />
{{it.school}}
</view>
<view class="jlboxbottoml">
<image class="jlboxbottomlimg" src="../../../static/crowd/zhuanye.png" alt="" />
{{it.maj}}
</view>
</view>
</view>
</div>
</view>
</template>
<script>
export default {
data() {
return {
peopleList: [{
url: 'http://image.keyitest.cn/static/index/renliwb/people1.png',
name: '杨**',
zhicheng: 'JAVA后端研发工程师',
school: '河南科技大学',
maj: '软件工程专业'
},
{
url: 'http://image.keyitest.cn/static/index/renliwb/people2.png',
name: '赵**',
zhicheng: 'Web全栈开发工程师',
school: '西安科技大学',
maj: '软件工程专业'
},
{
url: 'http://image.keyitest.cn/static/index/renliwb/people3.png',
name: '杨**',
zhicheng: 'JAVA研发工程师',
school: '阜阳师范大学',
maj: '软件工程专业'
},
{
url: 'http://image.keyitest.cn/static/index/renliwb/people4.png',
name: '王**',
zhicheng: '嵌入式工程师',
school: '西安科技大学',
maj: '软件工程专业'
}
],
};
},
methods: {
search() {}
}
}
</script>
<style lang="scss" scoped>
.moreCould {
.topbanner {
height: 250rpx;
margin-bottom: 43rpx;
position: relative;
.topbannerimg {
width: 100%;
height: 100%;
}
.topCon {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 0 60rpx;
box-sizing: border-box;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.topConT {
font-weight: bold;
font-size: 42rpx;
color: #FFFFFF;
margin-bottom: 20rpx;
}
.topConTB {
font-weight: 500;
font-size: 25rpx;
color: #FFFFFF;
}
}
}
.searchBox {
padding: 0 25rpx;
box-sizing: border-box;
margin-bottom: 40rpx;
display: flex;
align-items: center;
.input {
flex: 1;
height: 60rpx;
::v-deep .u-input {
background: #FFFFFF !important;
border-radius: 4rpx 0rpx 0rpx 4rpx !important;
border: 1px solid #E6E7EB !important;
height: 60rpx !important;
}
::v-deep .u-input__input {
min-height: 60rpx !important;
}
}
.searchbtn {
width: 140rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
background: #0066EB;
border-radius: 0rpx 4rpx 4rpx 0rpx;
font-weight: 500;
font-size: 30rpx;
color: #FFFFFF;
}
}
.contentBox {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
padding: 0 25rpx;
box-sizing: border-box;
.jianliboxitem {
width: 338rpx;
height: 380rpx;
background: #FFFFFF;
box-shadow: 0rpx 4rpx 34rpx 6rpx rgba(14, 97, 205, 0.1);
border-radius: 6rpx;
display: flex;
flex-direction: column;
cursor: pointer;
transition: all .1s linear;
margin-bottom: 24rpx;
position: relative;
}
.address {
position: absolute;
top: 20rpx;
right: 20rpx;
font-weight: 500;
font-size: 20rpx;
color: #999999;
image {
width: 15rpx;
height: 19rpx;
margin-right: 10rpx;
}
}
.jlboxtop {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.jlboxtopimg {
width: 105rpx;
height: 105rpx;
border-radius: 50%;
}
.jlboxtoptit {
font-weight: bold;
font-size: 28rpx;
color: #000000;
margin: 10rpx 0;
}
.jlboxtopzc {
font-weight: 500;
font-size: 24rpx;
color: #333333;
}
.jlboxtopzcC {
font-weight: 500;
font-size: 20rpx;
color: #808080;
margin-top: 20rpx;
}
.jlboxbottom {
width: 100%;
height: 55rpx;
border-top: 1px solid #EBEBEB;
display: flex;
align-items: center;
}
.jlboxbottoml {
height: 19rpx;
flex: 1;
display: flex;
justify-content: center;
align-items: center;
font-weight: 500;
font-size: 20rpx;
color: #808080;
}
.jlboxbottomlbor {
box-sizing: border-box;
border-right: 1px solid #EBEBEB;
}
.jlboxbottomlimg {
width: 17rpx;
height: 16rpx;
margin-right: 10rpx;
}
}
}
</style>

@ -163,7 +163,7 @@
<view class="titlePeo" style="margin-bottom: 0">
<view class="titletopt">
<image src="../../../static/crowd/rihhj.png" alt="" />
<p style="margin:0px 10px">IT软件人才库</p>
<p style="margin:0px 10px">关键云员工</p>
<image src="../../../static/crowd/lesftt.png" alt="" />
</view>
<view class="titlebot">
@ -193,7 +193,7 @@
<image class="tranimg" src="http://image.keyitest.cn/static/index/renliwb/people5.png" mode=""></image>
<view style="position: relative;height:40px">
<view class="lookmore" @click="peopleClick">查看更多简历</view>
<view class="lookmore" @click="lookMoreFn">查看更多</view>
</view>
@ -623,6 +623,12 @@
url: '/pages/personal/login'
})
},
lookMoreFn() {
uni.navigateTo({
url: '/pages/index/outsourcing/moreCloud'
})
},
//
certifconfirm() {
this.certifshow = false;

@ -1,8 +1,35 @@
<template>
<view class='navTab'>
<p style='font-size: 18px;font-weight: bold;margin: 10px 0 20px 0;'>我的优势</p>
<u-input style="width:100%;" border='true' type='textarea' height='300' maxlength='3000' v-model="advantage" placeholder='请输入我的优势'/>
<view style="">
<view class="navTab">
<view class="sintitle">
<img src="/static/index/grxx.png" alt="">
<p>基本信息</p>
</view>
<u-form :model="basicobj" ref="basicobj" label-position='left' label-width='150' border-bottom='false'>
<u-form-item label="所在城市:" prop="city" border-bottom='false' required='true'>
<view class="sinput">
<u-input style="width:100%;" v-model="basicobj.city" type="select" @click="cityshow = true"
placeholder='输入所在城市' />
<u-select v-model="cityshow" :list="cityList" @confirm="citychange"
mode="mutil-column-auto"></u-select>
</view>
</u-form-item>
<u-form-item label="技能方向:" prop="testSkills" border-bottom='false' required='true'>
<view class="sinput">
<u-input style="width:100%;" v-model="basicobj.testSkills" placeholder='输入技能方向' />
</view>
</u-form-item>
<u-form-item label="个人优势:" prop="personalAdvantage" border-bottom='false' required='true'>
<u-input style="width:100%;height: 100px;" border='true' type='textarea'
v-model="basicobj.personalAdvantage" placeholder='输入个人优势' />
</u-form-item>
</u-form>
</view>
<view class="bottbtn" @click="resource">保存</view>
<view style="height:10px"></view>
<u-toast ref="uToast" />
</view>
</template>
@ -11,41 +38,72 @@
export default {
data() {
return {
advantage:''
cityshow: false,
basicobj: {},
wxUserInfo: null,
testerdata: null,
cityList: [],
certRules: {
city: [{
required: true,
message: '请选择城市',
trigger: 'change'
}],
testSkills: [{
required: true,
message: '输入技能方向',
trigger: 'blur',
}],
personalAdvantage: [{
required: true,
message: '输入个人优势',
trigger: 'blur',
}],
},
}
},
onShow() {
this.http.quickGet(`/common/city`, ).then(res => {
this.cityList = res.data
})
},
onReady() {
this.$refs.basicobj.setRules(this.certRules);
},
onLoad() {
let wxUserInfo = uni.getStorageSync('wxUserInfo');
this.http.quickGet(`/tester/TesterInfo/resume/${wxUserInfo.userId}`,true).then(res=>{
this.advantage=res.data.personalAdvantage
console.log('简历信息---',res)
this.wxUserInfo = uni.getStorageSync('wxUserInfo');
let userId = this.wxUserInfo.userId
this.http.quickGet(`/tester/TesterInfo/resume/${this.wxUserInfo.userId}`, true).then(res => {
this.basicobj = {
city: res.data.city,
testSkills: res.data.testSkills,
personalAdvantage: res.data.personalAdvantage
}
})
},
computed: {
},
methods: {
resource(){
let wxUserInfo = uni.getStorageSync('wxUserInfo');
if(!this.advantage){
uni.showToast({ title: '请输入我的优势', icon: 'none', duration: 1000 });
return;
}
if(this.advantage.length>3000){
uni.showToast({ title: '最多可输入3000字', icon: 'none', duration: 1000 });
return;
}
let data={
userId:wxUserInfo.userId,
personalAdvantage:this.advantage,
}
this.http.quickPost(`/tester/TesterInfo/advantage`,data,true).then(res=>{
if(res.data.code==200){
uni.showToast({ title: '我的优势编辑成功', icon: 'success', duration: 2000 });
setTimeout(()=>{
uni.navigateBack({
delta:1
})
},1000)
}
citychange(e) {
this.basicobj.city = e[0].label + '-' + e[1].label
},
resource() {
this.$refs.basicobj.validate(valid => {
if (valid) {
this.http.quickPost(`/tester/cert/profile`, this.basicobj, true).then(res => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: '保存成功',
type: 'success',
url: 'pages/personal/personalresume/personalresume'
})
} else {
}
})
} else {}
})
}
}
@ -53,25 +111,145 @@
</script>
<style>
.navTab{
background-color: #ffffff;
width: 96vw;
margin: 2vh auto;
padding: 10px 15px 30px 25px;
border-radius: 5px;
}
/* .navTab .u-input{
min-height:200px;
} */
.bottbtn{
margin:30px 3vw 15px 3vw;
height:75rpx;
page {
background: #FFFFFF !important;
}
.navTab {
padding: 13px 20px 13px 20px;
}
.sinput {
display: flex;
align-items: center;
/* height: 50px; */
}
.u-form-left__content__label {
color: #808080 !important;
}
.sintitle {
display: flex;
align-items: center;
/* height: 50px; */
background: #F2F4F7;
/* background:#20529c; */
border-radius: 4rpx;
padding: 7px 15px;
}
.sintitle img {
width: 20px;
height: 18px;
margin-right: 5px;
}
.sintitle p {
font-size: 15px;
color: #000000;
font-weight: bold;
}
.sinput .u-input {
height: 35px;
border-bottom: 1px solid #EBEBEB !important;
}
.sinput p {
color: #808080;
}
.bottbtn {
width: 94vw;
margin: 30px 3vw 15px 3vw;
height: 75rpx;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border-radius:15rpx;
border-radius: 43rpx;
text-align: center;
line-height:75rpx;
line-height: 75rpx;
color: #FFFFFF;
font-size: 33rpx;
/* margin-left:13px; */
}
.sinputrt {
display: flex;
/* align-items: center; */
/* height: 50px; */
padding: 10px 0px;
}
.sinputrt .u-input {
/* width:75vw; */
height: 100px;
border: 1px solid #E6E6E6;
background: #FFFFFF;
border-radius: 10rpx 10rpx 0rpx 0rpx;
padding-left: 10px !important;
}
.u-list-item {
margin: 0 !important;
zIndex: 0 !important;
}
.slot-btn {
width: 200rpx;
height: 0rpx;
zIndex: 99;
/* display: flex;
justify-content: center;
align-items: center;
background: rgb(244, 245, 246);
border-radius: 10rpx; */
}
.slot-btn__hover {
background-color: rgb(235, 236, 238);
}
.u-form-item {
margin-bottom: -5px;
color: #808080 !important;
}
.u-form {
margin-left: 20px;
}
.u-list-item {
margin: 0 !important;
background: transparent !important;
color: transparent !important;
}
.upliacla {
width: 100px;
height: 100px;
/* line-height:100px; */
border-radius: 4px;
background: #f4f5f6;
color: #606266;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.wuploa {
/* width: 100px;
height: 100px;
line-height: 100px;
font-size: 12px;
border: 1px solid #E6E6E6;
text-align: center;
border-radius: 4px; */
}
</style>
</style>

@ -1,70 +1,39 @@
<template>
<view style="">
<view class="navTab">
<view class="sintitle">
<img src="/static/index/grxx.png" alt="">
<p>基本信息</p>
<view class="sintitle" style="margin-top:15px;margin-left: -20px;">
<img src="/static/index/jnzs.png" alt="">
<p style="color:#fa3534;margin-right:3px">* </p>
<p>资格证书</p>
</view>
<u-form :model="basicobj" ref="basicobj" label-position='left' label-width='150' border-bottom='false' >
<u-form-item label="姓名:" prop="name" border-bottom='false' required='true'>
<view class="sinput">
<u-input style="width:100%;" v-model="basicobj.name" placeholder='输入姓名'/>
</view>
</u-form-item>
<u-form-item label="所在城市:" prop="city" border-bottom='false' required='true'>
<!-- <view v-if="istest" class="sinput">
<u-input style="width:100%;" v-model="basicobj.city" placeholder='输入所在城市' />
</view>v-else -->
<u-form :model="basicobj" ref="basicobj" label-position='left' label-width='150' border-bottom='false'>
<u-form-item label="证书名称:" prop="credentialsName" border-bottom='false' required='true'>
<view class="sinput">
<u-input style="width:100%;" v-model="basicobj.city" type="select" @click="cityshow = true" placeholder='输入所在城市' />
<u-select v-model="cityshow" :list="cityList" @confirm="citychange" mode="mutil-column-auto" ></u-select>
<u-input style="width:100%;" v-model="basicobj.credentialsName" placeholder='输入个人技能' />
</view>
</u-form-item>
<u-form-item label="个人技能:" prop="testSkills" border-bottom='false' required='true'>
<view class="sinput">
<u-input style="width:100%;" v-model="basicobj.testSkills" placeholder='输入个人技能'/>
</view>
</u-form-item>
<view class="sintitle" style="margin-top:15px;margin-left: -20px;">
<img src="/static/index/jnzs.png" alt="">
<p style="color:#fa3534;margin-right:3px">* </p>
<p>资格证书</p>
</view>
<u-form-item prop="certificateUrl" border-bottom='false' >
<u-upload width='100px' height='100px'
:action="action"
:header="headers"
:auto-upload="true"
:show-progress="false"
max-count="1"
:deletable="true"
:file-list="basicobj.certificateUrl"
<u-form-item prop="url" border-bottom='false'>
<u-upload width='100px' height='100px' :action="action" :header="headers" :auto-upload="true"
:show-progress="false" max-count="1" :deletable="true" :file-list="basicobj.url"
@on-success="(data,index,lists) => {fielUploadSuc(data,index,lists) }"
@on-remove="(index, lists, name)=>{deleteUpfile(index)}"
@on-error="(data,index, lists)=>{errorUpfile(data,index, lists)}"
>
<view slot="addBtn" class="slot-btn" >
<img v-if="basicobj.certificateUrl" :src="basicobj.certificateUrl" mode="aspectFill" style="width: 100px;height: 100px;">
<div v-else class="upliacla">
<p style="font-size: 18px;">+</p>
<p>选择图片</p>
<!-- <u-icon name="arrow-upward" color="#606266" size="38"></u-icon> -->
</div>
@on-error="(data,index, lists)=>{errorUpfile(data,index, lists)}">
<view slot="addBtn" class="slot-btn">
<img v-if="basicobj.url" :src="basicobj.url" mode="aspectFill"
style="width: 100px;height: 100px;">
<div v-else class="upliacla">
<p style="font-size: 18px;">+</p>
<p>选择图片</p>
</div>
</view>
</u-upload>
<!-- <div v-if="basicobj.certificateUrl">
<img v-if="basicobj.certificateUrl.length>35" :src="basicobj.certificateUrl" style="width: 100px;height: 100px;">
<p class="wuploa" v-else>未上传证书</p>
</div> -->
</u-form-item>
</u-form>
</view>
<view class="bottbtn" @click="resource">保存</view>
<view class="bottbtn" @click="resource">保存</view>
<view style="height:10px"></view>
<u-toast ref="uToast" />
</view>
@ -74,121 +43,117 @@
export default {
data() {
return {
cityshow:false,
basicobj:{name:'',city:'',testSkills:'',certificateUrl:''},
wxUserInfo:null,
testerdata:null,
cityList:[],
action: this.http.baseUrl +'/upload',
headers:{Authorization:'Bearer '+uni.getStorageSync('accessToken')},
cityshow: false,
basicobj: {
url: ''
},
wxUserInfo: null,
testerdata: null,
cityList: [],
action: this.http.baseUrl + '/upload',
headers: {
Authorization: 'Bearer ' + uni.getStorageSync('accessToken')
},
certRules: {
name: [{required: true, message: '请输入姓名', trigger: 'change',},
{max: 4, message: '最多输入4个中文', trigger: 'change' },
{
pattern:
/^(?:[\u4e00-\u9fa5·]{2,16})$/,
message: "请输入中文",
trigger: "blur",
},],
city:[{required: true, message: '请选择城市', trigger: 'change'}],
credentialsName: [{
required: true,
message: '请输入证书名称',
trigger: 'change',
}],
url: [{
required: true,
message: '请上传证书',
trigger: 'change'
}],
},
fileItem: {},
fileInfo: []
}
},
onShow() {
this.http.quickGet(`/common/city`,).then(res=>{
// console.log('---',res)
this.cityList=res.data
})
},
onReady(){
onShow() {},
onReady() {
this.$refs.basicobj.setRules(this.certRules);
},
onLoad() {
// /tester/cert/apply/{userId}
this.wxUserInfo = uni.getStorageSync('wxUserInfo');
let userId=this.wxUserInfo.userId
this.http.quickGet(`/tester/TesterInfo/resume/${this.wxUserInfo.userId}`,true).then(res=>{
let resumedata=res.data;
let {name,city,testSkills,certificateUrl}=resumedata;
this.basicobj={name,city,testSkills,certificateUrl}
console.log('简历信息---',res)
})
onLoad(options) {
if (options.fileItem) {
uni.setNavigationBarTitle({
title: '修改资格证书'
});
this.fileInfo = JSON.parse(options.fileList)
this.fileInfo = this.fileInfo.map(it => {
return {
credentialsName: it.fileName,
url: it.filePath
}
})
this.fileItem = JSON.parse(options.fileItem)
this.basicobj.credentialsName = this.fileItem.fileName
this.basicobj.url = this.fileItem.fileUrl
} else {
uni.setNavigationBarTitle({
title: '添加资格证书'
});
}
},
computed: {
},
methods: {
citychange(e){
console.log('城市回显',e,this.cityshow)
this.basicobj.city=e[0].label+'-'+e[1].label
},
//
fielUploadSuc(data,index) {
console.log('-',data,'*',index)
fielUploadSuc(data, index) {
if (data.code === 200) {
this.basicobj.certificateUrl=data.filePath
console.log('技能认证',this.basicobj.certificateUrl)
this.basicobj.url = data.filePath
}
},
//
deleteUpfile(index,lists){
console.log('del技能认证',this.basicobj.certificateUrl)
this.basicobj.certificateUrl=''
// if(this.credentialImgList.length>0){
// let id=this.credentialImgList[0].id;
// this.http.quickDelete(`/equestrianinfo/file/${id}`).then(()=>{})
// }
deleteUpfile(index, lists) {
this.basicobj.url = ''
},
errorUpfile(data,index){
// console.log('-',data,'*',index)
// this.$refs.uToast.show({
// title: '',
// type: 'error',
// })
},
resource(){
console.log('basicobj',this.basicobj)
errorUpfile(data, index) {},
//
resource() {
this.$refs.basicobj.validate(valid => {
if (valid) {
let certificateUrl = this.http.baseUrl + this.basicobj.certificateUrl;
// console.log('',this.basicobj.certificateUrl)
// if(this.basicobj.certificateUrl.indexOf('https')==0){
// certificateUrl=this.basicobj.certificateUrl
// }else{
// if(this.basicobj.certificateUrl==''){
// certificateUrl=''
// }else{
// certificateUrl='https://www.keyitest.cn/prod-api'+this.basicobj.certificateUrl
// }
// }
let data={
userId:this.wxUserInfo.userId,
name:this.basicobj.name,
city:this.basicobj.city,
testSkills:this.basicobj.testSkills,
certificateUrl,
}
console.log('基本信息',data)
// return;
this.http.quickPut(`/tester/TesterInfo`,data,true).then(res=>{
console.log('更新基本信息',res)
if(res.data.code==200){
this.$refs.uToast.show({
title: '保存成功',
type: 'success',
url:'pages/personal/personalresume/personalresume'
})
}else{
if (valid) {
if (this.fileItem.fileId) {
//
var modifiedUrl = this.basicobj.url.replace(/.*\/profile/, '/profile');
const data = {
credentialsList: [ {url: modifiedUrl, credentialsName: this.basicobj.credentialsName}, ...this.fileInfo]
}
})
}else{
console.log('验证失败',this.basicobj)
}
this.http.quickPost(`/tester/cert/credentials/edit`, data, true).then(res => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: '修改成功',
type: 'success',
url: 'pages/personal/personalresume/personalresume'
})
} else {
}
})
} else {
//
const data = {
credentialsList: [this.basicobj]
}
this.http.quickPost(`/tester/cert/credentials`, data, true).then(res => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: '保存成功',
type: 'success',
url: 'pages/personal/personalresume/personalresume'
})
} else {
}
})
}
} else {}
})
}
}
@ -196,84 +161,97 @@
</script>
<style>
page{
background: #FFFFFF!important;
page {
background: #FFFFFF !important;
}
.navTab{
padding:13px 20px 13px 20px;
.navTab {
padding: 13px 20px 13px 20px;
}
.sinput{
.sinput {
display: flex;
align-items: center;
/* height: 50px; */
}
.u-form-left__content__label{
color:#808080!important;
.u-form-left__content__label {
color: #808080 !important;
}
.sintitle{
.sintitle {
display: flex;
align-items: center;
/* height: 50px; */
background: #F2F4F7;
/* background:#20529c; */
border-radius: 4rpx;
padding:7px 15px;
padding: 7px 15px;
}
.sintitle img{
width:20px;
height:18px;
margin-right:5px;
.sintitle img {
width: 20px;
height: 18px;
margin-right: 5px;
}
.sintitle p{
.sintitle p {
font-size: 15px;
color:#000000;
color: #000000;
font-weight: bold;
}
.sinput .u-input{
height:35px;
border-bottom: 1px solid #EBEBEB!important;
.sinput .u-input {
height: 35px;
border-bottom: 1px solid #EBEBEB !important;
}
.sinput p{
.sinput p {
color: #808080;
}
.bottbtn{
width:94vw;
margin:30px 3vw 15px 3vw;
height:75rpx;
.bottbtn {
width: 94vw;
margin: 30px 3vw 15px 3vw;
height: 75rpx;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border-radius:43rpx;
border-radius: 43rpx;
text-align: center;
line-height:75rpx;
line-height: 75rpx;
color: #FFFFFF;
font-size: 33rpx;
/* margin-left:13px; */
}
.sinputrt{
.sinputrt {
display: flex;
/* align-items: center; */
/* height: 50px; */
padding: 10px 0px;
}
.sinputrt .u-input{
.sinputrt .u-input {
/* width:75vw; */
height:100px;
height: 100px;
border: 1px solid #E6E6E6;
background: #FFFFFF;
border-radius: 10rpx 10rpx 0rpx 0rpx;
padding-left: 10px!important;
padding-left: 10px !important;
}
.u-list-item{
margin:0!important;
zIndex:0!important;
.u-list-item {
margin: 0 !important;
zIndex: 0 !important;
}
.slot-btn {
width:200rpx;
height:0rpx;
zIndex:99;
width: 200rpx;
height: 0rpx;
zIndex: 99;
/* display: flex;
justify-content: center;
align-items: center;
@ -284,40 +262,44 @@
.slot-btn__hover {
background-color: rgb(235, 236, 238);
}
.u-form-item{
margin-bottom:-5px;
color: #808080!important;
.u-form-item {
margin-bottom: -5px;
color: #808080 !important;
}
.u-form{
.u-form {
margin-left: 20px;
}
.u-list-item{
.u-list-item {
margin: 0 !important;
background: transparent!important;
color:transparent!important;
background: transparent !important;
color: transparent !important;
}
.upliacla{
width: 100px;
height: 100px;
/* line-height:100px; */
border-radius: 4px;
background: #f4f5f6;
color:#606266;
display:flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.wuploa{
/* width: 100px;
.upliacla {
width: 100px;
height: 100px;
/* line-height:100px; */
border-radius: 4px;
background: #f4f5f6;
color: #606266;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.wuploa {
/* width: 100px;
height: 100px;
line-height: 100px;
font-size: 12px;
border: 1px solid #E6E6E6;
text-align: center;
border-radius: 4px; */
}
</style>
}
</style>

@ -0,0 +1,203 @@
<template>
<view class="navTab">
<u-form :model="projectobj" ref="projectobj" label-position='left' label-width='150'>
<u-form-item label="学校名称:" prop="name" required='true'>
<u-input style="width:100%;" v-model="projectobj.name" placeholder='请输入公司名称' />
</u-form-item>
<u-form-item label="开始时间:" prop="startTime" required='true'>
<u-input class="seleclas" v-model="projectobj.startTime" type="select" @click="Periodshow = true"
placeholder='请选择' />
<u-picker mode="time" v-model="Periodshow" :params="{year: true,month:true}"
@confirm="startTimeChange"></u-picker>
</u-form-item>
<u-form-item label="结束时间:" prop="endTime" required='true'>
<u-input class="seleclas" v-model="projectobj.endTime" type="select" @click="Periodshow1 = true"
placeholder='请选择' />
<u-picker mode="time" v-model="Periodshow1" :params="{year: true,month:true}"
@confirm="startTimeChange1"></u-picker>
</u-form-item>
<u-form-item label="学历:" prop="education" required='true'>
<u-input class="seleclas" v-model="projectobj.education" type="select" @click="Periodshow2 = true"
placeholder='请选择学历' />
<u-select v-model="Periodshow2" :list="PeriodList" @confirm="Periodchange"></u-select>
</u-form-item>
<u-form-item label="专业名称:" prop="major" required='true'>
<u-input style="width:100%;" v-model="projectobj.major" placeholder='请输入专业名称' />
</u-form-item>
</u-form>
<view class="bottbtn" @click="resource">保存</view>
<!-- <view class="bottbtn" @click="delpro">删除</view> -->
<u-toast ref="uToast" />
</view>
</template>
<script>
export default {
data() {
return {
projectobj: {
type: 2,
},
projectRules: {
name: [{
required: true,
message: '请输入公司名称',
trigger: 'blur',
}],
startTime: [{
required: true,
message: '请选择开始时间',
trigger: 'change',
}],
endTime: [{
required: true,
message: '请选择结束时间',
trigger: 'change',
}],
education: [{
required: true,
message: '请输入职位名称',
trigger: 'blur',
}],
major: [{
required: true,
message: '请输入工作内容',
trigger: 'blur',
}],
},
Periodshow: false,
Periodshow1: false,
Periodshow2: false,
PeriodList: [{
value: '专科',
label: '专科'
}, {
value: '本科',
label: '本科'
}, {
value: '硕士研究生',
label: '硕士研究生'
}, {
value: '博士研究生',
label: '博士研究生'
}],
}
},
onReady() {
this.$refs.projectobj.setRules(this.projectRules);
},
onLoad(option) {
let type = option.type;
if (type && type == 1) {
uni.setNavigationBarTitle({
title: '添加教育经历'
});
} else {
uni.setNavigationBarTitle({
title: '编辑教育经历'
});
let caseId = option.caseId
if (caseId) {
this.http.quickGet(`/personal/case/${caseId}`, true).then(res => {
this.projectobj = res.data
})
}
}
},
methods: {
Periodchange(e) {
this.projectobj.education = e[0].label
},
startTimeChange(e) {
this.projectobj.startTime = e.year + '-' + e.month
},
startTimeChange1(e) {
this.projectobj.endTime = e.year + '-' + e.month
},
resource() {
this.$refs.projectobj.validate(valid => {
if (valid) {
if (this.projectobj.caseId) {
this.http.quickPost(`/personal/case/update`, this.projectobj, true).then(res => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: '编辑教育经历成功',
type: 'success',
url: 'pages/personal/personalresume/personalresume'
})
}
})
} else {
console.log(this.projectobj);
this.http.quickPost(`/personal/case/add`, this.projectobj, true).then(res => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: '添加教育经历成功',
type: 'success',
url: 'pages/personal/personalresume/personalresume'
})
}
})
}
}
})
},
//
delpro() {
this.http.quickDelete(`/personal/case/${this.projectobj.caseId}`, true).then(res => {
console.log('res---', res)
this.$refs.uToast.show({
title: '删除工作成功',
type: 'info',
url: 'pages/personal/personalresume/personalresume'
})
})
}
}
}
</script>
<style>
.navTab {
background-color: #ffffff;
width: 96vw;
margin: 2vh auto;
padding: 10px 15px 30px 25px;
border-radius: 5px;
}
.u-form-left__content__label {
color: #808080 !important;
}
.navTab .u-input {
/* height:35px; */
border-bottom: 1px solid #EBEBEB !important;
}
.textare .u-input {
min-height: 100px;
}
.bottbtn {
/* width:94vw; */
margin: 30px 3vw 15px 3vw;
height: 75rpx;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border-radius: 15rpx;
text-align: center;
line-height: 75rpx;
color: #FFFFFF;
font-size: 33rpx;
}
.title {
color: #1A81F9;
text-align: center;
padding: 20rpx 0 0 0;
}
</style>

@ -4,124 +4,124 @@
友情提示完善简历有助于您在竞标时提高竞争力哦
</view>
<view style="display: flex;justify-content: space-between;">
<view >
<view style="display: flex;">
<p style="font-weight: bold;font-size: 36rpx;">{{resumedata.name?resumedata.name:resumedata.userName}}</p>
<img @click="nextpro('basic')" style="width: 14px;height: 14px;margin:8px 5px 0 5px" src="http://image.keyitest.cn/static/resume/edit.png" alt="" />
<!-- <u-tag text="预览" plan type="info" shape='circle' color='#2168F8' bg-color='#F5F7FA' border-color='transparent'/> -->
</view>
<view style="color:#4D4D4D;margin:15px 0;display: flex;align-items: center;">
<view>
<view style="display: flex;align-items: center;">
<p style="font-weight: bold;font-size: 36rpx;">
{{resumedata.name}}
</p>
<p>{{resumedata.sex}}</p>
<p style="margin: 0 5px;"> . </p>
<p>{{resumedata.city}}</p>
</view>
<view style="margin-bottom: 15px;">
<p>{{resumedata.testSkills}}</p>
</view>
</view>
<img v-if="resumedata.avatar" :src='resumedata.avatar' style='width:55px;height:55px;border-radius: 50%' alt="" />
<img v-else style='width:55px;height:55px;border-radius: 50%' src="http://image.keyitest.cn/static/my/mphoto.png" alt="" />
</view>
<view style="display: flex;">
<view style="display: flex;align-items: center;margin-right: 20px;">
<img style="width: 14px;height: 14px;margin-right: 5px;" src="http://image.keyitest.cn/static/resume/phone.png" alt="" />
<p >{{resumedata.phonenumber?resumedata.phonenumber.slice(0,3)+'****'+resumedata.phonenumber.slice(7,11):'无'}}</p>
</view>
<view style="display: flex;align-items: center;">
<img style="width: 14px;height: 14px;margin-right: 5px;" src="/static/crowd/reeamil.png" alt="" />
<p >{{resumedata.email?resumedata.email:'无'}}</p>
</view>
</view>
<!-- 个人优势 -->
<view class="linx"></view>
<view style="display: flex;justify-content: space-between;">
<p style="font-weight: bold;font-size: 36rpx;">个人优势</p>
<img @click="nextpro('advantage')" style="width: 14px;height: 14px;margin:6px 5px 0 5px" src="http://image.keyitest.cn/static/resume/edit.png" alt="" />
<p style="font-weight: bold;font-size: 36rpx;">基本信息</p>
<img @click="nextpro('advantage')" style="width: 14px;height: 14px;margin:6px 5px 0 5px"
src="http://image.keyitest.cn/static/resume/edit.png" alt="" />
</view>
<p v-if='resumedata.personalAdvantage' @click="nextpro('advantage')" style="color: #333333;margin-top:13px;line-height: 40rpx;">{{resumedata.personalAdvantage}}</p>
<p v-if='resumedata.city' @click="nextpro('advantage')"
style="color: #333333;margin-top:13px;line-height: 40rpx;">{{resumedata.city}}</p>
<p v-if='resumedata.testSkills' @click="nextpro('advantage')"
style="color: #333333;margin-top:13px;line-height: 40rpx;">{{resumedata.testSkills}}</p>
<p v-if='resumedata.personalAdvantage' @click="nextpro('advantage')"
style="color: #333333;margin-top:13px;line-height: 40rpx;">{{resumedata.personalAdvantage}}</p>
<p v-else style="color: #333333;margin-top:13px;"></p>
<!-- 工作经历 -->
<view class="linx"></view>
<view style="display: flex;justify-content: space-between;">
<p style="font-weight: bold;font-size: 36rpx;">工作经历</p>
<img @click="nextpro('work')" style="width: 14px;height: 14px;margin:6px 5px 0 5px" src="http://image.keyitest.cn/static/resume/edit.png" alt="" />
<img @click="nextpro('work')" style="width: 14px;height: 14px;margin:6px 5px 0 5px"
src="http://image.keyitest.cn/static/resume/add.png" alt="" />
</view>
<view @click="nextpro('work')" v-if='resumedata.workExperience'
v-html="resumedata.workExperience.replace(/(\r\n|\n|\r)/gm, '<br />')"
style="color: #333333;margin-top:13px;white-space: nowrap"> </view>
<p v-else style="color: #333333;margin-top:13px;"></p>
<!-- <view style="display: flex;justify-content: space-between;margin: 45rpx 0 25rpx 0;">
<p style="font-weight: bold;font-size:14px;">北京关键科技科技有限公司</p>
<view style="display: flex;">
<p style="margin-right:6px;color: #4D4D4D;">2021.08-2024.02</p>
<u-icon name="arrow-right" color="#808080" size="26"></u-icon>
<view v-if="worklist.length>0">
<view v-for="(item,key) of worklist" @click="workdetaols(item)">
<view style="display: flex;justify-content: space-between;margin: 45rpx 0 25rpx 0;">
<p style="font-weight: bold;font-size:14px;">{{item.name}}</p>
<view style="display: flex;">
<p style="margin-right:6px;color: #4D4D4D;">{{item.startTime}}-{{item.endTime}}
</p>
<u-icon name="arrow-right" color="#808080" size="26"></u-icon>
</view>
</view>
<p style="color:#000000">{{item.title}}</p>
<p style="color: #595959;margin-top:25rpx;line-height: 20px;">
{{item.intro}}
</p>
</view>
</view>
<p style="color:#000000">UI设计师 高级 研发部</p>
<p style="color: #595959;margin-top:25rpx;line-height: 20px;">内容1.负责公司核项的UX/UI和品牌设计包括APPCARVODB端后台及新媒体业务
2.制定并编写设计准则和品牌规范通过组件化封装提产品品质和设计效率并在团队中进宣讲...
</p>
<p style="color: #595959;line-height: 20px;">
业绩1.制定并输出设计原则样式指南设计规范等档确保设计致性和可复性
2.成功解决公司粉丝业务需求通过程序点歌为公众号吸引粉丝并保持稳定的新增粉丝数...
</p> -->
<p v-else style="color: #333333;margin-top:13px;"></p>
<!-- 项目经历 -->
<view class="linx"></view>
<view style="display: flex;justify-content: space-between;">
<p style="font-weight: bold;font-size: 36rpx;">项目经历</p>
<img @click="nextpro('pro')" style="width: 14px;height: 14px;margin:6px 5px 0 5px" src="http://image.keyitest.cn/static/resume/add.png" alt="" />
<img @click="nextpro('pro')" style="width: 14px;height: 14px;margin:6px 5px 0 5px"
src="http://image.keyitest.cn/static/resume/add.png" alt="" />
</view>
<view v-if="projectlist.length>0">
<view v-for="(item,key) of projectlist" @click="prodetaols(item)">
<view style="display: flex;justify-content: space-between;margin: 45rpx 0 25rpx 0;">
<p style="font-weight: bold;font-size:14px;">{{item.projectName}}</p>
<view v-for="(item,key) of projectlist" @click="prodetaols(item)">
<view style="display: flex;justify-content: space-between;margin: 45rpx 0 25rpx 0;">
<p style="font-weight: bold;font-size:14px;">{{item.name}}</p>
<view style="display: flex;">
<p style="margin-right:6px;color: #4D4D4D;">{{item.projectPeriod}}
<!-- <span v-if="item.projectPeriod==1">3-10天</span>
<span v-if="item.projectPeriod==2">10-15天</span>
<span v-if="item.projectPeriod==3">15-30天</span>
<span v-if="item.projectPeriod==4">1-2个月</span>
<span v-if="item.projectPeriod==5">3-6个月</span>
<span v-if="item.projectPeriod==6">6-12个月</span>
<span v-if="item.projectPeriod==7">1-2年</span>
<span v-if="item.projectPeriod==8">2年以上</span> -->
<p style="margin-right:6px;color: #4D4D4D;">{{item.startTime}}-{{item.endTime}}
</p>
<u-icon name="arrow-right" color="#808080" size="26"></u-icon>
<u-icon name="arrow-right" color="#808080" size="26"></u-icon>
</view>
</view>
<p style="color:#000000">{{item.role}}</p>
<p style="color:#000000">{{item.title}}</p>
<p style="color: #595959;margin-top:25rpx;line-height: 20px;">
{{item.projectIntro}}
{{item.intro}}
</p>
</view>
</view>
<p v-else style="color: #333333;margin-top:13px;"></p>
<!-- 教育经历 -->
<view class="linx"></view>
<!-- <view style="display: flex;justify-content: space-between;">
<view style="display: flex;justify-content: space-between;">
<p style="font-weight: bold;font-size: 36rpx;">教育经历</p>
<img style="width: 14px;height: 14px;margin:6px 5px 0 5px" src="http://image.keyitest.cn/static/resume/add.png" alt="" />
<img @click="nextpro('edu')" style="width: 14px;height: 14px;margin:6px 5px 0 5px"
src="http://image.keyitest.cn/static/resume/add.png" alt="" />
</view>
<view style="display: flex;align-items: center;margin-top: 15px;">
<img style="width:50px;height: 50px;margin-right: 10px;" src="http://image.keyitest.cn/static/resume/school.png" alt="">
<view>
<view style="display: flex;justify-content: space-between;width:70vw;">
<p style="font-weight: bold;font-size:14px;">西安科技大学</p>
<view v-if="educationlist.length>0">
<view v-for="(item,key) of educationlist" @click="edudetaols(item)">
<view style="display: flex;justify-content: space-between;margin: 45rpx 0 25rpx 0;">
<p style="font-weight: bold;font-size:14px;">{{item.name}}</p>
<view style="display: flex;">
<p style="margin-right:6px;color: #4D4D4D;">2021.08-2024.02</p>
<u-icon name="arrow-right" color="#808080" size="26"></u-icon>
<p style="margin-right:6px;color: #4D4D4D;">{{item.startTime}}-{{item.endTime}}
</p>
<u-icon name="arrow-right" color="#808080" size="26"></u-icon>
</view>
</view>
<p style="margin-right:6px;color: #4D4D4D;margin-top: 10px;">本科 计算机专业</p>
<p style="color:#000000">{{item.education}}</p>
<p style="color: #595959;margin-top:25rpx;line-height: 20px;">
{{item.major}}
</p>
</view>
</view>
<view class="linx"></view>-->
<p v-else style="color: #333333;margin-top:13px;"></p>
<!-- 资格证书 -->
<view class="linx"></view>
<view style="display: flex;justify-content: space-between;">
<p style="font-weight: bold;font-size: 36rpx;">资格证书</p>
<img @click="nextpro('basic')" style="width: 14px;height: 14px;margin:6px 5px 0 5px" src="http://image.keyitest.cn/static/resume/add.png" alt="" />
<img @click="nextpro('basic')" style="width: 14px;height: 14px;margin:6px 5px 0 5px"
src="http://image.keyitest.cn/static/resume/add.png" alt="" />
</view>
<view style="text-align:center;margin: 15px 0;" v-for="it in credentialsList" @click="bookdetaols(it)">
<view style="display: flex;justify-content: space-between;margin: 45rpx 0 25rpx 0;">
<view>
<p style="text-align: left;">{{it.fileName}}</p>
<img @click="priveimg(it.fileUrl)" style="width: 196rpx;height: 139rpx;" :src="it.fileUrl" alt="">
</view>
<view style="display: flex;">
<u-icon name="arrow-right" color="#808080" size="26"></u-icon>
</view>
</view>
<!-- <p style="text-align: left;">{{it.fileName}}</p>
<img @click="priveimg(it.fileUrl)"
style="width: 196rpx;height: 139rpx;" :src="it.fileUrl" alt=""> -->
</view>
<view style="text-align:center;margin: 15px 0;width:200rpx;">
<img @click="priveimg(resumedata.certificateUrl)" v-if="resumedata.certificateUrl" style="width: 196rpx;height: 139rpx;" :src="resumedata.certificateUrl" alt="">
<p v-else style="text-align: left;"></p>
</view>
<view class="linx"></view>
</view>
</template>
@ -130,89 +130,84 @@
export default {
data() {
return {
userinfo:{},
projectlist:[],//
resumedata:{},
action: 'https://www.keyitest.cn/prod-api/upload',
headers:{Authorization:'Bearer '+uni.getStorageSync('accessToken')},
userinfo: {},
projectlist: [], //
worklist: [], //
educationlist: [], //
resumedata: {},
credentialsList: [], //
}
},
onShow() {
this.userinfo=uni.getStorageSync('wxUserInfo');
console.log('个人信息',this.userinfo)
//
this.http.quickGet(`/personal/case/list/${this.userinfo.userId}`,true).then(res=>{
this.projectlist=res.data
console.log('res---',res)
})
this.http.quickGet(`/tester/TesterInfo/resume/${this.userinfo.userId}`,true).then(res=>{
this.resumedata=res.data
console.log('简历信息---',res)
this.http.quickGet(`/personal/resume`, true).then(res => {
//
this.projectlist = res.data.experience.filter(it => it.type == 0)
this.worklist = res.data.experience.filter(it => it.type == 1)
this.educationlist = res.data.experience.filter(it => it.type == 2)
//
this.resumedata = res.data.personalInfo
//
this.credentialsList = res.data.credentials
})
},
onLoad() {
},
methods: {
//
fielUploadSuc(data,index) {
console.log('-',data,'*',index)
if (data.code === 200) {
this.resumedata.certificateUrl=data.filePath
console.log('技能认证',this.resumedata.certificateUrl)
}
},
//
deleteUpfile(index,lists){
console.log('del技能认证',this.resumedata.certificateUrl)
this.resumedata.certificateUrl=''
// if(this.credentialImgList.length>0){
// let id=this.credentialImgList[0].id;
// this.http.quickDelete(`/equestrianinfo/file/${id}`).then(()=>{})
// }
},
errorUpfile(data,index){
// console.log('-',data,'*',index)
// this.$refs.uToast.show({
// title: '',
// type: 'error',
// })
},
//
nextpro(type){
if(type=='basic'){
nextpro(type) {
if (type == 'basic') {
uni.navigateTo({
url: '/pages/personal/personalresume/basicinform'
})
} else if (type == 'advantage') {
uni.navigateTo({
url:'/pages/personal/personalresume/basicinform'
url: '/pages/personal/personalresume/advantage'
})
}else if(type=='advantage'){
} else if (type == 'work') {
uni.navigateTo({
url:'/pages/personal/personalresume/advantage'
url: '/pages/personal/personalresume/workexperience'
})
}else if(type=='work'){
} else if (type == 'pro') {
uni.navigateTo({
url:'/pages/personal/personalresume/workexperience'
url: '/pages/personal/personalresume/projectexperience?type=1'
})
}else if(type=='pro'){
} else if (type == 'edu') {
uni.navigateTo({
url:'/pages/personal/personalresume/projectexperience?type=1'
url: '/pages/personal/personalresume/education?type=1'
})
}
},
//
prodetaols(item){
prodetaols(item) {
uni.navigateTo({
url: `/pages/personal/personalresume/projectexperience?type=2&caseId=${item.caseId}`
})
},
workdetaols(item) {
uni.navigateTo({
url: `/pages/personal/personalresume/workexperience?type=2&caseId=${item.caseId}`
})
},
edudetaols(item) {
uni.navigateTo({
url: `/pages/personal/personalresume/education?type=2&caseId=${item.caseId}`
})
},
bookdetaols(item) {
uni.navigateTo({
url:`/pages/personal/personalresume/projectexperience?type=2&caseId=${item.caseId}`
url: `/pages/personal/personalresume/basicinform?fileItem=${JSON.stringify(item)}&fileList=${JSON.stringify(this.credentialsList.filter(it => it.fileId != item.fileId))}`
})
},
//
priveimg(logourl){
priveimg(logourl) {
// console.log('')
let imgsArray = [];
imgsArray[0] = logourl
uni.previewImage({
current: 0,
urls: imgsArray
current: 0,
urls: imgsArray
});
},
}
@ -220,7 +215,7 @@
</script>
<style>
.accounmt{
.accounmt {
background-color: #ffffff;
/* height: 96vh; */
width: 96vw;
@ -229,17 +224,19 @@
border-radius: 5px;
font-size: 13px;
}
.linx{
.linx {
width: 100%;
height: 1rpx;
opacity: 0.15;
background: #999999;
margin: 15px 0;
}
.beizhu {
font-size: 25rpx;
color: #808080;
margin-bottom: 20rpx;
font-weight: 500;
}
</style>
</style>

@ -1,30 +1,32 @@
<template>
<view class="navTab">
<u-form :model="projectobj" ref="projectobj" label-position='left' label-width='150' >
<u-form-item label="项目名称:" prop="projectName" required='true'>
<u-input style="width:100%;" v-model="projectobj.projectName" placeholder='请输入项目名称'/>
<u-form :model="projectobj" ref="projectobj" label-position='left' label-width='150'>
<u-form-item label="项目名称:" prop="name" required='true'>
<u-input style="width:100%;" v-model="projectobj.name" placeholder='请输入项目名称' />
</u-form-item>
<u-form-item label="项目周期:" prop="projectPeriod" required='true' >
<!-- <u-input style="width:100%;" @click="show=true" v-model="projectobj.projectPeriod" placeholder='请选择项目周期'/> -->
<u-input class="seleclas" v-model="projectobj.projectPeriod" type="select" @click="Periodshow = true" placeholder='请选择' />
<u-select v-model="Periodshow" :list="PeriodList" @confirm="Periodchange"></u-select>
<!-- <u-calendar v-model="show" :mode="mode"
max-date='2050-01-01'
@change="Periodchange">
<view slot="tooltip"> <view class="title"> </view> </view>
</u-calendar> -->
<!-- <view class="button" @click="show=true">请选择项目周期项目周期</view> -->
<u-form-item label="开始时间:" prop="startTime" required='true'>
<u-input class="seleclas" v-model="projectobj.startTime" type="select" @click="Periodshow = true"
placeholder='请选择' />
<u-picker mode="time" v-model="Periodshow" :params="{year: true,month:true}"
@confirm="startTimeChange"></u-picker>
</u-form-item>
<u-form-item label="担任角色:" prop="role" required='true'>
<u-input style="width:100%;" v-model="projectobj.role" placeholder='请输入担任角色'/>
<u-form-item label="结束时间:" prop="endTime" required='true'>
<u-input class="seleclas" v-model="projectobj.endTime" type="select" @click="Periodshow1 = true"
placeholder='请选择' />
<u-picker mode="time" v-model="Periodshow1" :params="{year: true,month:true}"
@confirm="startTimeChange1"></u-picker>
</u-form-item>
<u-form-item label="应用技术:" prop="applyTech" >
<u-input style="width:100%;" v-model="projectobj.applyTech" placeholder='请输入应用技术'/>
<u-form-item label="担任角色:" prop="title" required='true'>
<u-input style="width:100%;" v-model="projectobj.title" placeholder='请输入担任角色' />
</u-form-item>
<u-form-item label="项目简介:" prop="projectIntro" required='true' class="textare">
<u-input style="width:100%;height: 100px;" border='true' type='textarea' v-model="projectobj.projectIntro" placeholder='请输入项目简介'/>
<u-form-item label="应用技术:" prop="applyTech">
<u-input style="width:100%;" v-model="projectobj.applyTech" placeholder='请输入应用技术' />
</u-form-item>
<u-form-item label="项目简介:" prop="intro" required='true' class="textare">
<u-input style="width:100%;height: 100px;" border='true' type='textarea'
v-model="projectobj.intro" placeholder='请输入项目简介' />
</u-form-item>
</u-form>
<view class="bottbtn" @click="resource">保存</view>
<!-- <view class="bottbtn" @click="delpro">删除</view> -->
@ -36,89 +38,97 @@
export default {
data() {
return {
projectobj:{userId:'',caseId:'',projectName:'',projectPeriod:'',role:'',applyTech:'',projectIntro:''},
projectobj: {
type: 0,
},
projectRules: {
projectName: [{ required: true, message: '请输入项目名称', trigger: 'change',}],
projectPeriod: [{ required: true, message: '请选择项目周期', trigger: 'change',}],
role: [{ required: true, message: '请输入担任角色', trigger: 'change',}],
projectIntro: [{ required: true, message: '请输入项目简介', trigger: 'change',}],
name: [{
required: true,
message: '请输入项目名称',
trigger: 'blur',
}],
startTime: [{
required: true,
message: '请选择开始时间',
trigger: 'change',
}],
endTime: [{
required: true,
message: '请选择开始时间',
trigger: 'change',
}],
title: [{
required: true,
message: '请输入担任角色',
trigger: 'blur',
}],
applyTech: [{
required: true,
message: '请输入应用技术',
trigger: 'blur',
}],
intro: [{
required: true,
message: '请输入项目简介',
trigger: 'blur',
}],
},
Periodshow: false,
PeriodList:[{value:'1',label:'3-10天'},{value:'2',label:'10-15天'},{value:'3',label:'15-30天'},{value:'4',label:'1-2个月'},
{value:'5',label:'3-6个月'},{value:'6',label:'6-12个月'},{value:'7',label:'1-2年'},{value:'8',label:'2年以上'}],
mode: 'range'
Periodshow1: false,
}
},
onReady(){
onReady() {
this.$refs.projectobj.setRules(this.projectRules);
},
onLoad(option) {
console.log('option---',option)
let type=option.type;
if(type&&type==1){
let type = option.type;
if (type && type == 1) {
uni.setNavigationBarTitle({
title: '添加项目经历'
});
}else{
} else {
uni.setNavigationBarTitle({
title: '编辑项目经历'
});
let caseId=option.caseId
if(caseId){
this.http.quickGet(`/personal/case/${caseId}`,true).then(res=>{
console.log('项目信息---',res)
let prodata=res.data;
if(prodata){
let {caseId,projectName,projectPeriod,role,applyTech,projectIntro}=prodata
this.projectobj={caseId,projectName,projectPeriod,role,applyTech,projectIntro}
}
let caseId = option.caseId
if (caseId) {
this.http.quickGet(`/personal/case/${caseId}`, true).then(res => {
this.projectobj = res.data
})
}
}
},
methods: {
Periodchange(e){
this.projectobj.projectPeriod=e[0].label
startTimeChange(e) {
this.projectobj.startTime = e.year + '-' + e.month
},
startTimeChange1(e) {
this.projectobj.endTime = e.year + '-' + e.month
},
resource(){
console.log('projectobj',this.projectobj)
resource() {
this.$refs.projectobj.validate(valid => {
if (valid) {
let wxUserInfo = uni.getStorageSync('wxUserInfo');
let data={
userId:wxUserInfo.userId,
caseId:this.projectobj.caseId,
projectName:this.projectobj.projectName,
projectPeriod:this.projectobj.projectPeriod,
role:this.projectobj.role,
applyTech:this.projectobj.applyTech,
projectIntro:this.projectobj.projectIntro,
}
console.log('data',data)
if(this.projectobj.caseId){
//
// delete /personal/case/{caseId}
this.http.quickPost(`/personal/case/update`,data,true).then(res=>{
if(res.data.code==200){
if (valid) {
if (this.projectobj.caseId) {
this.http.quickPost(`/personal/case/update`, this.projectobj, true).then(res => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: '编辑项目成功',
type: 'success',
url:'pages/personal/personalresume/personalresume'
url: 'pages/personal/personalresume/personalresume'
})
}
})
}else{
this.http.quickPost(`/personal/case/add`,data,true).then(res=>{
if(res.data.code==200){
} else {
console.log( this.projectobj);
this.http.quickPost(`/personal/case/add`, this.projectobj, true).then(res => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: '添加项目成功',
type: 'success',
url:'pages/personal/personalresume/personalresume'
url: 'pages/personal/personalresume/personalresume'
})
}
})
@ -127,13 +137,13 @@
})
},
//
delpro(){
this.http.quickDelete(`/personal/case/${this.projectobj.caseId}`,true).then(res=>{
console.log('res---',res)
delpro() {
this.http.quickDelete(`/personal/case/${this.projectobj.caseId}`, true).then(res => {
console.log('res---', res)
this.$refs.uToast.show({
title: '删除项目成功',
type: 'info',
url:'pages/personal/personalresume/personalresume'
url: 'pages/personal/personalresume/personalresume'
})
})
}
@ -142,38 +152,43 @@
</script>
<style>
.navTab{
.navTab {
background-color: #ffffff;
width: 96vw;
margin: 2vh auto;
padding: 10px 15px 30px 25px;
border-radius: 5px;
}
.u-form-left__content__label{
color:#808080!important;
.u-form-left__content__label {
color: #808080 !important;
}
.navTab .u-input{
.navTab .u-input {
/* height:35px; */
border-bottom: 1px solid #EBEBEB!important;
border-bottom: 1px solid #EBEBEB !important;
}
.textare .u-input{
min-height:100px;
.textare .u-input {
min-height: 100px;
}
.bottbtn{
.bottbtn {
/* width:94vw; */
margin:30px 3vw 15px 3vw;
height:75rpx;
margin: 30px 3vw 15px 3vw;
height: 75rpx;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border-radius:15rpx;
border-radius: 15rpx;
text-align: center;
line-height:75rpx;
line-height: 75rpx;
color: #FFFFFF;
font-size: 33rpx;
}
.title{
.title {
color: #1A81F9;
text-align: center;
padding: 20rpx 0 0 0;
}
</style>
</style>

@ -1,12 +1,32 @@
<template>
<view class='navTab'>
<p style='font-size: 18px;font-weight: bold;margin: 10px 0 20px 0;'>工作经历</p>
<u-input style="width:100%;" border='true' type='textarea' height='300' maxlength='3000' v-model="workexe" placeholder='请输入工作经历'/>
<p style="margin: 10px 0;">工作经历填写示例</p>
<p style='font-size:12px;color:#595959 ;'>2017.5-2021.7 西安未央软件有限公司 软件测试工程师</p>
<p style='font-size:12px;color:#595959 ;margin:5px 0;'>2013.9-2017.4. 西安大唐软件有限公司 软件测试工程师</p>
<p style='font-size:12px;color:#595959 ;'>2009.9-2013.7 西安科技大学 软件工程专业 本科</p>
<view class="navTab">
<u-form :model="projectobj" ref="projectobj" label-position='left' label-width='150'>
<u-form-item label="公司名称:" prop="name" required='true'>
<u-input style="width:100%;" v-model="projectobj.name" placeholder='请输入公司名称' />
</u-form-item>
<u-form-item label="开始时间:" prop="startTime" required='true'>
<u-input class="seleclas" v-model="projectobj.startTime" type="select" @click="Periodshow = true"
placeholder='请选择' />
<u-picker mode="time" v-model="Periodshow" :params="{year: true,month:true}"
@confirm="startTimeChange"></u-picker>
</u-form-item>
<u-form-item label="结束时间:" prop="endTime" required='true'>
<u-input class="seleclas" v-model="projectobj.endTime" type="select" @click="Periodshow1 = true"
placeholder='请选择' />
<u-picker mode="time" v-model="Periodshow1" :params="{year: true,month:true}"
@confirm="startTimeChange1"></u-picker>
</u-form-item>
<u-form-item label="职位名称:" prop="title" required='true'>
<u-input style="width:100%;" v-model="projectobj.title" placeholder='请输入职位名称' />
</u-form-item>
<u-form-item label="工作内容:" prop="intro" required='true' class="textare">
<u-input style="width:100%;height: 100px;" border='true' type='textarea'
v-model="projectobj.intro" placeholder='请输入工作内容' />
</u-form-item>
</u-form>
<view class="bottbtn" @click="resource">保存</view>
<!-- <view class="bottbtn" @click="delpro">删除</view> -->
<u-toast ref="uToast" />
</view>
</template>
@ -14,77 +34,151 @@
export default {
data() {
return {
workexe:''
projectobj: {
type: 1,
},
projectRules: {
name: [{
required: true,
message: '请输入公司名称',
trigger: 'blur',
}],
startTime: [{
required: true,
message: '请选择开始时间',
trigger: 'change',
}],
endTime: [{
required: true,
message: '请选择结束时间',
trigger: 'change',
}],
title: [{
required: true,
message: '请输入职位名称',
trigger: 'blur',
}],
intro: [{
required: true,
message: '请输入工作内容',
trigger: 'blur',
}],
},
Periodshow: false,
Periodshow1: false,
}
},
onLoad() {
let wxUserInfo = uni.getStorageSync('wxUserInfo');
this.http.quickGet(`/tester/TesterInfo/resume/${wxUserInfo.userId}`,true).then(res=>{
this.workexe=res.data.workExperience
if(!this.workexe){
uni.setNavigationBarTitle({
title: '添加工作经历'
});
}else{
uni.setNavigationBarTitle({
title: '编辑工作经历'
});
onReady() {
this.$refs.projectobj.setRules(this.projectRules);
},
onLoad(option) {
let type = option.type;
if (type && type == 1) {
uni.setNavigationBarTitle({
title: '添加工作经历'
});
} else {
uni.setNavigationBarTitle({
title: '编辑工作经历'
});
let caseId = option.caseId
if (caseId) {
this.http.quickGet(`/personal/case/${caseId}`, true).then(res => {
this.projectobj = res.data
})
}
console.log('简历信息---',res)
})
}
},
methods: {
resource(){
let wxUserInfo = uni.getStorageSync('wxUserInfo');
if(!this.workexe){
uni.showToast({ title: '请输入工作经历', icon: 'none', duration: 1000 });
return;
}
if(this.workexe.length>3000){
uni.showToast({ title: '最多可输入3000字', icon: 'none', duration: 1000 });
return;
}
let data={
userId:wxUserInfo.userId,
workExperience:this.workexe,
}
this.http.quickPost(`/tester/TesterInfo/experience`,data,true).then(res=>{
if(res.data.code==200){
uni.showToast({ title: '工作经历编辑成功', icon: 'success', duration: 2000 });
setTimeout(()=>{
uni.navigateBack({
delta:1
startTimeChange(e) {
this.projectobj.startTime = e.year + '-' + e.month
},
startTimeChange1(e) {
this.projectobj.endTime = e.year + '-' + e.month
},
resource() {
this.$refs.projectobj.validate(valid => {
if (valid) {
if (this.projectobj.caseId) {
this.http.quickPost(`/personal/case/update`, this.projectobj, true).then(res => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: '编辑工作成功',
type: 'success',
url: 'pages/personal/personalresume/personalresume'
})
}
})
} else {
console.log( this.projectobj);
this.http.quickPost(`/personal/case/add`, this.projectobj, true).then(res => {
if (res.data.code == 200) {
this.$refs.uToast.show({
title: '添加工作成功',
type: 'success',
url: 'pages/personal/personalresume/personalresume'
})
}
})
},1000)
}
}
})
},
//
delpro() {
this.http.quickDelete(`/personal/case/${this.projectobj.caseId}`, true).then(res => {
console.log('res---', res)
this.$refs.uToast.show({
title: '删除工作成功',
type: 'info',
url: 'pages/personal/personalresume/personalresume'
})
})
}
}
}
</script>
<style>
.navTab{
.navTab {
background-color: #ffffff;
width: 96vw;
margin: 2vh auto;
padding: 10px 15px 30px 25px;
border-radius: 5px;
}
/* .navTab .u-input{
min-height:200px;
} */
.bottbtn{
margin:30px 3vw 15px 3vw;
height:75rpx;
.u-form-left__content__label {
color: #808080 !important;
}
.navTab .u-input {
/* height:35px; */
border-bottom: 1px solid #EBEBEB !important;
}
.textare .u-input {
min-height: 100px;
}
.bottbtn {
/* width:94vw; */
margin: 30px 3vw 15px 3vw;
height: 75rpx;
background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border-radius:15rpx;
border-radius: 15rpx;
text-align: center;
line-height:75rpx;
line-height: 75rpx;
color: #FFFFFF;
font-size: 33rpx;
}
</style>
.title {
color: #1A81F9;
text-align: center;
padding: 20rpx 0 0 0;
}
</style>
Loading…
Cancel
Save