Browse Source

上传修改

master
前端-胡立永 2 months ago
parent
commit
abda6ae90e
32 changed files with 802 additions and 148 deletions
  1. +0
    -12
      api/api.js
  2. +6
    -5
      api/model/company.js
  3. +8
    -2
      api/model/contact.js
  4. +7
    -1
      api/model/login.js
  5. +1
    -0
      api/model/resume.js
  6. +1
    -0
      api/model/vip.js
  7. +18
    -6
      api/model/work.js
  8. +10
    -6
      components/list/bossList/bossItem.vue
  9. +3
    -1
      components/list/bossList/index.vue
  10. +6
    -1
      components/list/userList/index.vue
  11. +16
    -2
      components/list/userList/userItem.vue
  12. +1
    -1
      components/list/userList/userListSwipe.vue
  13. +1
    -1
      components/list/workList/workListSwipe.vue
  14. +49
    -17
      components/screen/screenWork.vue
  15. +1
    -1
      config.js
  16. +2
    -2
      pages.json
  17. +19
    -5
      pages/index/center.vue
  18. +4
    -1
      pages/index/index.vue
  19. +11
    -0
      pages_order/auth/certificationEnterprise.vue
  20. +20
    -2
      pages_order/kepp/AnnualExpenditure.vue
  21. +4
    -4
      pages_order/mine/MemberRecharge.vue
  22. +33
    -0
      pages_order/mine/collect.vue
  23. +1
    -1
      pages_order/mine/contactRecord.vue
  24. +435
    -7
      pages_order/mine/enterpriseInfo.vue
  25. +20
    -0
      pages_order/mine/releaseWork.vue
  26. +13
    -1
      pages_order/mine/setting.vue
  27. +16
    -8
      pages_order/work/addResume.vue
  28. +16
    -20
      pages_order/work/bossDetail.vue
  29. +50
    -5
      pages_order/work/jobPosting.vue
  30. +24
    -30
      pages_order/work/userDetail.vue
  31. +5
    -5
      pages_order/work/workDetail.vue
  32. +1
    -1
      store/store.js

+ 0
- 12
api/api.js View File

@ -99,18 +99,6 @@ const config = {
//我的找活
employeeQueryResumeByUserId: {
url: '/api/employee/queryResumeByUserId',
method: 'GET',
auth: true,
},
//联系记录-我看过谁
employeeQueryWatchWho: {
url: '/api/employee/queryWatchWho',
method: 'GET',
auth: true,
},
//电子合同-获取电子合同列表 //电子合同-获取电子合同列表
employeeQueryContractList: { employeeQueryContractList: {
url: '/api/employee/queryContractList', url: '/api/employee/queryContractList',


+ 6
- 5
api/model/company.js View File

@ -2,17 +2,18 @@
// 企业相关接口 // 企业相关接口
const api = { const api = {
// 查看企业信息
getCompany: {
url: '/company/updateUser',
// 根据企业id查看企业信息
queryCompany: {
url: '/employ/company/queryCompany',
method: 'GET', method: 'GET',
}, },
// 修改企业信息 // 修改企业信息
getCompany: {
url: '/company/updateUser',
updateCompany: {
url: '/employ/company/updateCompany',
method: 'POST', method: 'POST',
auth : true, auth : true,
limit : 1500, limit : 1500,
showLoading : true,
}, },
} }

+ 8
- 2
api/model/contact.js View File

@ -14,9 +14,15 @@ const api = {
method: 'GET', method: 'GET',
auth: true, auth: true,
}, },
//会员中心-联系记录-我看过谁
//会员中心-联系记录-我看过谁(我看过谁的简历)
bossQueryWatchWho: { bossQueryWatchWho: {
url: '/api/boss/queryWatchWho',
url: '/employ/check/queryWatchWhoBoss',// queryWatchWhoBoss
method: 'GET',
auth: true,
},
//会员中心-联系记录-我看过谁 (我看过谁的招工)
queryWatchWhoEmployee: {
url: '/employ/check/queryWatchWhoEmployee',
method: 'GET', method: 'GET',
auth: true, auth: true,
}, },


+ 7
- 1
api/model/login.js View File

@ -35,7 +35,7 @@ const api = {
auth: true, auth: true,
limit : 500, limit : 500,
}, },
// 获取个人信息
// 获取绑定手机号
bindPhone: { bindPhone: {
url: '/api/login/bindPhone', url: '/api/login/bindPhone',
method: 'GET', method: 'GET',
@ -43,6 +43,12 @@ const api = {
limit : 500, limit : 500,
showLoading : true, showLoading : true,
}, },
// 获取个人信息
getDataByUserId: {
url: '/employ/user/getDataByUserId',
method: 'GET',
auth: true,
},
} }
export default api export default api

+ 1
- 0
api/model/resume.js View File

@ -8,6 +8,7 @@ const api = {
method: 'POST', method: 'POST',
auth : true, auth : true,
limit : 1500, limit : 1500,
showLoading : true,
}, },
// 我的简历 // 我的简历
queryResumeByUserId: { queryResumeByUserId: {


+ 1
- 0
api/model/vip.js View File

@ -8,6 +8,7 @@ const api = {
method: 'POST', method: 'POST',
auth : true, auth : true,
limit : 1500, limit : 1500,
showLoading : true,
}, },
} }

+ 18
- 6
api/model/work.js View File

@ -8,11 +8,29 @@ const api = {
method: 'POST', method: 'POST',
auth : true, auth : true,
limit : 1500, limit : 1500,
showLoading : true,
},
// 删除工作信息
deleteJob: {
url: '/employ/job/deleteJob',
method: 'POST',
auth : true,
limit : 1500,
showLoading : true,
},
// 修改工作信息
updateJob: {
url: '/employ/job/updateJob',
method: 'POST',
auth : true,
limit : 1500,
showLoading : true,
}, },
// 首页-根据Id查看工作详情 // 首页-根据Id查看工作详情
employeeQueryJobList: { employeeQueryJobList: {
url: '/employ/job/queryJobList', url: '/employ/job/queryJobList',
method: 'GET', method: 'GET',
auth : true,
}, },
// 首页-查询工作信息列表 // 首页-查询工作信息列表
employeeQueryJobById: { employeeQueryJobById: {
@ -25,12 +43,6 @@ const api = {
method: 'GET', method: 'GET',
auth : true, auth : true,
}, },
// 首页-修改工作信息
updateJob: {
url: '/employ/job/updateJob',
method: 'GET',
auth : true,
},
} }
export default api export default api

