Browse Source

feat: 添加本地环境配置并优化订单页面刷新逻辑

refactor: 重构列表组件为独立组件并优化代码结构

fix: 修复订单详情页薪资显示和联系客服功能

feat: 添加认证状态检查和企业/个人认证流程

style: 优化页面布局和文本显示

perf: 改进地理位置选择和逆地理编码逻辑

docs: 更新注释和移除无用代码

test: 添加认证状态和简历完成状态检查测试

chore: 更新基础URL配置和组件路径
master
前端-胡立永 1 day ago
parent
commit
8a9c2c0bcc
19 changed files with 495 additions and 314 deletions
  1. +2
    -1
      common/config.js
  2. +1
    -1
      components/list/enterprise.vue
  3. +1
    -1
      components/list/master.vue
  4. +3
    -0
      config.js
  5. +46
    -4
      pages/auth/index.vue
  6. +2
    -2
      pages/home/index.vue
  7. +9
    -16
      pages/order/component/enterprise.vue
  8. +10
    -16
      pages/order/component/master.vue
  9. +5
    -0
      pages/order/index.vue
  10. +13
    -90
      pages_subpack/category/index.vue
  11. +36
    -2
      pages_subpack/employ-progress/index.vue
  12. +61
    -36
      pages_subpack/job-order-detail/index.vue
  13. +41
    -30
      pages_subpack/master-detail/index.vue
  14. +23
    -27
      pages_subpack/order-detail/boss.vue
  15. +53
    -28
      pages_subpack/order-detail/index.vue
  16. +36
    -23
      pages_subpack/release/component/enterprise.vue
  17. +12
    -23
      pages_subpack/release/component/master.vue
  18. +70
    -11
      pages_subpack/work-detail/index.vue
  19. +71
    -3
      store/modules/user.js

+ 2
- 1
common/config.js View File

@ -3,7 +3,8 @@ module.exports = {
// baseUrl:"https://employadmin.hhlm1688.com"
// baseUrl:"http://h5.xzaiyp.top", //测试环境
// baseUrl:"http://youyi-test.natapp1.cc",
baseUrl:"https://admin.zhixuanlietou.com",
baseUrl:"http://127.0.0.1:8001",
// baseUrl:"https://admin.zhixuanlietou.com",
// http://youyi-test.natapp1.cc


pages/home/component/enterprise.vue → components/list/enterprise.vue View File

@ -70,7 +70,7 @@
</text>
<view @click.capture="onCustomerService(items.employAuthenticationPerson.phone)" class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
<u-icon color="#FF7A31" name="phone-fill"></u-icon>
<text class="se-ml-5">联系他</text>
<text class="se-ml-5">立即聘用</text>
</view>
</view>
</view>

pages/home/component/master.vue → components/list/master.vue View File

@ -27,7 +27,7 @@
{{items.createTime | formatTime}}
</view>
<view class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
<text class="se-ml-5">立即接单</text>
<text class="se-ml-5">立即应聘</text>
</view>
</view>
</view>

+ 3
- 0
config.js View File

@ -9,6 +9,9 @@ const type = 'prod'
// 环境配置
const config = {
local : {
baseUrl : 'http://127.0.0.1:8001/employ-api',
},
dev : {
baseUrl : 'http://augcl.natapp1.cc/employ-api',
},


+ 46
- 4
pages/auth/index.vue View File

@ -151,12 +151,16 @@
url:"/pages/login/index"
})
}else{
uni.navigateTo({
url:"/pages/identity/index"
})
//
that.checkAuthStatus()
}
}).catch((error) =>{
uni.hideLoading()
uni.showToast({
title: '登录失败,请重试',
icon: 'none',
duration: 2000
})
})
}
})
@ -166,6 +170,44 @@
url:"/pages/home/index"
})
},
checkAuthStatus() {
let that = this
//
uni.showLoading({
title: '检查认证状态...',
mask: true
})
//
this.$store.dispatch('onPersonalAuth', {
success: (person) => {
//
uni.hideLoading()
uni.switchTab({
url: "/pages/home/index"
})
},
fail: (person) => {
//
that.$store.dispatch('onEnterpriseAuth', {
success: (company) => {
//
uni.hideLoading()
uni.switchTab({
url: "/pages/home/index"
})
},
fail: (company) => {
//
uni.hideLoading()
uni.navigateTo({
url: "/pages/identity/index"
})
}
})
}
})
},
handleOpenPrivacyContract() {
//
wx.openPrivacyContract({


+ 2
- 2
pages/home/index.vue View File

@ -80,8 +80,8 @@
noticeList,
queryConfigList
} from "@/common/api.js"
import enterpriseBox from "./component/enterprise.vue"
import masterBox from "./component/master.vue"
import enterpriseBox from "@/components/list/enterprise.vue"
import masterBox from "@/components/list/master.vue"
import QQMapWX from "@/util/qqmap-wx-jssdk.min.js"
export default{
components:{


+ 9
- 16
pages/order/component/enterprise.vue View File

@ -34,15 +34,18 @@
</view>
<view class="se-flex se-flex-h-sb se-w-p-100 se-pt-20">
<view class="se-fs-24 se-display-ib">
<text class="se-c-black">总价格</text>
<text class="se-c-black">试工日薪</text>
<text class="se-c-orange se-fs-30 se-fw-6"><text
class="se-fs-24"></text>{{items.payMoney}}</text>
class="se-fs-24"></text>
{{items.employJob && items.employJob.salaryDay || 0}}
</text>
</view>
<view
<button
open-type="contact"
class="se-display-ib se-px-20 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-fs-24 se-c-66 se-b"
@click="callPhone(items)">
style="background: transparent; border: none; padding: 0; margin: 0; line-height: 50rpx;">
<text>联系客服</text>
</view>
</button>
</view>
</view>
<u-empty v-if="list && list.length==0" mode="list"></u-empty>
@ -144,17 +147,7 @@
url: "/pages_subpack/order-detail/index?orderId=" + event.id
})
},
callPhone(event) {
uni.makePhoneCall({
phoneNumber: event.phone,
success: () => {
console.log("拨打成功");
},
fail: (err) => {
console.error("拨打失败", err);
},
})
}
}
}
</script>


