Xiao_123 9 月之前
父節點
當前提交
21cb5b7cff

+ 0 - 1
src/components/pay/confirmPaymentDialog.vue

@@ -13,7 +13,6 @@
       <pay
         ref="payRef"
         v-bind="$attrs"
-        @payTypeChange="null"
         @paySuccess="paySuccess"
       ></pay>
     </CtDialog>

+ 29 - 18
src/components/pay/index.vue

@@ -14,8 +14,8 @@
     <!-- 赏金所需 -->
     <div class="pt-3 pb-5" style="color: var(--v-error-base); font-weight: bold; text-align: center;">
       <!-- <span class="font-size-13">¥</span> -->
-      <span class="font-size-30">{{ cost }}</span>
-      <!-- <span class="font-size-13 ml-1">点数</span> -->
+      <span class="font-size-30"> {{ cost }}</span>
+      <span class="font-size-15 ml-1">{{ unit }}</span>
     </div>
     <template v-if="payTypeList?.length">
       <v-chip-group v-model="payType" selected-class="text-primary" column mandatory @update:modelValue="payTypeChange">
@@ -29,16 +29,14 @@
         <!-- 钱包支付 -->
         <div v-if="isWalletPay" class="py-10" style="text-align: center;">
           <div>
-            <!-- <span >{{ $t('enterprise.account.accountBalances') }}:</span> -->
-             <span>剩余点数:</span>
+            <span>剩余点数:</span>
             <span style="color: var(--v-primary-base);">{{ balance }}</span>
           </div>
           <div class="my-3" v-if="balanceNotEnough">
             <!-- <v-icon color="warning">mdi-information</v-icon> -->
             <!-- <span class="color-warning">{{ props.params?.txt || '当前余额不足,请选择其他支付方式' }}</span> -->
-            <span class="color-warning">
-              当前点数不足
-              <div class="recharge">充值</div>
+            <span class="color-error">
+              当前剩余点数不足,<span class="text-decoration-underline cursor-pointer" @click="showRecharge = true">去充值</span>
             </span>
           </div>
         </div>
@@ -60,6 +58,10 @@
       </div>
     </template>
   </v-card>
+
+  <CtDialog :visible="showRecharge" :widthType="1" titleClass="text-h6" title="点数充值" :footer="false" submitText="确认" @close="handleClose">
+    <Recharge @finish="handleFinish"></Recharge>
+  </CtDialog>
 </template>
 
 <script setup>
@@ -72,6 +74,7 @@ import { createTradeOrder } from '@/api/position'
 import { useSharedState } from '@/store/sharedState'
 import { rechargeOrderCreate } from '@/api/recruit/enterprise/member/points'
 // import { payCalculation } from '@/utils/position'