+ 10
- 6
components/list/bossList/bossItem.vue View File

@ -12,15 +12,18 @@
</view> </view>
</view> </view>
<view class="tips"> <view class="tips">
湖南江海国际经济技术合作有限公司
<!-- 湖南江海国际经济技术合作有限公司 -->
{{ item.employAhthenticationCompany.companyName }}
</view> </view>
</view> </view>
<view class="right"> <view class="right">
一个小时前
<!-- 一个小时前 -->
</view> </view>
</view> </view>
<view class="item" <view class="item"
:key="index" :key="index"
@click.stop="$utils.navigateTo('/pages_order/work/workDetail?id=' + t.id)"
v-if="index < 2"
v-for="(t, index) in item.employJobList"> v-for="(t, index) in item.employJobList">
<view class="top"> <view class="top">
<view class="title"> <view class="title">
@ -45,15 +48,16 @@
</view> </view>
<view class="bottom"> <view class="bottom">
<view class="address"> <view class="address">
长沙 | 经验不限 | 学历不限
长沙 | {{ t.workAge }} | {{ t.qulification }}
</view> </view>
<view class="time"> <view class="time">
09月23日 1620
{{ $dayjs(t.createTime).format('YYYY-MM-DD') }}
</view> </view>
</view> </view>
</view> </view>
<view class="more">
查看全部5个职位
<view class="more"
v-if="item.jobNum > 2">
查看全部{{ item.jobNum }}个职位
</view> </view>
</view> </view>
</template> </template>


+ 3
- 1
components/list/bossList/index.vue View File

@ -5,11 +5,13 @@
@scrolltolower="loadMoreData"> @scrolltolower="loadMoreData">
<view class="bossList"> <view class="bossList">
<view <view
@click="$utils.navigateTo('/pages_order/boss/bossDetail?id=' + 123)"
@click="$utils.navigateTo('/pages_order/work/bossDetail?id=' + item.id)"
:key="index" :key="index"
v-for="(item, index) in list"> v-for="(item, index) in list">
<bossItem :item="item"/> <bossItem :item="item"/>
</view> </view>
<uv-empty mode="list" v-if="list.length == 0"></uv-empty>
</view> </view>
</scroll-view> </scroll-view>
</template> </template>


+ 6
- 1
components/list/userList/index.vue View File

@ -20,6 +20,11 @@
</template> </template>
<script> <script>
let objKey = {
areaId : 'expectAddress',
}
import userItem from './userItem.vue' import userItem from './userItem.vue'
export default { export default {
components : { components : {
@ -60,7 +65,7 @@
if(params && params.length > 0){ if(params && params.length > 0){
params.forEach(n => { params.forEach(n => {
queryParams[n.name] = n.value
queryParams[objKey[n.name] || n.name] = n.value
}) })
} }


+ 16
- 2
components/list/userList/userItem.vue View File

@ -46,7 +46,8 @@
<!-- 09月23日 1620 --> <!-- 09月23日 1620 -->
{{ $dayjs(createTime || item.createTime).format('YYYY-MM-DD') }} {{ $dayjs(createTime || item.createTime).format('YYYY-MM-DD') }}
</view> </view>
<view class="phone">
<view class="phone"
@click.stop="callPhone">
<image src="/static/image/home/phone.png" mode=""></image> <image src="/static/image/home/phone.png" mode=""></image>
联系他 联系他
</view> </view>
@ -79,9 +80,22 @@
headImage(){ headImage(){
return this.image || this.item.headImage || '/static/image/center/headImage.png' return this.image || this.item.headImage || '/static/image/center/headImage.png'
}, },
phone(){
return this.item.hanHaiMember && this.item.hanHaiMember.phone
},
}, },
methods: { methods: {
callPhone(){
uni.makePhoneCall({
phoneNumber: this.phone,
success() {
console.log('安卓拨打成功');
},
fail() {
console.log('安卓拨打失败');
}
})
},
} }
} }
</script> </script>


+ 1
- 1
components/list/userList/userListSwipe.vue View File

@ -3,7 +3,7 @@
<view <view
v-for="(item, index) in list" v-for="(item, index) in list"
class="item" class="item"
:key="index"
:key="item.id"
> >
<uv-swipe-action-item <uv-swipe-action-item
@click="e => clickSwipeAction(e, item)" @click="e => clickSwipeAction(e, item)"


+ 1
- 1
components/list/workList/workListSwipe.vue View File

@ -3,7 +3,7 @@
<view <view
v-for="(item, index) in list" v-for="(item, index) in list"
class="item" class="item"
:key="index"
:key="item.id"
> >
<uv-swipe-action-item <uv-swipe-action-item
@click="e => clickSwipeAction(e, item)" @click="e => clickSwipeAction(e, item)"


+ 49
- 17
components/screen/screenWork.vue View File