+ 10
- 16
pages/order/component/master.vue View File

@ -37,13 +37,17 @@
</view>
<view class="se-flex se-flex-h-sb se-w-p-100 se-pt-20">
<view class="se-fs-24 se-display-ib">
<text class="se-c-black">总价格</text>
<text class="se-c-orange se-fs-30 se-fw-6"><text class="se-fs-24"></text>{{ item.jobMoney }}</text>
<text class="se-c-black">试工日薪</text>
<text class="se-c-orange se-fs-30 se-fw-6"><text class="se-fs-24"></text>
{{ item.employSeek && item.employSeek.dayMoney || 0 }}
</text>
</view>
<view
class="se-display-ib se-px-20 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-fs-24 se-c-66 se-b">
<button
open-type="contact"
class="se-display-ib se-px-20 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-fs-24 se-c-66 se-b"
style="background: transparent; border: none; padding: 0; margin: 0; line-height: 50rpx;">
<text>联系客服</text>
</view>
</button>
</view>
</view>
<u-empty v-if="list && list.length==0" mode="list"></u-empty>
@ -145,17 +149,7 @@
url: "/pages_subpack/job-order-detail/index?orderId=" + event.id
})
},
callPhone(event) {
uni.makePhoneCall({
phoneNumber: event.phone,
success: () => {
console.log("拨打成功");
},
fail: (err) => {
console.error("拨打失败", err);
},
})
}
}
}
</script>


+ 5
- 0
pages/order/index.vue View File