+import Recharge from '@/views/recruit/enterprise/memberCenter/myMembers/components/pointsAndBalance.vue'
 
 const emit = defineEmits(['payTypeChange', 'paySuccess'])
 const props = defineProps({
@@ -107,8 +110,13 @@ const props = defineProps({
     type: Number,
     default: 2 // 订单类型 0平台订单| 1发布职位订单| 2发布众聘职位订单,示例值(1)
   },
+  unit: {
+    type: String,
+    default: '点数'
+  }
 })
 
+const showRecharge = ref(false)
 const loading = ref(true)
 const tip = ref('')
 
@@ -120,12 +128,12 @@ const tip = ref('')
 //      如果是点数支付也要走上面的步骤,只是不生成二维码
 
 
-const balance = JSON.parse(localStorage.getItem('enterpriseUserAccount'))?.balance || 0
+const balance = ref(JSON.parse(localStorage.getItem('enterpriseUserAccount'))?.balance || 0)
 const balanceNotEnough = computed(() => {
+  console.log(props.cost, balance.value, 'balanceNotEnough')
   return (Number(props.cost) > Number(balance))
 })
 
-
 // 生成二维码内容
 const timer = ref(null)
 onUnmounted(() => {
@@ -218,7 +226,7 @@ const payTypeChange = (value) => {
   isQrCodePay.value = qrCodePay.includes(payType.value)
   isWalletPay.value = walletPay.includes(payType.value)
   paySubmit() // 生成二维码内容
-  emit('payTypeChange', value, balanceNotEnough)
+  // emit('payTypeChange', value, balanceNotEnough)
 }
 // 1.支付方式
 const payType = ref('')
@@ -292,15 +300,18 @@ const payStatus = async () => {
   }
 }
 
+const handleClose = () => {
+  showRecharge.value = false
+}
+
+const handleFinish = () => {
+  showRecharge.value = false
+  console.log(localStorage.getItem('enterpriseUserAccount'), '------')
+  balance.value = JSON.parse(localStorage.getItem('enterpriseUserAccount'))?.balance || 0
+  console.log(balance.value, 'balance.value')
+}
+
 </script>
 <style lang="scss" scoped>
 .font-size-30 { font-size: 30px; }
-.recharge {
-  margin: 12px;
-  color: red;
-  cursor: pointer;
-  &:hover {
-    color: rgba(255, 0, 0, 0.6);
-  }
-}
 </style>

+ 3 - 0
src/views/recruit/enterprise/memberCenter/myMembers/components/pointsAndBalance.vue

@@ -80,6 +80,7 @@
   <confirmPaymentDialog
     v-if="showConfirmPaymentDialog"
     :appId="11"
+    unit="元"
     :cost="payCalculation(rechargeDataItem.payPrice, 'realPay')"
     :rechargeInfo="rechargeDataItem"
     @paySuccess="paySuccess"
@@ -95,6 +96,7 @@ import Public from './public.vue'
 import { getEnterpriseRechargePackageList } from '@/api/recruit/enterprise/member/points'
 import { payCalculation } from '@/utils/position'
 
+const emits = defineEmits(['finish'])
 defineProps({
   showTitle: {
     type: Boolean,
@@ -148,6 +150,7 @@ import { useUserStore } from '@/store/user'; const store = useUserStore()
 const paySuccess = async () => {
   showConfirmPaymentDialog.value = false
   await store.getEnterpriseUserAccountInfo()
+  emits('finish')
 }
 
 

+ 9 - 35
src/views/recruit/personal/position/components/details.vue

@@ -29,31 +29,9 @@
           <div v-if="info?.hire" class="font-size-14 mt-3 color-error">推荐好友入职成功即可获得赏金</div>
         </div>
         <div class="banner-tools-btns">
-          <v-btn
-            class="radius mr-2 button-item"
-            variant="outlined"
-            color="error"
-            prepend-icon="mdi-share-outline"
-            style="height: 36px;"
-            v-if="info?.hire"
-            @click="handleShare"
-          >我要赏金</v-btn>
-          <v-btn
-            v-else
-            class="radius mr-2 button-item"
-            variant="outlined"
-            color="error"
-            prepend-icon="mdi-share-outline"
-            style="height: 36px;"
-            @click="handleShare"
-          >{{ $t('position.rewardsShared') }}</v-btn>
-          <v-btn
-            class="button-item radius"
-            color="warning" 
-            variant="outlined" 
-            :prepend-icon="isCollection ? 'mdi-heart' : 'mdi-heart-outline'"
-            @click="handleCollection"
-          >{{ isCollection ? $t('position.cancelFavorite') : $t('position.collection') }}</v-btn>
+          <v-btn v-if="info?.hire" class="radius mr-2 button-item" variant="outlined" color="error" prepend-icon="mdi-share-outline" @click="handleShare">我要赏金</v-btn>
+          <v-btn v-else class="radius mr-2 button-item" variant="outlined" color="error" prepend-icon="mdi-share-outline" @click="handleShare">{{ $t('position.rewardsShared') }}</v-btn>
+          <v-btn class="button-item radius" color="warning" variant="outlined" :prepend-icon="isCollection ? 'mdi-heart' : 'mdi-heart-outline'" @click="handleCollection">{{ isCollection ? $t('position.cancelFavorite') : $t('position.collection') }}</v-btn>
           <v-btn class="button-item mx-2 radius" color="success" variant="outlined" @click="toDetails(info)">{{ $t('position.communicate') }}</v-btn>
           <v-btn class="button-item radius" :disabled="delivery" color="primary" variant="outlined" @click="handleDelivery">{{ delivery ? $t('position.delivered') : $t('position.submitResume') }}</v-btn>
         </div>
@@ -124,23 +102,18 @@
     >
       <div>
         <div class="mb-3">方式一:生成图片并下载</div>
-        <v-btn color="primary" @click="generateAndDownloadImage">点击生成图片</v-btn>
+        <v-btn color="primary" variant="outlined" @click="generateAndDownloadImage">点击生成职位详情图片并下载</v-btn>
       </div>
-      <div class="mt-10">
+      <div class="mt-10" v-if="getToken()">
         <div class="mb-3">方式二:复制以下链接分享给好友</div>
         <div class="pa-4" style="background-color: #f0f0f0; border-radius: 8px;">{{ shareUrlTxt }}</div>
         <v-btn v-if="!getToken()" class="mt-1" color="warning" variant="text">您还未登录,登录后分享可享受分享有礼活动!</v-btn>
-        <v-btn class="mt-4 ml-3" color="primary" v-clipboard="() => shareUrlTxt" @click="copyText">点击复制分享链接</v-btn>
+        <v-btn class="mt-4 ml-3" color="primary" variant="outlined" v-clipboard="() => shareUrlTxt" @click="copyText">点击复制分享链接</v-btn>
       </div>
       <template #footer>
         <v-divider></v-divider>
         <div>
-          <v-btn
-            class="float-right ma-2"
-            color="primary"
-            variant="text"
-            @click="shareDialog = false"
-          >{{ $t('common.close') }}</v-btn>
+          <v-btn class="float-right ma-2" color="primary" variant="text" @click="shareDialog = false">{{ $t('common.close') }}</v-btn>
         </div>
       </template>
     </Dialog>
@@ -289,8 +262,9 @@ const handleShare = async () => {
 // const openShareLink = () => { window.open(shareUrl.value) }
 
 // 复制分享链接
+const accessUrl = import.meta.env.VITE_ACCESS_BASE_URL
 const shareUrlTxt = computed(() => {
-  return 'http://menduner.citupro.com:7878' + shareUrl.value
+  return accessUrl + shareUrl.value
 })
 const copyText = async () => {
   Snackbar.success('复制成功')