@ -48,16 +48,16 @@
<view class="list"> <view class="list">
<view class="item" <view class="item"
v-for="(item, index) in list" v-for="(item, index) in list"
:key="index">
:key="item.type">
<view class="title"> <view class="title">
{{ item.title }}
{{ role ? item.bossTitle : item.title }}
</view> </view>
<view class="tagList"> <view class="tagList">
<view <view
:class="{act : i == item.index}" :class="{act : i == item.index}"
@click="clickTag(item, i)" @click="clickTag(item, i)"
v-for="(t, i) in item.tag" v-for="(t, i) in item.tag"
:key="t">
:key="t.label">
{{ t.label }} {{ t.label }}
</view> </view>
</view> </view>
@ -96,10 +96,10 @@
color: '#333', color: '#333',
activeColor: '#3796F8', activeColor: '#3796F8',
child: [ child: [
{
label: '全国',
value: 0,
},
// {
// label: '',
// value: 0,
// },
] ]
}, },
typeId: { typeId: {
@ -136,13 +136,24 @@
// }, // },
{ {
title : '您希望从事的工种', title : '您希望从事的工种',
tag : ['电工', '焊工', '叉车', '其他'],
bossTitle : '您希望招工的工种',
tag : [],
index : 0, index : 0,
type : 'typeId',
}, },
{ {
title : '您希望从事的工作性质', title : '您希望从事的工作性质',
tag : ['全职', '临时工',],
bossTitle : '您希望招工的工作性质',
tag : [],
index : 0,
type : 'natureId',
},
{
title : '您希望从事的工作地区',
bossTitle : '您希望招工的工作地区',
tag : [],
index : 0, index : 0,
type : 'areaId',
}, },
] ]
} }
@ -169,10 +180,15 @@
...mapState(['jobTypeList', 'natureList', 'addressList']), ...mapState(['jobTypeList', 'natureList', 'addressList']),
}, },
mounted() { mounted() {
setTimeout(this.initData, 300)
setTimeout(this.initData, 500)
}, },
methods: { methods: {
initData(){ initData(){
if(this.addressList.length == 0){
setTimeout(this.initData, 500)
}
// //
this.jobTypeList.forEach(n => { this.jobTypeList.forEach(n => {
this.typeId.child.push({ this.typeId.child.push({
@ -191,13 +207,13 @@
}) })
this.list[1].tag = this.natureId.child this.list[1].tag = this.natureId.child
// if(this.addressList[0]){
// this.areaId.value = this.addressList[0].id
// this.areaId.label = this.addressList[0].name
if(this.addressList[0]){
this.areaId.value = this.addressList[0].id
this.areaId.label = this.addressList[0].adress
// this.defaultValue[0] = this.addressList[0].id
// this.$forceUpdate()
// }
this.defaultValue.slice(0, 1, this.addressList[0].id)
this.$forceUpdate()
}
// //
this.addressList.forEach(n => { this.addressList.forEach(n => {
@ -206,10 +222,10 @@
value: n.id, value: n.id,
}) })
}) })
this.list[2].tag = this.areaId.child
}, },
clickTag(item, i){ clickTag(item, i){
console.log(i);
item.index = i item.index = i
}, },
@ -280,6 +296,22 @@
}, },
submit(){ submit(){
this.result = []
this.list.forEach(n => {
let t = n.tag[n.index]
this.result.push({
name: n.type,
label : t.label,
value : t.value
})
})
this.result = this.result.filter(item => this.defaultValue.indexOf(item.value) == -1);
this.$emit('clickItem', this.result)
this.$refs.popup.close()
}, },
} }
} }


+ 1
- 1
config.js View File

@ -7,7 +7,7 @@ import uvUI from '@/uni_modules/uv-ui-tools'
Vue.use(uvUI); Vue.use(uvUI);
// 当前环境 // 当前环境
const type = 'prod'
const type = 'dev'
// 环境配置 // 环境配置


+ 2
- 2
pages.json View File