@ -41,6 +41,11 @@
},
onShow() {
this.isLogin = !!uni.getStorageSync('token')
if(this.current==0){
this.$refs.enterpriseBoxRef.onRefresh();
}else if(this.current==1){
this.$refs.masterBoxRef.onRefresh();
}
},
onReachBottom() {
if(this.current==0){


+ 13
- 90
pages_subpack/category/index.vue View File

@ -17,97 +17,13 @@
}" itemStyle="padding-left: 15px; padding-right: 15px; height: 34px;" :list="navList" @click="navClick($event)">
</u-tabs>
</u-sticky>
<template v-if="current==1">
<view class="se-m-20 se-br-20 se-bs-b se-bgc-white se-py-20 se-px-30" v-for="(items,indexs) in tList"
:key="indexs" @click="onTaskDetail(items)">
<view class="se-flex se-flex-h-sb">
<view class="se-flex se-fw-6">
<text class="se-c-black se-fs-30">{{items.title}}</text>
<text class="se-mx-10 se-b-l"></text>
<text class="se-fs-28 se-c-orange">日薪:{{items.salaryDay}}</text>
</view>
<view class="se-c-orange se-fs-32 se-fw-6">
{{items.salaryMin}}-{{items.salaryMax}}k
</view>
</view>
<view class="se-py-10">
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5"
v-if="items.categoryOne_dictText">{{items.categoryOne_dictText}}</text>
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5"
v-if="items.categoryTwo_dictText">{{items.categoryTwo_dictText}}</text>
<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5"
v-if="items.payType_dictText">{{items.payType_dictText}}</text>
</view>
<view class="se-flex se-flex-h-sb">
<view class="se-flex se-flex-h-c">
<u-icon name="map"></u-icon>
<text
class="se-c-text-sub se-fs-24 se-pr-10">{{items.latitude,items.longitude | getDistance}}km</text>
<text class="se-c-text-sub se-fs-24 se-pl-10 se-b-l se-toe-3"
style="max-width: 220rpx;">{{items.address}}</text>
</view>
<view class="se-c-text se-c-text-sub se-fs-24">
{{items.createTime | formatTime}}
</view>
<view
class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
<text class="se-ml-5">立即接单</text>
</view>
</view>
</view>
<u-empty v-if="tList && tList.length==0" mode="list"></u-empty>
</template>
<!-- 使用列表组件渲染数据 -->
<template v-if="current==0">
<view class="se-m-20 se-br-20 se-bs-b se-bgc-white se-py-20 se-px-30" v-for="(items,indexs) in rlist"
:key="indexs">
<view class="se-flex se-flex-h-sb" @click.capture="onRoleDetail(items)">
<view class="se-flex">
<view class="se-a-100">
<image class="se-a-100 se-br-p-50 se-bgc-f5" :src="items.employResume.headImage" mode="">
</image>
</view>
<view class="se-ml-20 se-flex se-flex-v-c se-flex-ai-fs">
<text
class="se-fw-6 se-c-black se-fs-30">{{items.employResume.name?items.employResume.name:items.hanHaiMember.nickName}}<text
class="se-mx-10 se-b-l"></text><text
class="se-fs-28 se-c-orange">日薪:{{items.dayMoney}}</text> </text>
<text
class="se-fs-24 se-c-text-third">{{items.employResume.sex==1?"男":"女"}}-{{items.employResume.nation?items.employResume.nation:"未知"}}-{{items.employResume.age}}</text>
<view class="se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6 se-toe-1"
style="max-width: 100rpx;">
{{items.categoryOne_dictText}}
</view>
</view>
<!-- <view class="se-flex se-flex-h-c">
<view class="se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-ml-20 se-fw-6 se-toe-1" style="max-width: 100rpx;">
{{items.categoryOne_dictText}}
</view>
</view> -->
</view>
<view class="se-c-orange se-fs-32 se-fw-6">
{{items.salaryMin}}-{{items.salaryMax}}
</view>
</view>
<view>
<text class="se-c-text-third se-fs-22 se-mt-10">{{items.createTime}}</text>
</view>
<view class="se-flex se-flex-h-sb">
<text class="se-c-text-sub se-fs-24 se-toe-5" style="max-width: 100rpx;width: 100rpx;">
{{items.categoryTwo_dictText}}
<!-- <u-parse v-if="items.brief" :content="items.brief"></u-parse> -->
</text>
<text class="se-c-text-sub se-fs-24 se-toe-5" style="max-width: 350rpx;width:350rpx;">
{{items.address}}
<!-- <u-parse v-if="items.brief" :content="items.brief"></u-parse> -->
</text>
<view @click.capture="onCustomerService(items.employAuthenticationPerson.phone)"
class="se-flex se-flex-h-c se-py-10 se-px-20 se-br-12 se-fs-22 se-c-orange se-bgc-ffd se-fw-6">
<u-icon color="#FF7A31" name="phone-fill"></u-icon>
<text class="se-ml-5">联系他</text>
</view>
</view>
</view>
<u-empty v-if="rlist && rlist.length==0" mode="list"></u-empty>
<enterprise :rolelist="rlist"></enterprise>
</template>
<template v-if="current==1">
<master :taskList="tList"></master>
</template>
</view>
@ -122,7 +38,14 @@
querySeekList,
getSysText
} from "@/common/api.js"
import master from "@/components/list/master.vue"
import enterprise from "@/components/list/enterprise.vue"
export default {
components: {
master,
enterprise
},
data() {
return {
tpageNo: 1,


+ 36
- 2
pages_subpack/employ-progress/index.vue View File

@ -25,6 +25,8 @@
</template>
<script>
import { deleteOrder } from "@/common/api.js"
export default{
data(){
return{
@ -43,8 +45,40 @@
})
},
onCancel(){
uni.navigateBack({
delta:1
uni.showModal({
title: '确认取消',
content: '确定要取消这个订单吗?',
success: (res) => {
if (res.confirm) {
uni.showLoading({
title: '取消中...'
})
deleteOrder(this.id).then(res => {
uni.hideLoading()
if (res.code == 200) {
uni.showToast({
title: '取消成功',
icon: 'success'
})
//
uni.navigateBack({
delta: 1
})
} else {
uni.showToast({
title: res.message || '取消失败',
icon: 'none'
})
}
}).catch(error => {
uni.hideLoading()
uni.showToast({
title: '取消失败',
icon: 'none'
})
})
}
}
})
}
}


+ 61
- 36
pages_subpack/job-order-detail/index.vue View File

@ -62,10 +62,12 @@
<view class="se-px-20">
<view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c"
v-if="!type">
<view @click="onService()"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
<button
open-type="contact"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
<text>联系客服</text>
</view>
</button>
<template v-if="stepsIndex==0">
<view @click="onCancel()"
class="se-mx-10 se-w-200 se-b se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-66 se-bgc-f5">
@ -91,10 +93,12 @@
<!-- 求职者 -->
<view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c"
v-else>
<view @click="onService()"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
<button
open-type="contact"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
<text>联系客服</text>
</view>
</button>
<template v-if="stepsIndex==0">
<view @click="confirmOrder()"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
@ -132,33 +136,62 @@
<image class="se-w-160 se-h-160 se-br-10" :src="obj.employResume.headImage" mode=""></image>
</view>
<view class="se-ml-20 se-flex se-flex-v-sa se-flex-ai-fs">
<view class="se-fw-6 se-c-black se-fs-30 se-display-ib">期望工作地址:{{obj.employSeek.address}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属行业:{{obj.employSeek.categoryOne}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.employSeek.categoryTwo}}</view>
<view class="se-fw-6 se-c-black se-fs-30 se-display-ib">期望工作地址:{{obj.employSeek.address || '暂未'}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属行业:{{obj.employSeek.categoryOne || '暂未'}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.employSeek.categoryTwo || '暂未'}}</view>
</view>
</view>
<view class="se-flex se-flex-h-sb se-w-p-100 se-pt-20">
<view class="se-fs-24 se-display-ib">薪资</view>
<view class="se-c-orange se-fs-32 se-fw-6 se-display-ib">{{obj.employSeek.dayMoney}}/</view>
<view class="se-fs-24 se-display-ib">试工日资</view>
<view class="se-c-orange se-fs-32 se-fw-6 se-display-ib"
v-if="obj.employSeek && obj.employSeek.dayMoney">
{{obj.employSeek.dayMoney}}/
</view>
<view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
</view>
<view class="se-flex se-flex-h-sb se-w-p-100 se-pt-20">
<view class="se-fs-24 se-display-ib">月薪</view>
<view class="se-c-orange se-fs-32 se-fw-6 se-display-ib"
v-if="obj.employSeek && (obj.employSeek.salaryMax || obj.employSeek.salaryMin)">
<text v-if="obj.employSeek.salaryMin">{{obj.employSeek.salaryMin}}</text>
<text v-if="obj.employSeek.salaryMax != obj.employSeek.salaryMin
&& obj.employSeek.salaryMax != 0 && obj.employSeek.salaryMin != 0">-</text>
<text
v-if="obj.employSeek.salaryMax != obj.employSeek.salaryMin && obj.employSeek.salaryMax != 0">
{{obj.employSeek.salaryMax || 0}}
</text>
/
</view>
<view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
</view>
</view>
<u-line dashed></u-line>
<view class="se-py-10 se-pb-30">
<view class="se-mt-30">
<text class="se-fs-28 se-c-black se-fw5">师傅姓名:{{obj.employResume.name}}</text>
<text class="se-fs-28 se-c-black se-fw5">民族:{{obj.employResume.nation}}</text>
<text class="se-fs-28 se-c-black se-fw5">性别:{{obj.employResume.sex}}</text>
<text class="se-fs-28 se-c-black se-fw5">年龄:{{obj.employResume.age}}</text>
<text class="se-fs-28 se-c-black se-fw5">简介:{{obj.employResume.brief}}</text>
<text class="se-fs-28 se-c-black se-fw5">地区:{{obj.employResume.address}}</text <text
class="se-fs-24 se-c-text-third se-ml-40">师傅电话:{{obj.employResume.phone}}</text>
<text class="se-fs-28 se-c-black se-fw5">师傅姓名{{obj.employResume.name || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">民族{{obj.employResume.nation || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">性别{{obj.employResume.sex == 1 ? '男' : obj.employResume.sex == 2 ? '女' : '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">年龄{{obj.employResume.age || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">地区{{obj.employResume.address || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">简介{{obj.employResume.brief || '暂未'}}</text>
<br>
<text class="se-fs-24 se-c-text-third">师傅电话{{obj.employResume.phone || '暂未'}}</text>
<view class="se-bgc-orange se-c-white se-fs-20 se-display-ib se-px-10 se-py-5 se-br-10 se-ml-10"
@click="copyText(obj.employResume.phone)">
复制
</view>
</view>
<view class="se-mt-10">
<text class="se-fs-24 se-c-33">简历地址:{{obj.workAddress}}</text>
<text class="se-fs-24 se-c-33">简历地址{{obj.workAddress || '暂未'}}</text>
<view class="se-bgc-orange se-c-white se-fs-20 se-display-ib se-px-10 se-py-5 se-br-10 se-ml-10"
@click="copyText(obj.workAddress)">
复制
@ -172,16 +205,17 @@
</view>
<view class="se-flex se-pt-30 se-flex-h-sb">
<view class="se-fs-24 se-display-ib">简介</view>
<view class="se-fs-24 se-display-ib">{{obj.employResume.brief}}</view>
<view class="se-fs-24 se-display-ib">{{obj.employResume.brief || '暂未'}}</view>
</view>
<view class="se-flex se-pt-30 se-flex-h-sb">
<view class="se-fs-24 se-display-ib">出行方式</view>
<view class="se-fs-24 se-display-ib">{{obj.employSeek.selectGo}}</view>
<view class="se-fs-24 se-display-ib">{{obj.employSeek.selectGo || '暂未'}}</view>
</view>
<view class="se-flex se-pt-30 se-flex-h-sb">
<view class="se-fs-24 se-display-ib">支付方式</view>
<view class="se-fs-24 se-display-ib" v-if="obj.employSeek.payType==0">提前支付</view>
<view class="se-fs-24 se-display-ib" v-if="obj.employSeek.payType==1">试用后支付</view>
<view class="se-fs-24 se-display-ib se-c-99" v-if="obj.employSeek.payType==null || obj.employSeek.payType==undefined">暂未</view>
</view>
<!-- <view class="se-flex se-pt-30 se-flex-h-sb">
<view class="se-fs-24 se-display-ib">工作时间</view>
@ -198,10 +232,12 @@
</view>
</view>
<view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c">
<view @click="onService()"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
<button
open-type="contact"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
<text>联系师傅</text>
</view>
</button>
</view>
</view>
</view>
@ -295,18 +331,7 @@
}
})
},
onService() {
console.info(`联系客服`)
uni.makePhoneCall({
phoneNumber: this.obj.jobPhone,
success: () => {
console.log("拨打成功");
},
fail: (err) => {
console.error("拨打失败", err);
},
})
},
// -
confirmOrder() {
confirmOrder(this.orderId)


+ 41
- 30
pages_subpack/master-detail/index.vue View File

@ -20,28 +20,28 @@
</view>
</view>
<view class="se-px-40 se-pt-40 se-fs-26">
<view class="se-flex se-py-10">
<!-- <view class="se-flex se-py-10">
<view class="se-w-140">
联系电话
</view>
<view>
{{items.employResume.phone}}
</view>
</view>
</view> -->
<view class="se-flex se-py-10">
<view class="se-w-140">
结算方式
</view>
<view>
{{items.payType}}
{{items.payType || '暂无'}}
</view>
</view>
<view class="se-flex se-py-10">
<view class="se-w-140">
日薪
试工日薪
</view>
<view>
{{items.dayMoney}}
{{items.dayMoney || '暂无'}}
</view>
</view>
<view class="se-flex se-py-10">
@ -49,7 +49,7 @@
出行方式
</view>
<view>
{{items.selectGo}}
{{items.selectGo || '暂无'}}
</view>
</view>
<view class="se-flex se-py-10">
@ -57,7 +57,7 @@
出发地址
</view>
<view>
{{items.address}}
{{items.address || '暂无'}}
</view>
</view>
<view class="se-b se-mt-20"></view>
@ -122,30 +122,41 @@
})
},
onEmploy(){
console.info(`立即聘用`)
addOrderJob({id:this.id}).then(response=>{
console.log("聘用成功");
// uni.navigateTo({
// url:"/pages_subpack/payment/index?id="+response.result.id
// })
uni.navigateTo({
url:"/pages_subpack/employ-progress/index?id="+response.result.id
})
}).catch(error=>{
uni.showLoading({
title: '加载中'
})
//
this.$store.dispatch('onEnterpriseAuth', {
success: (company) => {
//
addOrderJob({id:this.id}).then(response=>{
uni.hideLoading()
console.log("聘用成功");
uni.redirectTo({
url:"/pages_subpack/employ-progress/index?id="+response.result.id
})
}).catch(error=>{
uni.hideLoading()
})
},
fail: (company) => {
uni.hideLoading()
//
uni.showModal({
title: '提示',
content: '请先完成企业认证,审核通过后才能聘用',
showCancel: false,
confirmText: '去认证',
success: (res) => {
if (res.confirm) {
uni.navigateTo({
url: '/pages_subpack/enterprise/index'
})
}
}
})
}
})
}
}
}


+ 23
- 27
pages_subpack/order-detail/boss.vue View File

@ -60,10 +60,12 @@
<view class="se-px-20">
<view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c">
<template>
<view @click="onService()"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
<button
open-type="contact"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
<text>联系客服</text>
</view>
</button>
</template>
<template v-if="stepsIndex == 2">
<view @click="confirmOrderTryCompany()"
@ -93,30 +95,31 @@
<image class="se-w-160 se-h-160 se-br-10" :src="obj.workHeadImg" mode=""></image>
</view>
<view class="se-ml-20 se-flex se-flex-v-sa se-flex-ai-fs">
<view class="se-fw-6 se-c-black se-fs-30 se-display-ib">工作职位:{{obj.title}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属行业:{{obj.categoryOne}}</view>
<view class="se-fw-6 se-c-black se-fs-30 se-display-ib">工作职位:{{obj.title || '暂未'}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属行业:{{obj.categoryOne || '暂未'}}</view>
<!-- <view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.title}}</view> -->
<view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.categoryTwo}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.categoryTwo || '暂未'}}</view>
</view>
</view>
<view class="se-flex se-flex-h-sb se-w-p-100 se-pt-20">
<view class="se-fs-24 se-display-ib">日薪</view>
<view class="se-c-orange se-fs-32 se-fw-6 se-display-ib">{{obj.employJob.salaryDay}}</view>
<view class="se-c-orange se-fs-32 se-fw-6 se-display-ib" v-if="obj.employJob && obj.employJob.salaryDay">{{obj.employJob.salaryDay}}</view>
<view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
</view>
</view>
<u-line dashed></u-line>
<view class="se-py-10 se-pb-30">
<view class="se-mt-30">
<text class="se-fs-28 se-c-black se-fw5">招聘公司名称:{{obj.workName}}</text>
<text class="se-fs-28 se-c-black se-fw5">招聘联系人:{{obj.employAuthenticationPerson.name}}</text>
<text class="se-fs-24 se-c-text-third se-ml-40">联系方式:{{obj.employAuthenticationPerson.phone}}</text>
<text class="se-fs-28 se-c-black se-fw5">招聘公司名称:{{obj.workName || '暂未'}}</text>
<text class="se-fs-28 se-c-black se-fw5">招聘联系人:{{obj.employAuthenticationPerson && obj.employAuthenticationPerson.name || '暂未'}}</text>
<text class="se-fs-24 se-c-text-third se-ml-40">联系方式:{{obj.employAuthenticationPerson && obj.employAuthenticationPerson.phone || '暂未'}}</text>
<view class="se-bgc-orange se-c-white se-fs-20 se-display-ib se-px-10 se-py-5 se-br-10 se-ml-10"
@click="copyText(obj.phone)">
复制
</view>
</view>
<view class="se-mt-10">
<text class="se-fs-24 se-c-33">工作地址:{{obj.workAddress}}</text>
<text class="se-fs-24 se-c-33">工作地址:{{obj.workAddress || '暂未'}}</text>
<view class="se-bgc-orange se-c-white se-fs-20 se-display-ib se-px-10 se-py-5 se-br-10 se-ml-10"
@click="copyText(obj.workAddress)">
复制
@ -132,10 +135,12 @@
<view class="se-fs-24 se-display-ib">支付方式</view>
<view class="se-fs-24 se-display-ib" v-if="obj.payType==0">提前支付</view>
<view class="se-fs-24 se-display-ib" v-if="obj.payType==1">试用后支付</view>
<view class="se-fs-24 se-display-ib se-c-99" v-if="obj.payType==null || obj.payType==undefined">暂未</view>
</view>
<view class="se-flex se-pt-30 se-flex-h-sb">
<view class="se-fs-24 se-display-ib">工作时间</view>
<view class="se-fs-24 se-display-ib">{{obj.employJob.startTime}} - {{obj.employJob.endTime}}</view>
<view class="se-fs-24 se-display-ib" v-if="obj.employJob && obj.employJob.startTime && obj.employJob.endTime">{{obj.employJob.startTime}} - {{obj.employJob.endTime}}</view>
<view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
</view>
</view>
<u-line dashed></u-line>
@ -148,10 +153,12 @@
</view>
</view>
<view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c">
<view @click="onService()"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
<button
open-type="contact"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
<text>联系客服</text>
</view>
</button>
</view>
</view>
@ -290,18 +297,7 @@
},
})
},
onService() {
console.info(`联系客服`)
uni.makePhoneCall({
phoneNumber: this.obj.workPhone,
success: () => {
console.log("拨打成功");
},
fail: (err) => {
console.error("拨打失败", err);
},
})
},
// -
confirmOrderTryCompany(){
confirmOrderTryCompany(this.orderId)


+ 53
- 28
pages_subpack/order-detail/index.vue View File

@ -75,11 +75,13 @@
<text>取消</text>
</view>
</template>
<template>
<view @click="onService()"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
<template v-if="stepsIndex!=6">
<button
open-type="contact"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange"
style="background: #ff7a31; border: none; padding: 0; margin: 0; line-height: 50rpx;">
<text>联系客服</text>
</view>
</button>
</template>
<template v-if="stepsIndex==4">
<view @click="confirmOrderTryCompanyOk()"
@ -103,30 +105,52 @@
<image class="se-w-160 se-h-160 se-br-10" :src="obj.workHeadImg" mode=""></image>
</view>
<view class="se-ml-20 se-flex se-flex-v-sa se-flex-ai-fs">
<view class="se-fw-6 se-c-black se-fs-30 se-display-ib">工作职位:{{obj.title}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属行业:{{obj.categoryOne}}</view>
<view class="se-fw-6 se-c-black se-fs-30 se-display-ib">工作职位:{{obj.title || '暂未'}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属行业:{{obj.categoryOne || '暂未'}}</view>
<!-- <view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.title}}</view> -->
<view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.categoryTwo}}</view>
<view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{obj.categoryTwo || '暂未'}}</view>
</view>
</view>
<view class="se-flex se-flex-h-sb se-w-p-100 se-pt-20">
<view class="se-fs-24 se-display-ib">日薪</view>
<view class="se-c-orange se-fs-32 se-fw-6 se-display-ib">{{obj.employJob.salaryDay}}</view>
<view class="se-fs-24 se-display-ib">试工日薪</view>
<view class="se-c-orange se-fs-32 se-fw-6 se-display-ib" v-if="obj.employJob && obj.employJob.salaryDay">{{obj.employJob.salaryDay}}</view>
<view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
</view>
<view class="se-flex se-flex-h-sb se-w-p-100 se-pt-20">
<view class="se-fs-24 se-display-ib">月薪</view>
<view class="se-c-orange se-fs-32 se-fw-6 se-display-ib"
v-if="obj.employJob && (obj.employJob.salaryMax || obj.employJob.salaryMin)">
<text v-if="obj.employJob.salaryMin">{{obj.employJob.salaryMin}}</text>
<text v-if="obj.employJob.salaryMax != obj.employJob.salaryMin
&& obj.employJob.salaryMax != 0 && obj.employJob.salaryMin != 0">-</text>
<text
v-if="obj.employJob.salaryMax != obj.employJob.salaryMin && obj.employJob.salaryMax != 0">
{{obj.employJob.salaryMax || 0}}
</text>
/
</view>
<view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
</view>
</view>
<u-line dashed></u-line>
<view class="se-py-10 se-pb-30">
<view class="se-mt-30">
<text class="se-fs-28 se-c-black se-fw5">招聘公司名称:{{obj.workName}}</text>
<text class="se-fs-28 se-c-black se-fw5">招聘联系人:{{obj.employAuthenticationPerson.name}}</text>
<text class="se-fs-24 se-c-text-third se-ml-40">联系方式:{{obj.employAuthenticationPerson.phone}}</text>
<text class="se-fs-28 se-c-black se-fw5">招聘公司名称{{obj.workName || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">招聘联系人{{obj.employAuthenticationPerson && obj.employAuthenticationPerson.name || '暂未'}}</text>
<br>
<text class="se-fs-24 se-c-text-third">联系方式{{obj.employAuthenticationPerson && obj.employAuthenticationPerson.phone || '暂未'}}</text>
<view class="se-bgc-orange se-c-white se-fs-20 se-display-ib se-px-10 se-py-5 se-br-10 se-ml-10"
@click="copyText(obj.phone)">
复制
</view>
</view>
<view class="se-mt-10">
<text class="se-fs-24 se-c-33">工作地址:{{obj.workAddress}}</text>
<text class="se-fs-24 se-c-33">工作地址{{obj.workAddress || '暂未'}}</text>
<view class="se-bgc-orange se-c-white se-fs-20 se-display-ib se-px-10 se-py-5 se-br-10 se-ml-10"
@click="copyText(obj.workAddress)">
复制
@ -142,10 +166,14 @@
<view class="se-fs-24 se-display-ib">支付方式</view>
<view class="se-fs-24 se-display-ib" v-if="obj.payType==0">提前支付</view>
<view class="se-fs-24 se-display-ib" v-if="obj.payType==1">试用后支付</view>
<view class="se-fs-24 se-display-ib se-c-99" v-if="obj.payType==null || obj.payType==undefined">暂未</view>
</view>
<view class="se-flex se-pt-30 se-flex-h-sb">
<view class="se-flex se-pt-30 se-flex-h-sb" v-if="obj.employJob">
<view class="se-fs-24 se-display-ib">工作时间</view>
<view class="se-fs-24 se-display-ib">{{obj.startTime}} - {{obj.endTime}}</view>
<view class="se-fs-24 se-display-ib" v-if="obj.employJob.startTime && obj.employJob.endTime">
{{formatDate(obj.employJob.startTime)}} - {{formatDate(obj.employJob.endTime)}}
</view>
<view class="se-fs-24 se-display-ib se-c-99" v-else>暂未</view>
</view>
</view>
<u-line dashed></u-line>
@ -157,7 +185,7 @@
<u-parse :content="obj.details"></u-parse>
</view>
</view>
<view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c">
<view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c">
<view @click="onService()"
class="se-mx-10 se-w-200 se-br-40 se-flex-h-c se-h-50 se-lh-50 se-ta-c se-fs-24 se-c-white se-bgc-orange">
<text>联系客服</text>
@ -264,18 +292,7 @@
}
})
},
onService() {
console.info(`联系客服`)
uni.makePhoneCall({
phoneNumber: this.obj.workPhone,
success: () => {
console.log("拨打成功");
},
fail: (err) => {
console.error("拨打失败", err);
},
})
},
// -
confirmOrder() {
confirmOrder(this.orderId)
@ -307,6 +324,14 @@
url: "/pages_subpack/pay/index"
})
},
formatDate(dateString) {
if (!dateString) return '';
const date = new Date(dateString);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
}
}
</script>


