Browse Source

refactor(components): 提取企业信息为独立组件并修改默认支付方式

将重复的企业信息展示逻辑提取为独立的CompanyInfo组件,提高代码复用性
同时将支付页面的默认支付方式从"1"改为"2"
master
主管理员 1 month ago
parent
commit
6683cc7a76
4 changed files with 137 additions and 67 deletions
  1. +118
    -0
      components/company-info/index.vue
  2. +17
    -65
      pages_subpack/job-order-detail/index.vue
  3. +1
    -1
      pages_subpack/pay/index.vue
  4. +1
    -1
      pages_subpack/payment/index.vue

+ 118
- 0
components/company-info/index.vue View File

@ -0,0 +1,118 @@
<template>
<view class="se-mt-10">
<view class="se-m-20 se-br-20 se-bs-b se-bgc-white se-py-20 se-px-30">
<view class="se-flex se-flex-ai-c se-pb-10">
<view class="line-orange"></view>
<view class="se-ml-10 se-fs-32 se-c-black se-fw-6">
企业信息
</view>
</view>
<view class="se-py-10 se-pb-30">
<view class="se-mt-30">
<text class="se-fs-28 se-c-black se-fw5">公司名称{{companyData.employAuthenticationCompany && companyData.employAuthenticationCompany.name || companyData.workName || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">公司地址{{companyData.employAuthenticationCompany && companyData.employAuthenticationCompany.address || companyData.workAddress || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">所属行业{{companyData.employAuthenticationCompany && companyData.employAuthenticationCompany.industryName || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">招聘联系人{{companyData.employAuthenticationPerson && companyData.employAuthenticationPerson.name || '暂未'}}</text>
<br>
<text class="se-fs-24 se-c-text-third">联系方式{{companyData.employAuthenticationPerson && companyData.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(companyData.employAuthenticationPerson && companyData.employAuthenticationPerson.phone)">
复制
</view>
</view>
<view class="se-mt-10">
<text class="se-fs-24 se-c-33">工作地址{{companyData.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(companyData.workAddress)">
复制
</view>
</view>
</view>
<!-- 联系企业按钮 -->
<view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c" v-if="showContactButton">
<view
@click="callCompany()"
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>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'CompanyInfo',
props: {
//
companyData: {
type: Object,
default: () => ({})
},
//
showContactButton: {
type: Boolean,
default: false
}
},
methods: {
//
copyText(text) {
if (!text) {
uni.showToast({
title: '暂无内容可复制',
icon: 'none'
});
return;
}
uni.setClipboardData({
data: text,
success: () => {
uni.showToast({
title: "复制成功",
icon: "none",
});
},
fail: (err) => {
console.error("复制失败", err);
},
});
},
//
callCompany() {
const phone = this.companyData.employAuthenticationPerson && this.companyData.employAuthenticationPerson.phone;
if (phone) {
uni.makePhoneCall({
phoneNumber: phone,
fail: (err) => {
console.error('拨打电话失败', err);
uni.showToast({
title: '拨打电话失败',
icon: 'none'
});
}
});
} else {
uni.showToast({
title: '企业联系人电话号码不存在',
icon: 'none'
});
}
}
}
}
</script>
<style lang="scss" scoped>
.line-orange {
width: 8rpx;
height: 32rpx;
background: #ff7a31;
border-radius: 4rpx;
}
</style>

+ 17
- 65
pages_subpack/job-order-detail/index.vue View File

@ -133,6 +133,15 @@
</template> </template>
</view> </view>
</view> </view>
<!-- 企业信息展示部分 (师傅视角) -->
<company-info
:company-data="obj"
v-if="!!type"
:show-contact-button="!!type">
</company-info>
<view class="se-px-40 se-py-20" @click="toPayment"> <view class="se-px-40 se-py-20" @click="toPayment">
<view class="se-flex se-flex-ai-c se-pb-10"> <view class="se-flex se-flex-ai-c se-pb-10">
<view class="line-orange"></view> <view class="line-orange"></view>
@ -251,48 +260,11 @@
</view> </view>
<!-- 企业信息展示部分 (师傅视角) --> <!-- 企业信息展示部分 (师傅视角) -->
<view class="se-mt-10">
<view class="se-m-20 se-br-20 se-bs-b se-bgc-white se-py-20 se-px-30">
<view class="se-flex se-flex-ai-c se-pb-10">
<view class="line-orange"></view>
<view class="se-ml-10 se-fs-32 se-c-black se-fw-6">
企业信息
</view>
</view>
<view class="se-py-10 se-pb-30">
<view class="se-mt-30">
<text class="se-fs-28 se-c-black se-fw5">公司名称{{obj.employAuthenticationCompany && obj.employAuthenticationCompany.name || obj.workName || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">公司地址{{obj.employAuthenticationCompany && obj.employAuthenticationCompany.address || obj.workAddress || '暂未'}}</text>
<br>
<text class="se-fs-28 se-c-black se-fw5">所属行业{{obj.employAuthenticationCompany && obj.employAuthenticationCompany.industryName || '暂未'}}</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.employAuthenticationPerson && obj.employAuthenticationPerson.phone)">
复制
</view>
</view>
<view class="se-mt-10">
<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)">
复制
</view>
</view>
</view>
<!-- 联系企业按钮 -->
<view class="se-px-220 se-pb-30 se-fs-20 se-flex se-flex-h-c" v-if="type">
<view
@click="callCompany()"
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>
</view>
</view>
</view>
</view>
<company-info
:company-data="obj"
v-if="!type"
:show-contact-button="!!type">
</company-info>
</view> </view>
</template> </template>
@ -307,9 +279,11 @@
confirmOrderTryCompanyOk, confirmOrderTryCompanyOk,
} from "@/common/api.js" } from "@/common/api.js"
import OrderStatus from "@/components/order-status/index.vue" import OrderStatus from "@/components/order-status/index.vue"
import CompanyInfo from "@/components/company-info/index.vue"
export default { export default {
components: { components: {
OrderStatus
OrderStatus,
CompanyInfo
}, },
data() { data() {
return { return {
@ -489,28 +463,6 @@
}); });
} }
}, },
//
callCompany() {
const phone = this.obj.employAuthenticationPerson && this.obj.employAuthenticationPerson.phone;
if (phone) {
uni.makePhoneCall({
phoneNumber: phone,
fail: (err) => {
console.error('拨打电话失败', err);
uni.showToast({
title: '拨打电话失败',
icon: 'none'
});
}
});
} else {
uni.showToast({
title: '企业联系人电话号码不存在',
icon: 'none'
});
}
},
} }
} }
</script> </script>


+ 1
- 1
pages_subpack/pay/index.vue View File

@ -134,7 +134,7 @@
data() { data() {
return { return {
amount: 0, amount: 0,
payRadio: "1",
payRadio: "2",
orderId : 0, orderId : 0,
checked : 0, checked : 0,
detail : {}, detail : {},


+ 1
- 1
pages_subpack/payment/index.vue View File

@ -119,7 +119,7 @@
myMoney:"",// myMoney:"",//
items:{}, items:{},
amount:"9.9", amount:"9.9",
payRadio:"1",
payRadio:"2",
sysList:[] sysList:[]
} }
}, },


Loading…
Cancel
Save