@ -80,8 +80,8 @@
{ {
"path": "mine/releaseWork", "path": "mine/releaseWork",
"style": { "style": {
"navigationBarTextStyle": "white"
"navigationBarTextStyle": "white",
"enablePullDownRefresh": true
} }
}, },
{ {


+ 19
- 5
pages/index/center.vue View File

@ -9,7 +9,7 @@
</view> </view>
<view class="info"> <view class="info">
<view class="name" <view class="name"
@click="$utils.navigateTo('/pages_order/mine/updateUser')">
@click="$utils.navigateTo('/pages_order/mine/updateUser?back=true')">
{{username}} {{username}}
<view> <view>
<uv-icon name="edit-pen" size="40rpx" color="#fff"></uv-icon> <uv-icon name="edit-pen" size="40rpx" color="#fff"></uv-icon>
@ -84,8 +84,13 @@
<view class="item" <view class="item"
@click="$utils.navigateTo('/pages_order/mine/collect')"> @click="$utils.navigateTo('/pages_order/mine/collect')">
<view class="">
{{UserExtensionInfo.scNum || 0}}
<view class=""
v-if="role">
{{UserExtensionInfo.resumeCollectionNum || 0 }}
</view>
<view class=""
v-else>
{{ UserExtensionInfo.jobCollectionNum || 0 }}
</view> </view>
<view class=""> <view class="">
我的收藏 我的收藏
@ -94,8 +99,17 @@
<view class="item" <view class="item"
@click="$utils.navigateTo('/pages_order/mine/contactRecord')"> @click="$utils.navigateTo('/pages_order/mine/contactRecord')">
<view class="">
{{UserExtensionInfo.lxNum || 0}}
<view class=""
v-if="role">
{{ (UserExtensionInfo.resumecheckNumBoss || 0) +
(UserExtensionInfo.jobCheckNumBoss || 0)
}}
</view>
<view class=""
v-else>
{{ (UserExtensionInfo.jobcheckNumEmployee || 0) +
(UserExtensionInfo.resumecheckNumEmployee || 0)
}}
</view> </view>
<view class=""> <view class="">
联系记录 联系记录


+ 4
- 1
pages/index/index.vue View File

@ -12,7 +12,7 @@
<view class="top"> <view class="top">
<view class="search"> <view class="search">
<uv-search <uv-search
placeholder="请输入岗位/公司名称"
:placeholder="role ? '请输入简历名称' : '请输入岗位名称'"
:showAction="false" :showAction="false"
search-icon-size="40rpx" search-icon-size="40rpx"
@search="search" @search="search"
@ -165,6 +165,9 @@
this.role ? '师傅' : '雇主' this.role ? '师傅' : '雇主'
}身份吗`, }身份吗`,
success : e => { success : e => {
if(!e.confirm){
return
}
this.$store.commit('setRole', !this.role) this.$store.commit('setRole', !this.role)
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.workList.getData(this.screenWorkList) this.$refs.workList.getData(this.screenWorkList)


+ 11
- 0
pages_order/auth/certificationEnterprise.vue View File

@ -16,6 +16,15 @@
</view> </view>
<view class="form"> <view class="form">
<view class="form-item">
<view class="label">
职位名称
</view>
<input type="text" class="form-input"
placeholder="请输入职位名称"
v-model="form.career"/>
</view>
<view class="form-item"> <view class="form-item">
<view class="label"> <view class="label">
企业名称 企业名称
@ -138,6 +147,7 @@
checkboxValue : [], checkboxValue : [],
form : { form : {
companyAddress : '', companyAddress : '',
career : '',//
}, },
fileList: [], fileList: [],
status : 0, status : 0,
@ -188,6 +198,7 @@
} }
this.form.businessLicense = this.fileList.map((item) => item.url).join(",") this.form.businessLicense = this.fileList.map((item) => item.url).join(",")
if(this.$utils.verificationAll(this.form,{ if(this.$utils.verificationAll(this.form,{
career : '请输入您的职位',
companyName : '请输入企业名称', companyName : '请输入企业名称',
companyAddress : '请选择企业地址', companyAddress : '请选择企业地址',
legalPerson : '请输入企业法人', legalPerson : '请输入企业法人',


+ 20
- 2
pages_order/kepp/AnnualExpenditure.vue View File

@ -10,8 +10,8 @@
<view class="wire"></view> <view class="wire"></view>
<view class="select-date" <view class="select-date"
@click="$refs.notebookListPicker.open()">
2024
@click="$refs.datetimePicker.open()">
{{ $dayjs(date).format('YYYY') }}
</view> </view>
<view class="card"> <view class="card">
@ -39,12 +39,20 @@
:value="`${bill.typeNo[item.type]}${item.amount}`"></uv-cell> :value="`${bill.typeNo[item.type]}${item.amount}`"></uv-cell>
</view> </view>
</view> </view>
<uv-empty mode="list" v-if="list.length == 0"></uv-empty>
<uv-picker ref="notebookListPicker" <uv-picker ref="notebookListPicker"
keyName="title" keyName="title"
:columns="[notebookList]" :columns="[notebookList]"
itemHeight="80" itemHeight="80"
@confirm="notebookListConfirm"></uv-picker> @confirm="notebookListConfirm"></uv-picker>
<uv-datetime-picker
ref="datetimePicker"
v-model="date"
mode="year"
@confirm="confirmDate"/>
</view> </view>
</template> </template>
@ -60,6 +68,7 @@
typeNo : ['+', '-'], typeNo : ['+', '-'],
typeTitle : ['收入', '支出'], typeTitle : ['收入', '支出'],
}, },
date : new Date().getTime(),
countNumber : {}, countNumber : {},
notebookList : [], notebookList : [],
notebook : { notebook : {
@ -70,6 +79,9 @@
onLoad({apiType}) { onLoad({apiType}) {
this.apiType = apiType this.apiType = apiType
this.mixinsListApi += apiType || '' this.mixinsListApi += apiType || ''
this.queryParams.year = this.$dayjs(this.date).format('YYYY')
this.getCommonQueryNotebookList() this.getCommonQueryNotebookList()
}, },
onShow() { onShow() {
@ -103,6 +115,12 @@
this.getData() this.getData()
this.notebookQueryBillAmount() this.notebookQueryBillAmount()
}, },
confirmDate(e){
this.date = e.value
this.queryParams.year = this.$dayjs(this.date).format('YYYY')
this.getData()
this.notebookQueryBillAmount()
},
} }
} }
</script> </script>


+ 4
- 4
pages_order/mine/MemberRecharge.vue View File

@ -74,7 +74,7 @@
<!-- 缺失会员服务协议 --> <!-- 缺失会员服务协议 -->
<view>开通前请阅读<text <view>开通前请阅读<text
style="color: #3796F8;" style="color: #3796F8;"
@click="$refs.configPopup.open('')"
@click="$refs.configPopup.open('config_vip_service')"
>会员服务协议</text></view> >会员服务协议</text></view>
</view> </view>
</view> </view>
@ -138,16 +138,16 @@
}, },
}, },
methods: { methods: {
submit(id) {
submit(vipTypeId) {
if(!this.checkboxValue.length){ if(!this.checkboxValue.length){
return uni.showToast({ return uni.showToast({
title: '请先同意会员服务协议', title: '请先同意会员服务协议',
icon:'none' icon:'none'
}) })
} }
console.log("当前标识:" + id)
console.log("当前标识:" + vipTypeId)
this.$api('addVIP', { this.$api('addVIP', {
id: id
vipTypeId
}, res => { }, res => {
if(res.code == 200){ if(res.code == 200){
uni.requestPayment({ uni.requestPayment({


+ 33
- 0
pages_order/mine/collect.vue View File

@ -61,6 +61,39 @@
methods: { methods: {
clickSwipeAction({e, item}){ clickSwipeAction({e, item}){
console.log(e, item); console.log(e, item);
if(this.role){
this.addResumeCollection(item.employResume.id)
}else{
this.addJobCollection(item.employJob.id)
}
},
addJobCollection(jobId) {
let data = {
jobId
}
this.$api('addJobCollection', data, res => {
if (res.code == 200) {
uni.showToast({
title: res.message,
icon: 'none'
})
}
this.getData();
})
},
addResumeCollection(resumeId){
let data = {
resumeId
}
this.$api('addResumeCollection', data, res => {
this.getData();
if(res.code == 200){
uni.showToast({
title: res.message,
icon: 'none'
})
}
})
}, },
// getDataThen(list, total, result){ // getDataThen(list, total, result){
// let l = [] // let l = []


+ 1
- 1
pages_order/mine/contactRecord.vue View File

@ -96,7 +96,7 @@
if(this.role){ if(this.role){
this.api = ['bossQueryWatchWho', 'bossQueryWatchMe'][this.type] this.api = ['bossQueryWatchWho', 'bossQueryWatchMe'][this.type]
}else{ }else{
this.api = ['employeeQueryWatchWho', 'employeeQueryWatchMe'][this.type]
this.api = ['queryWatchWhoEmployee', 'employeeQueryWatchMe'][this.type]
} }
}, },
} }


+ 435
- 7
pages_order/mine/enterpriseInfo.vue View File

@ -1,22 +1,450 @@
<template> <template>
<view>
<view class="page">
<navbar title="企业信息"
leftClick
@leftClick="$utils.navigateBack"/>
<view class="box">
<!-- <view class="list">
<view class="item"
v-for="(item, index) in list"
:key="index">
<view class="title">
{{ item.title }}
</view>
<view class="tagList">
<view :class="{act : i == item.index}"
@click="clickTag(item, i)" v-for="(t, i) in item.tag"
:key="t.id">
{{ t.name || t.adress }}
</view>
</view>
</view>
</view> -->
<view class="form-sheet-cell">
<view class="label">
企业名称
</view>
<!-- <input placeholder="请输入企业名称"
v-model="form.companyName" /> -->
<view class="">
{{ form.companyName }}
</view>
</view>
<view class="form-sheet-cell">
<view class="label">
您的职位
</view>
<input placeholder="请输入您的职位"
v-model="detail.ahthenticationCompany.career" />
</view>
<view class="form-sheet-cell">
<view class="label">
公司电话
</view>
<input placeholder="请输入公司电话"
v-model="form.phone" />
</view>
<view class="form-sheet-cell">
<view class="label">
所属行业
</view>
<input placeholder="请输入所属行业"
v-model="form.industry" />
</view>
<view class="form-sheet-cell">
<view class="label">
融资轮数
</view>
<input placeholder="请输入融资轮数"
v-model="form.financing" />
</view>
<!-- <view class="form-sheet-cell">
<view class="label">
您的性别
</view>
<uv-radio-group v-model="form.sex">
<view style="display: flex;justify-content: center;">
<uv-radio
:customStyle="{margin: '8px'}"
v-for="(item, index) in sexList"
:key="index"
iconSize="30rpx"
size="40rpx"
labelSize="26rpx"
:label="item.name"
:name="item.name">
</uv-radio>
</view>
</uv-radio-group>
</view> -->
<view class="form-sheet-cell">
<view class="label">
企业人数
</view>
<uv-number-box v-model="form.number"/>
</view>
<view style="padding: 20rpx;">
<view class="title">
上传企业logo
</view>
<view class="images box">
<uv-upload
:fileList="logoFileList"
:maxCount="1"
multiple
width="150rpx"
height="150rpx"
name="logoFileList"
@delete="deleteImage"
@afterRead="afterRead"
:previewFullImage="true"></uv-upload>
</view>
</view>
<view style="padding: 20rpx;">
<view class="title">
上传企业背景图片
</view>
<view class="images box">
<uv-upload
:fileList="imageBackgroundFileList"
:maxCount="1"
multiple
width="150rpx"
height="150rpx"
name="imageBackgroundFileList"
@delete="deleteImage"
@afterRead="afterRead"
:previewFullImage="true"></uv-upload>
</view>
</view>
<view style="padding: 20rpx;">
<view class="title">
上传企业照片
</view>
<view class="images box">
<uv-upload
:fileList="imageFileList"
:maxCount="9"
multiple
width="150rpx"
height="150rpx"
name="imageFileList"
@delete="deleteImage"
@afterRead="afterRead"
:previewFullImage="true"></uv-upload>
</view>
</view>
<!-- <uv-textarea
v-model="form.brief"
count
:maxlength="300"
autoHeight
placeholder="请输入个人介绍"></uv-textarea> -->
<view class="uni-color-btn"
@click="submit">
保存
</view>
</view>
<uv-picker ref="picker"
:columns="columns"
@confirm="pickerConfirm"></uv-picker>
</view> </view>
</template> </template>
<script> <script>
import { mapState } from 'vuex'
export default { export default {
data() { data() {
return { return {
list: [
{
title: '您希望从事的工种',
tag: [],
index: 0,
type : 'typeId',
},
{
title: '您希望从事工作的地区',
tag: [],
index: 0,
type : 'expectAddress',
},
{
title: '您希望从事工作的性质',
tag: [],
index: 0,
type : 'natureId',
},
],
form : {
companyName : '',
industry : '',
address: "",
financing: "",
image: "",
legalPerson: "",
license: "",
logo: "",
number: 1,
phone: "",
socialCode: "",
},
sexList : [
{
name : '男',
},
{
name : '女',
},
],
picker : {
qualification : [
'初中',
'高中',
'专科',
'本科',
'研究生',
'博士',
],
},
pickerKey : 'workAge',
detail : {
ahthenticationCompany : {
career : ''
},
},
logoFileList : [],//logo
imageFileList : [],//
imageBackgroundFileList : [],//
} }
}, },
methods: {
computed : {
...mapState(['natureList', 'jobTypeList', 'addressList']),
columns(){
return [this.picker[this.pickerKey]]
},
},
onLoad() {
this.list[0].tag = this.jobTypeList
this.list[1].tag = this.addressList
this.list[2].tag = this.natureList
}
this.getDataByUserId()
},
methods: {
clickTag(item, index){
item.index = index
},
openPicker(key, picker){
this.pickerKey = key
if(picker){
picker.open()
}else{
this.$refs.picker.open()
}
},
pickerConfirm(e){
console.log(e);
let data = e.value[0]
if(data && data.id){
this.form[this.pickerKey] = data.id
this.form[this.pickerKey + '_dictText'] = data.name || data.adress
}else{
this.form[this.pickerKey] = data
}
},
//
submit(){
// if(this.fileList.length == 0){
// return uni.showToast({
// title: '',
// icon : 'none'
// })
// }
this.form.image = this.imageFileList.map(n => n.url).join(',')
this.form.logo = this.logoFileList.map(n => n.url).join()
this.form.imageBackground = this.imageBackgroundFileList.map(n => n.url).join(',')
if (this.$utils.verificationAll(this.form, {
companyName : '请输入企业名称',
industry : '请输入所属行业',
// financing: "",
// image: "",
// legalPerson: "",
// license: "",
logo: "请上传企业logo",
// number: "",
// phone: "",
// socialCode: "",
})) {
return
}
this.$api('updateCompany', this.form, res => {
if(res.code == 200){
uni.showToast({
title: '保存成功!',
icon: 'none'
})
setTimeout(uni.navigateBack, 1000, -1)
}
})
this.$api('addAuthenticationCompany', {
id : this.detail.ahthenticationCompany.id,
career : this.detail.ahthenticationCompany.career,
}, res =>{
if(res.code == 200){
}
})
},
getDataByUserId(){
this.$api('getDataByUserId', {
userId : this.userInfo.id,
}, res => {
if(res.code == 200){
this.detail = res.result
this.form = res.result.company
delete this.form.createBy
delete this.form.createTime
delete this.form.updateBy
delete this.form.updateTime
this.imageFileList = this.form.image ? this.form.image.split(',').map(url => {
return {
url
}
}) : []
this.logoFileList = this.form.logo ? this.form.logo.split(',').map(url => {
return {
url
}
}) : []
this.imageBackgroundFileList = this.form.imageBackground ? this.form.imageBackground.split(',').map(url => {
return {
url
}
}) : []
}
})
},
deleteImage(e){
this[e.name].splice(e.index, 1)
},
afterRead(e){
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self[e.name].push({
url
})
})
})
},
},
} }
</script> </script>
<style>
</style>
<style scoped lang="scss">
.page{
background-color: #fff;
min-height: 100vh;
.box{
padding: 30rpx;
.list {
.item {
margin-top: 20rpx;
.title {
// font-weight: 900;
font-size: 30rpx;
}
.tagList {
display: flex;
flex-wrap: wrap;
padding: 10rpx 0;
view {
background: rgba($uni-color, 0.1);
padding: 10rpx 20rpx;
margin: 10rpx;
border-radius: 10rpx;
font-size: 26rpx;
}
.act {
color: #fff;
background: $uni-color;
}
}
}
}
.form-sheet-cell{
display: flex;
background-color: #fff;
padding: 20rpx;
align-items: center;
.label{
width: 160rpx;
// font-weight: 900;
}
.price{
display: flex;
text-align: center;
input{
width: 150rpx;
border: 1px solid $uni-color;
margin: 0 10rpx;
}
}
input{
flex: 1;
background-color: rgba($uni-color, 0.1);
padding: 10rpx 20rpx;
border-radius: 10rpx;
}
.right-icon{
margin-left: auto;
}
}
/deep/ .uv-textarea{
background-color: rgba($uni-color, 0.1) !important;
min-height: 400rpx;
}
}
}
</style>

+ 20
- 0
pages_order/mine/releaseWork.vue View File

@ -70,6 +70,26 @@
methods: { methods: {
clickSwipeAction({e, item}){ clickSwipeAction({e, item}){
console.log(e, item); console.log(e, item);
this[['update', 'del'][e.index]](item)
},
update(item){
uni.navigateTo({
url: '/pages_order/work/jobPosting?jobId=' + item.id
})
},
del(item){
uni.showModal({
title: '确认删除该招工吗',
success : (r) => {
if(r.confirm){
this.$api('deleteJob', {
jobId : item.id
}, res => {
this.getData();
})
}
}
})
}, },
} }
} }


+ 13
- 1
pages_order/mine/setting.vue View File

@ -24,7 +24,7 @@
icon="coupon" icon="coupon"
title="切换身份" title="切换身份"
isLink isLink
@click="$utils.navigateTo('/pages_order/auth/switchIdentity')"
@click="switchIdentity"
iconStyle="font-size: 34rpx;" iconStyle="font-size: 34rpx;"
rightIconStyle="font-size: 34rpx;"> rightIconStyle="font-size: 34rpx;">
<template #icon> <template #icon>
@ -114,6 +114,18 @@
} }
}) })
}, },
//
async switchIdentity(){
//
this.$store.commit('isAuthCertification', () => {
//
this.$store.commit('isAuthCertificationEnterprise', state => {
this.$utils.navigateTo('/pages_order/auth/switchIdentity')
})
})
},
}, },
} }
</script> </script>