+ 36
- 23
pages_subpack/release/component/enterprise.vue View File

@ -342,31 +342,44 @@
handleAreaChange(){
const that = this;
wx.chooseLocation({
type: 'gcj02',
// type: 'wgs84',
success: function (res) {
const qqmapsdk = new QQMapWX({
key: 'TT7BZ-Z3LW4-KOAUB-KWHOA-SBJJ6-Y5B6R' //
});
uni.showLoading({
title:"获取中...."
})
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function(response) {
console.log('逆地理编码结果:', response);
uni.hideLoading()
that.form.longitude = response.result.location.lng
that.form.latitude = response.result.location.lat
that.form.area = response.result.address
},
fail: function(error) {
uni.hideLoading()
console.error('逆地理编码失败:', error);
}
});
that.form.latitude = res.latitude
that.form.longitude = res.longitude
if (!res.address && res.name) { //
return that.form.area = res.name
}
if (res.address || res.name) {
return that.form.area = res.address + res.name
}
that.form.area = '' //
// const qqmapsdk = new QQMapWX({
// key: 'TT7BZ-Z3LW4-KOAUB-KWHOA-SBJJ6-Y5B6R' //
// });
// uni.showLoading({
// title:"...."
// })
// qqmapsdk.reverseGeocoder({
// location: {
// latitude: res.latitude,
// longitude: res.longitude
// },
// success: function(response) {
// console.log('', response);
// uni.hideLoading()
// that.form.longitude = response.result.location.lng
// that.form.latitude = response.result.location.lat
// that.form.area = response.result.address
// },
// fail: function(error) {
// uni.hideLoading()
// console.error('', error);
// }
// });
}
})
// this.showPicker = true


