认证流程+新页面

main
lijingyu007 6 months ago
parent 65c6badbee
commit 2adaf1659c
  1. 117
      pages.json
  2. 10
      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. 268
      pages/personal/personalresume/advantage.vue
  8. 336
      pages/personal/personalresume/basicinform.vue
  9. 203
      pages/personal/personalresume/education.vue
  10. 249
      pages/personal/personalresume/personalresume.vue
  11. 189
      pages/personal/personalresume/projectexperience.vue
  12. 190
      pages/personal/personalresume/workexperience.vue

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

@ -421,9 +421,17 @@
}) })
} else { } else {
// uni.showToast({ title: '线', icon: 'none', duration: 1000 }); // uni.showToast({ title: '线', icon: 'none', duration: 1000 });
const userinform = uni.getStorageSync('wxUserInfo');
if (userinform.companyStatus == 2) {
uni.navigateTo({ uni.navigateTo({
url: './outsourcing/outsourcing' 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="titlePeo" style="margin-bottom: 0">
<view class="titletopt"> <view class="titletopt">
<image src="../../../static/crowd/rihhj.png" alt="" /> <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="" /> <image src="../../../static/crowd/lesftt.png" alt="" />
</view> </view>
<view class="titlebot"> <view class="titlebot">
@ -193,7 +193,7 @@
<image class="tranimg" src="http://image.keyitest.cn/static/index/renliwb/people5.png" mode=""></image> <image class="tranimg" src="http://image.keyitest.cn/static/index/renliwb/people5.png" mode=""></image>
<view style="position: relative;height:40px"> <view style="position: relative;height:40px">
<view class="lookmore" @click="peopleClick">查看更多简历</view> <view class="lookmore" @click="lookMoreFn">查看更多</view>
</view> </view>
@ -623,6 +623,12 @@
url: '/pages/personal/login' url: '/pages/personal/login'
}) })
}, },
lookMoreFn() {
uni.navigateTo({
url: '/pages/index/outsourcing/moreCloud'
})
},
// //
certifconfirm() { certifconfirm() {
this.certifshow = false; this.certifshow = false;

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

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

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

@ -1,12 +1,32 @@
<template> <template>
<view class='navTab'> <view class="navTab">
<p style='font-size: 18px;font-weight: bold;margin: 10px 0 20px 0;'>工作经历</p> <u-form :model="projectobj" ref="projectobj" label-position='left' label-width='150'>
<u-input style="width:100%;" border='true' type='textarea' height='300' maxlength='3000' v-model="workexe" placeholder='请输入工作经历'/> <u-form-item label="公司名称:" prop="name" required='true'>
<p style="margin: 10px 0;">工作经历填写示例</p> <u-input style="width:100%;" v-model="projectobj.name" placeholder='请输入公司名称' />
<p style='font-size:12px;color:#595959 ;'>2017.5-2021.7 西安未央软件有限公司 软件测试工程师</p> </u-form-item>
<p style='font-size:12px;color:#595959 ;margin:5px 0;'>2013.9-2017.4. 西安大唐软件有限公司 软件测试工程师</p> <u-form-item label="开始时间:" prop="startTime" required='true'>
<p style='font-size:12px;color:#595959 ;'>2009.9-2013.7 西安科技大学 软件工程专业 本科</p> <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="resource">保存</view>
<!-- <view class="bottbtn" @click="delpro">删除</view> -->
<u-toast ref="uToast" />
</view> </view>
</template> </template>
@ -14,59 +34,115 @@
export default { export default {
data() { data() {
return { 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() { onReady() {
this.$refs.projectobj.setRules(this.projectRules);
let wxUserInfo = uni.getStorageSync('wxUserInfo'); },
this.http.quickGet(`/tester/TesterInfo/resume/${wxUserInfo.userId}`,true).then(res=>{ onLoad(option) {
this.workexe=res.data.workExperience let type = option.type;
if(!this.workexe){ if (type && type == 1) {
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: '添加工作经历' title: '添加工作经历'
}); });
}else{
} else {
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: '编辑工作经历' title: '编辑工作经历'
}); });
} let caseId = option.caseId
console.log('简历信息---',res) if (caseId) {
this.http.quickGet(`/personal/case/${caseId}`, true).then(res => {
this.projectobj = res.data
}) })
}
}
}, },
methods: { methods: {
resource(){ startTimeChange(e) {
let wxUserInfo = uni.getStorageSync('wxUserInfo'); this.projectobj.startTime = e.year + '-' + e.month
if(!this.workexe){ },
uni.showToast({ title: '请输入工作经历', icon: 'none', duration: 1000 }); startTimeChange1(e) {
return; this.projectobj.endTime = e.year + '-' + e.month
} },
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
})
},1000)
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> </script>
<style> <style>
.navTab{ .navTab {
background-color: #ffffff; background-color: #ffffff;
width: 96vw; width: 96vw;
margin: 2vh auto; margin: 2vh auto;
@ -74,17 +150,35 @@
border-radius: 5px; border-radius: 5px;
} }
/* .navTab .u-input{
min-height:200px; .u-form-left__content__label {
} */ color: #808080 !important;
.bottbtn{ }
margin:30px 3vw 15px 3vw;
height:75rpx; .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); background: linear-gradient(90deg, #5EA6FD, #1A81F9);
border-radius:15rpx; border-radius: 15rpx;
text-align: center; text-align: center;
line-height:75rpx; line-height: 75rpx;
color: #FFFFFF; color: #FFFFFF;
font-size: 33rpx; font-size: 33rpx;
} }
.title {
color: #1A81F9;
text-align: center;
padding: 20rpx 0 0 0;
}
</style> </style>
Loading…
Cancel
Save