+ 16
- 8
pages_order/work/addResume.vue View File

@ -123,6 +123,7 @@
<script> <script>
import { mapState } from 'vuex' import { mapState } from 'vuex'
import index from '../../uni_modules/uv-ui-tools'
export default { export default {
data() { data() {
return { return {
@ -138,7 +139,7 @@
title: '您希望从事工作的地区', title: '您希望从事工作的地区',
tag: [], tag: [],
index: 0, index: 0,
type : 'areaId',
type : 'expectAddress',
}, },
{ {
title: '您希望从事工作的性质', title: '您希望从事工作的性质',
@ -152,7 +153,7 @@
qulification : '', qulification : '',
title: '', title: '',
typeId : '', typeId : '',
areaId : '',
expectAddress : '',
natureId : '', natureId : '',
age : '', age : '',
nation : '', nation : '',
@ -234,7 +235,7 @@
if (this.$utils.verificationAll(this.form, { if (this.$utils.verificationAll(this.form, {
title: '请输入求职岗位', title: '请输入求职岗位',
typeId : '请选择工种', typeId : '请选择工种',
areaId : '请选择工作的地区',
expectAddress : '请选择工作的地区',
natureId : '请选择工作的性质', natureId : '请选择工作的性质',
age : '请输入您的年龄', age : '请输入您的年龄',
sex : '请选择性别', sex : '请选择性别',
@ -250,7 +251,7 @@
let data = { let data = {
title: this.form.title, title: this.form.title,
typeId : this.form.typeId, typeId : this.form.typeId,
areaId : this.form.areaId,
expectAddress : this.form.expectAddress,
natureId : this.form.natureId, natureId : this.form.natureId,
age : this.form.age, age : this.form.age,
nation : this.form.nation, nation : this.form.nation,
@ -268,7 +269,7 @@
this.$api('addResume', data, res => { this.$api('addResume', data, res => {
if(res.code == 200){ if(res.code == 200){
uni.showToast({ uni.showToast({
title: '发布成功!',
title: '保存成功!',
icon: 'none' icon: 'none'
}) })
@ -281,9 +282,16 @@
if(res.code == 200 && res.result && res.result.records[0]){ if(res.code == 200 && res.result && res.result.records[0]){
this.form = res.result.records[0] this.form = res.result.records[0]
if(res.result.records[0]!=null){
this.form.id=res.result.records[0].id
}
this.list.forEach((n, i) => {
n.tag.forEach((e, index) => {
if(this.form[n.type] == e.id){
n.index = index
}
})
})
} }
}) })


+ 16
- 20
pages_order/work/bossDetail.vue View File

@ -1,8 +1,10 @@
<template> <template>
<view class="page"> <view class="page">
<image src="/static/image/home/banner.png" mode="aspectFill"
class="bgImage"></image>
<view class="bgImage">
<image :src="companyInfo.imageBackground" mode="aspectFill"
class="bgImage"></image>
</view>
<view class="close" <view class="close"
@click="$utils.navigateBack"> @click="$utils.navigateBack">
@ -15,7 +17,7 @@
<view class="box"> <view class="box">
<view class="boss-box"> <view class="boss-box">
<image :src="hanHaiMember.headImage"
<image :src="userInfo.headImage"
class="headImage" class="headImage"
mode="aspectFill"></image> mode="aspectFill"></image>
@ -61,11 +63,11 @@
<view class="list-work"> <view class="list-work">
<view class="text"> <view class="text">
发布职位<text>19</text>
发布职位<text>{{ total }}</text>
</view> </view>
<view style="margin: 20rpx;" <view style="margin: 20rpx;"
@click="$utils.navigateTo('/pages_order/work/userDetail?id=' + item.id)"
@click="$utils.navigateTo('/pages_order/work/workDetail?id=' + item.id)"
:key="index" :key="index"
v-for="(item, index) in list"> v-for="(item, index) in list">
<workItem :item="item"/> <workItem :item="item"/>
@ -89,16 +91,15 @@
data() { data() {
return { return {
id : 0, id : 0,
detail : {},
personInfo:{}, personInfo:{},
companyInfo:{}, companyInfo:{},
hanHaiMember:{},
collectionFlag : false,
userInfo:{},
mixinsListApi : 'employeeQueryJobList', mixinsListApi : 'employeeQueryJobList',
} }
}, },
onLoad({id}) { onLoad({id}) {
this.id = id this.id = id
this.queryParams.userId = id
}, },
onShow() { onShow() {
this.getDetail() this.getDetail()
@ -108,20 +109,14 @@
}, },
methods: { methods: {
getDetail(){ getDetail(){
let data = {
jobId : this.id
}
if(uni.getStorageSync('token')){
data.token = uni.getStorageSync('token')
}
this.$api('employeeQueryJobById', data, res => {
this.$api('getDataByUserId', {
userId : this.id,
}, res => {
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
if(res.code == 200){ if(res.code == 200){
this.detail = res.result.jobInfo
this.collectionFlag = res.result.collectionFlag
this.personInfo = res.result.personInfo
this.companyInfo = res.result.companyInfo
this.hanHaiMember = res.result.hanHaiMember
this.personInfo = res.result.ahthenticationPerson//
this.companyInfo = res.result.company//
this.userInfo = res.result.userInfo//
} }
}) })
}, },
@ -135,6 +130,7 @@
.bgImage{ .bgImage{
width: 100%; width: 100%;
height: 500rpx; height: 500rpx;
background-color: $uni-bg-color;
} }
.close{ .close{
position: absolute; position: absolute;


+ 50
- 5
pages_order/work/jobPosting.vue View File

@ -1,6 +1,6 @@
<template> <template>
<view class="page"> <view class="page">
<navbar title="发布招工" leftClick @leftClick="$utils.navigateBack" />
<navbar title="编辑招工信息" leftClick @leftClick="$utils.navigateBack" />
<view class="form"> <view class="form">
@ -24,7 +24,11 @@
<uv-cell <uv-cell
title="工作地点" title="工作地点"
rightIconStyle="fontSize: 30rpx;" rightIconStyle="fontSize: 30rpx;"
:value="form.workAddress||'请选择招工地点'"
:value="form.workAddress &&
(form.workAddress.length > 12 ?
form.workAddress.substring(0, 12) + '...' :
form.workAddress)
|| '请选择招工地点'"
@click="selectAddr" @click="selectAddr"
isLink isLink
></uv-cell> ></uv-cell>
@ -33,7 +37,7 @@
title="所属工种" title="所属工种"
rightIconStyle="fontSize: 30rpx;" rightIconStyle="fontSize: 30rpx;"
:value="form.typeId_dictText || '请选择所属工种'" :value="form.typeId_dictText || '请选择所属工种'"
@click="openPicker('typeId',$refs.jobTypeListPicker)"
@click="openPicker('typeId', $refs.jobTypeListPicker)"
isLink isLink
></uv-cell> ></uv-cell>
@ -231,9 +235,16 @@
jobTypeList : [], jobTypeList : [],
}, },
pickerKey : 'workAge', pickerKey : 'workAge',
jobId : 0,
} }
}, },
onLoad() {
onLoad({jobId}) {
if(jobId){
this.jobId = jobId
this.getDetail()
}
for (var i = 0; i < 30; i++) { for (var i = 0; i < 30; i++) {
this.picker.workAge.push((i + 1) + '年经验') this.picker.workAge.push((i + 1) + '年经验')
} }
@ -247,6 +258,40 @@
...mapState(['natureList', 'jobTypeList', 'addressList']), ...mapState(['natureList', 'jobTypeList', 'addressList']),
}, },
methods: { methods: {
getDetail() {
let data = {
jobId: this.jobId
}
if (uni.getStorageSync('token')) {
data.token = uni.getStorageSync('token')
}
this.$api('employeeQueryJobById', data, res => {
if (res.code == 200) {
let detail = res.result.jobInfo
this.addressList.forEach(address => {
if(address.id == detail.areaId){
detail.areaId_dictText = address.adress
}
})
this.jobTypeList.forEach(type => {
if(type.id == detail.typeId){
detail.typeId_dictText = type.name
}
})
delete detail.createBy
delete detail.createTime
delete detail.headImage
delete detail.hanHaiMember
delete detail.updateTime
delete detail.updateBy
this.form = detail
}
})
},
openPicker(key, picker){ openPicker(key, picker){
this.pickerKey = key this.pickerKey = key
if(picker){ if(picker){
@ -292,7 +337,7 @@
return return
} }
this.$api('addJob', this.form, res => {
this.$api(this.jobId ? 'updateJob' : 'addJob', this.form, res => {
if(res.code == 200){ if(res.code == 200){
uni.showToast({ uni.showToast({
title: '发布成功!', title: '发布成功!',


+ 24
- 30
pages_order/work/userDetail.vue View File

@ -24,23 +24,13 @@
</view> </view>
</view> </view>
<view class="right"> <view class="right">
<view class="phone">
<view class="phone"
@click.stop="callPhone">
<image src="/static/image/home/phone.png" mode=""></image> <image src="/static/image/home/phone.png" mode=""></image>
联系他 联系他
</view> </view>
</view> </view>
</view> </view>
<view style="background-color: #f3f3f3;height: 30rpx;"></view> <view style="background-color: #f3f3f3;height: 30rpx;"></view>
@ -49,16 +39,17 @@
<view class="userinfo"> <view class="userinfo">
<view class="line">
<view v-if="collectionFlag == false" @click="addResumeCollection">
<view class="line"
style="justify-content: flex-end;">
<view v-if="collectionFlag == false" @click="addResumeCollection"
style="display: flex;align-items: center;">
<uv-icon size="30rpx" color="666" name="star"></uv-icon> <uv-icon size="30rpx" color="666" name="star"></uv-icon>
收藏 收藏
</view> </view>
<view v-else @click="addResumeCollection" style="color: red;">
<uv-icon size="30rpx" color="666" name="star"></uv-icon>
<view v-else @click="addResumeCollection"
style="display: flex;align-items: center;color: #f40;">
<uv-icon size="30rpx" color="#f40" name="star-fill"></uv-icon>
已收藏 已收藏
</view> </view>
</view> </view>
@ -77,7 +68,7 @@
期望工作地 期望工作地
</view> </view>
<view class="right"> <view class="right">
{{ detail.ipAddress }}
{{ detail.expectAddressName }}
</view> </view>
</view> </view>
@ -104,7 +95,7 @@
IP归属地 IP归属地
</view> </view>
<view class="right"> <view class="right">
{{ detail.ipAddress }}
{{ detail.ipAddress || '' }}
</view> </view>
</view> </view>
@ -135,13 +126,6 @@
</template> </template>
<script> <script>
let text = `岗位要求
1全日制大专以上学历艺术设计类相关专业;
2两年以上平面品牌视觉设计等相关工作经验能独立完成项目的设计工作 3C数码/个护健 类产品服务经验优先有乙方工作经验佳;
3具备一定的设计提案能力能完整的呈现设计思路与创意能清晰的表达设计逻辑与思考;
4热爱设计平面基本功扎实拥有优良的审美与创意想法对版式色彩把控能力强;对工作富有责任心具备团队沟通与协作能力;
5精通 PSAICDR 等平面设计软件能独立完成日常平面设计工作内容熟练使用 PPT/Keynote能完成提案内容的材料美化工作
`
import userHead from '../components/user/userHead.vue' import userHead from '../components/user/userHead.vue'
export default { export default {
components: { components: {
@ -163,7 +147,6 @@
this.id = id this.id = id
}, },
onShow() { onShow() {
this.text = this.$utils.stringFormatHtml(text)
this.getData() this.getData()
}, },
methods: { methods: {
@ -191,6 +174,7 @@
data.token = uni.getStorageSync('token') data.token = uni.getStorageSync('token')
} }
this.$api('addResumeCollection', data, res => { this.$api('addResumeCollection', data, res => {
this.getData();
if(res.code == 200){ if(res.code == 200){
uni.showToast({ uni.showToast({
title: res.message, title: res.message,
@ -198,8 +182,18 @@
}) })
} }
}) })
this.getData();
}
},
callPhone(){
uni.makePhoneCall({
phoneNumber: this.hanHaiMember && this.hanHaiMember.phone,
success() {
console.log('安卓拨打成功');
},
fail() {
console.log('安卓拨打失败');
}
})
},
} }
} }
</script> </script>


+ 5
- 5
pages_order/work/workDetail.vue View File

@ -66,8 +66,8 @@
<view v-else @click="addJobCollection" style="color: red;">
<uv-icon size="30rpx" color="666" name="star"></uv-icon>
<view v-else @click="addJobCollection" style="color: #f40;">
<uv-icon size="30rpx" color="666" name="star-fill"></uv-icon>
已收藏 已收藏
</view> </view>
</view> </view>
@ -86,7 +86,7 @@
</view> </view>
<view class="boss-box" @click="$utils.navigateTo('/pages_order/work/bossDetail?id='+detail.id)">
<view class="boss-box" @click="$utils.navigateTo('/pages_order/work/bossDetail?id=' + hanHaiMember.id)">
<view class="image"> <view class="image">
<image :src="companyInfo.logo" mode=""></image> <image :src="companyInfo.logo" mode=""></image>
</view> </view>
@ -177,6 +177,7 @@
data.token = uni.getStorageSync('token') data.token = uni.getStorageSync('token')
} }
this.$api('addJobCollection', data, res => { this.$api('addJobCollection', data, res => {
this.getDetail();
if (res.code == 200) { if (res.code == 200) {
uni.showToast({ uni.showToast({
title: res.message, title: res.message,
@ -184,8 +185,7 @@
}) })
} }
}) })
this.getDetail();
}
},
} }
} }
</script> </script>


+ 1
- 1
store/store.js View File

@ -10,7 +10,7 @@ const store = new Vuex.Store({
state: { state: {
configList: {}, //配置列表 configList: {}, //配置列表
// 角色 true为老板 false为工人 // 角色 true为老板 false为工人
role : false,
role : true,
userInfo : {}, //用户信息 userInfo : {}, //用户信息
banner : [],//轮播图 banner : [],//轮播图
jobTypeList : [],//工种 jobTypeList : [],//工种


Loading…
Cancel
Save