+ 12
- 23
pages_subpack/release/component/master.vue View File

@ -295,31 +295,20 @@
handleAreaChange(){
const that = this;
wx.chooseLocation({
type: 'gcj02',
// type: 'wgs84',
success: function (res) {
const qqmapsdk = new QQMapWX({
key: 'TT7BZ-Z3LW4-KOAUB-KWHOA-SBJJ6-Y5B6R' //
});
uni.showLoading({
title:"获取中...."
})
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function(response) {
console.log('逆地理编码结果:', response);
uni.hideLoading()
that.form.longitude = response.result.location.lng
that.form.latitude = response.result.location.lat
that.form.area = response.result.address
},
fail: function(error) {
uni.hideLoading()
console.error('逆地理编码失败:', error);
}
});
that.form.latitude = res.latitude
that.form.longitude = res.longitude
if (!res.address && res.name) { //
return that.form.area = res.name
}
if (res.address || res.name) {
return that.form.area = res.address + res.name
}
that.form.area = '' //
}
})
},


+ 70
- 11
pages_subpack/work-detail/index.vue View File

@ -3,8 +3,19 @@
<view class="se-fs-36 se-c-black se-fw-6 se-py-20">
{{items.title}}
</view>
<view class="se-fs-26 se-c-orange se-fw-6 ">
{{items.salaryMin}} - {{items.salaryMax}}
<!-- <view class="se-fs-26 se-c-orange se-fw-6 ">
{{items.salaryMin}} - {{items.salaryMax}}/
</view> -->
<!-- 添加日薪月薪展示 -->
<view class="se-flex se-flex-h-sb se-py-20 se-b-b">
<view class="se-flex se-flex-v-c">
<text class="se-fs-32 se-c-text-sub">日薪</text>
<text class="se-fs-40 se-c-orange se-fw-6">{{ items.salaryDay }}</text>
</view>
<view class="se-flex se-flex-v-c">
<text class="se-fs-32 se-c-text-sub">月薪</text>
<text class="se-fs-40 se-c-orange se-fw-6">{{items.salaryMin}} - {{items.salaryMax}}</text>
</view>
</view>
<view class="se-flex se-flex-v se-py-20">
<view class="se-fs-24 se-c-text">
@ -54,7 +65,7 @@
<view class="se-px-20 se-pb-80 se-fs-20 se-flex">
<view @click="onPayment"
class="se-mx-10 se-flex-1 se-br-40 se-flex-h-c se-h-80 se-lh-80 se-ta-c se-fs-28 se-c-white se-bgc-orange">
<text>立即接单</text>
<text>立即应聘</text>
</view>
</view>
</view>
@ -87,14 +98,62 @@
})
},
onPayment(){
addOrderWork({id:this.id}).then(response=>{
console.log("下单成功");
uni.navigateTo({
url:"/pages_subpack/payment/index?id="+response.result.id
})
}).catch(error=>{
uni.showLoading({
title: '加载中'
})
//
this.$store.dispatch('onPersonalAuth', {
success: (person) => {
//
this.$store.dispatch('onResumeComplete', {
success: (resume) => {
//
addOrderWork({id:this.id}).then(response=>{
uni.hideLoading()
console.log("下单成功");
uni.navigateTo({
url:"/pages_subpack/payment/index?id="+response.result.id
})
}).catch(error=>{
uni.hideLoading()
})
},
fail: (resume) => {
uni.hideLoading()
//
uni.showModal({
title: '提示',
content: '请先完成简历信息,才能接单',
showCancel: false,
confirmText: '去完善',
success: (res) => {
if (res.confirm) {
uni.navigateTo({
url: '/pages_subpack/resume/index'
})
}
}
})
}
})
},
fail: (person) => {
uni.hideLoading()
//
uni.showModal({
title: '提示',
content: '请先完成个人认证,审核通过后才能接单',
showCancel: false,
confirmText: '去认证',
success: (res) => {
if (res.confirm) {
uni.navigateTo({
url: '/pages_subpack/person/index'
})
}
}
})
}
})
},
openAddress(){


+ 71
- 3
store/modules/user.js View File

@ -7,9 +7,8 @@ export default {
mutations: {
onAuth(state){
},
setUserInfo(state,obj){
state.userInfo = obj.userInfo
state.token = obj.token
@ -31,5 +30,74 @@ export default {
},
},
actions: {}
actions: {
// 企业身份认证检查
async onEnterpriseAuth({ commit }, config = {
success: () => {},
fail: () => {},
}) {
try {
const { getAuthenticationCompany } = await import('@/common/api.js')
const response = await getAuthenticationCompany({})
const company = response.result
if (company && company.status == 1) {
// 认证审核通过
config.success(company)
} else {
// 认证未通过或未认证
config.fail(company)
}
} catch (error) {
console.error('企业认证检查失败:', error)
config.fail(null)
}
},
// 个人身份认证检查
async onPersonalAuth({ commit }, config = {
success: () => {},
fail: () => {},
}) {
try {
const { getAuthenticationPerson } = await import('@/common/api.js')
const response = await getAuthenticationPerson({})
const person = response.result
if (person && person.status == 1) {
// 认证审核通过
config.success(person)
} else {
// 认证未通过或未认证
config.fail(person)
}
} catch (error) {
console.error('个人认证检查失败:', error)
config.fail(null)
}
},
// 简历完成状态检查
async onResumeComplete({ commit }, config = {
success: () => {},
fail: () => {},
}) {
try {
const { queryResumeById } = await import('@/common/api.js')
const response = await queryResumeById({})
const resume = response.result
if (resume && resume.id) {
// 简历已完成
config.success(resume)
} else {
// 简历未完成
config.fail(resume)
}
} catch (error) {
console.error('简历状态检查失败:', error)
config.fail(null)
}
}
}
}

Loading…
Cancel
Save