Prechádzať zdrojové kódy

个人中心-赏金奖励文件调整

Xiao_123 2 mesiacov pred
rodič
commit
cc1f5a99a8

+ 0 - 16
src/api/publicRecruitment/index.js

@@ -1,16 +0,0 @@
-import request from '@/config/axios'
-
-// 获取推荐职位投递状态数量
-export const getHireJobCvRelCount = async () => {
-  return await request.get({
-    url: '/app-api/menduner/system/job-cv-rel/hire/get/recommend/count'
-  })
-}
-
-// 获取推荐邀请投递的职位信息
-export const getHireJobCvRelPage = async (params) => {
-  return await request.get({
-    url: '/app-api/menduner/system/job-cv-rel/hire/page',
-    params
-  })
-}

+ 15 - 0
src/api/recruit/personal/personalCenter/index.js

@@ -38,4 +38,19 @@ export const getUserTradeOrder = async (params) => {
     url: '/app-api/menduner/system/trade/order/page',
     params
   })
+}
+
+// 获取推荐职位投递状态数量
+export const getHireJobCvRelCount = async () => {
+  return await request.get({
+    url: '/app-api/menduner/system/job-cv-rel/hire/get/recommend/count'
+  })
+}
+
+// 获取推荐邀请投递的职位信息
+export const getHireJobCvRelPage = async (params) => {
+  return await request.get({
+    url: '/app-api/menduner/system/job-cv-rel/hire/page',
+    params
+  })
 }

+ 0 - 40
src/views/publicRecruitment/components/integralTable.vue

@@ -1,40 +0,0 @@
-<template>
-  <CtTable
-    class="mt-3"
-    :items="items"
-    :headers="headers"
-    :loading="false"
-    :elevation="0"
-    :isTools="false"
-    :showPage="false"
-    itemKey="id"
-    height="60vh"
-  >
-  </CtTable>
-</template>
-
-<script setup>
-defineOptions({ name: 'myRegistration-integralTable'})
-defineProps({
-  tab: String,
-  items: Array
-})
-
-
-const headers = [
-  { title: '积分类型', key: '积分类型' },
-  { title: '变更时间', key: '时间' },
-  { title: '积分', key: '积分' },
-]
-
-</script>
-
-<style scoped lang="scss">
-:deep(.v-table > .v-table__wrapper > table > thead) {
-  background-color: #f7f8fa !important;
-}
-:deep(.v-selection-control__input) {
-  // color: var(--v-primary-base) !important;
-  color: #767778;
-}
-</style>

+ 0 - 36
src/views/publicRecruitment/index.vue

@@ -1,36 +0,0 @@
-<!-- 赏金与积分 -->
-<template>
-  <div class="py-3" :class="customClass">
-    <v-tabs v-model="tab" align-tabs="start" color="primary" bg-color="#fff" @update:model-value="getPositionList">
-      <v-tab :value="1">{{ $t('publicRecruitment.myRecommendation') }}</v-tab>
-    </v-tabs>
-    <div class="mt-3">
-      <div v-if="tab === 1">
-        <myRecommendation></myRecommendation>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script setup>
-defineOptions({name: 'personal-myPublicRecruitment-index'})
-import { ref } from 'vue'
-import myRecommendation from './myRecommendation.vue'
-
-defineProps({
-  customClass: {
-    type: String,
-    default: 'default-width'
-  }
-})
-
-import { useRoute } from 'vue-router'; const route = useRoute()
-import { useRouter } from 'vue-router'; const router = useRouter()
-
-const tab = ref(+route.query?.tab || 1)
-const getPositionList = () => {
-  if (route.query) router.replace({ path: route.path }) // 不留记录的清除跳转带过来的参数
-}
-</script>
-<style lang="scss" scoped>
-</style>

+ 0 - 126
src/views/publicRecruitment/myRecommendation.vue

@@ -1,126 +0,0 @@
-<!-- 我的推荐 -->
-<template>
-  <div class="d-flex">
-    <div class="pa-3 mr-3 white-bgc" style="border-radius: 5px; flex: 1;">
-      <div style="width: 100%;">
-        <!-- 统计 -->
-        <div class="statisticsBox">
-          <div class="statisticsBox-item" :class="{'act': index === active}" v-for="(item, index) in statisticsList" :key="item.value" @click="handleStatisticsItem(item, index)">
-            <div style="font-size: 18px; color: var(--color-333); font-family: 'MiSans-Bold';">{{ item.count }}</div>
-            <div style="font-size: 13px; color: var(--color-666);">{{ item.label }}</div>
-          </div>
-        </div>
-        <div class="topTip">推荐好友入职得赏金</div>
-        <!-- 数据 -->
-        <TablePage :items="items" :total="total" :pageInfo="query" @page="handleChangePage"></TablePage>
-      </div>
-    </div>
-    <!-- 滚动区域 -->
-    <!-- <div class="pa-3 white-bgc" style="height: 300px; border-radius: 5px; width: 260px;">
-      <bountyDisplay></bountyDisplay>
-    </div> -->
-  </div>
-</template>
-
-<script setup>
-defineOptions({name: 'defineOptions-name'})
-import { ref } from 'vue'
-import { getDict } from '@/hooks/web/useDictionaries'
-import { 
-  getHireJobCvRelCount, 
-  getHireJobCvRelPage
-} from '@/api/publicRecruitment'
-import TablePage from './components/table.vue'
-// import bountyDisplay from './components/bountyDisplay.vue'
-import { useUserStore } from '@/store/user'
-
-const active = ref(0)
-// 数据统计
-const statisticsList = ref([])
-const getData = async () => {
-  const data = await getHireJobCvRelCount()
-  if (!data || !data.length) return
-  statisticsList.value.forEach(e => {
-    const obj = data.find(k => k.key === e.value)
-    if (!obj) return
-    e.count = obj.value
-  })
-}
-
-// 列表
-const items = ref([])
-const total = ref(0)
-const query = ref({
-  pageSize: 10,
-  pageNo: 1,
-  status: null
-})
-const getTableList = async () => {
-  const res = await getHireJobCvRelPage(query.value)
-  items.value = res.list
-  total.value = res.total
-}
-
-// 状态
-const getStatusData = () => {
-  getDict('menduner_hire_job_cv_status').then(({ data }) => {
-    data = data?.length && data || []
-    statisticsList.value = data.map(e => {
-      return { ...e, count: 0 }
-    })
-    query.value.status = data[0].value
-    getData()
-    getTableList()
-  })
-}
-getStatusData()
-
-// 分页
-const handleChangePage = (e) => {
-  query.value.pageNo = e
-  getTableList()
-}
-
-// 钻取
-const handleStatisticsItem = (item, index) => {
-  active.value = index
-  query.value.pageNo = 1
-  query.value.status = item.value
-  getTableList()
-}
-
-// 更新账户信息
-const store = useUserStore()
-const updateAccountInfo = async () => {
-  await store.getUserAccountInfo()
-}
-updateAccountInfo()
-</script>
-
-<style lang="scss" scoped>
-.topTip {
-  color: var(--color-999);
-  margin-top: 8px;
-  font-size: 14px;
-  padding: 5px 10px;
-  width: 100%;
-  // background-color: var(--default-bgc);
-}
-.statisticsBox {
-  display: flex;
-  justify-content: space-around;
-  border-radius: 10px;
-  text-align: center;
-  padding: 10px 0;
-  background-color: var(--default-bgc);
-  .act {
-    div, span { color: var(--v-primary-base) !important; }
-  }
-  .statisticsBox-item {
-    cursor: pointer;
-    &:hover {
-      div { color: var(--v-primary-base) !important; }
-    }
-  }
-}
-</style>

+ 0 - 47
src/views/publicRecruitment/myRegistration.vue

@@ -1,47 +0,0 @@
-<!-- 积分明细 -->
-<template>
-  <div>
-    <integralShow></integralShow>
-    <!-- 任务中心 -->
-    <div style="font-size: 14px; color: var(--color-666); text-align: right;" class="mr-5 mt-3 cursor-pointer" @click="router.push({ path: '/recruit/personal/personalCenter/memberBenefits/taskCenter' })">《<span style=" color: var(--v-primary-base);">任务中心</span>》</div>
-    <!-- 积分明细 -->
-    <div class="mt-3">
-      <v-tabs v-model="tab" style="border-radius: 5px;" align-tabs="start" color="primary" bg-color="#f7f8fa" @update:model-value="handleChangeTab">
-        <v-tab :value="1"> {{ $t('points.whole') }}</v-tab>
-        <v-tab :value="2"> {{ $t('points.In') }}</v-tab>
-        <v-tab :value="3"> {{ $t('points.freezing') }}</v-tab>
-        <v-tab :value="4"> {{ $t('points.pay') }}</v-tab>
-      </v-tabs>
-      <TablePage :items="dataList"></TablePage>
-    </div>
-  </div>
-</template>
-
-<script setup>
-import TablePage from './components/integralTable.vue'
-import integralShow from '@/views/integral/pointsManagement/components/integralShow.vue'
-import { useRouter } from 'vue-router'; const router = useRouter()
-import { ref } from 'vue'
-defineOptions({name: 'personal-myPublicRecruitment-myRegistration'})
-const tab = ref(0)
-
-// 数据
-const dataList = ref([])
-const getData = () => {
-  dataList.value = [
-    { 积分类型: '积分签到', 时间: '2024-06-20 20:00', 积分: '5' },
-    { 积分类型: '积分到期', 时间: '2024-06-20 00:00', 积分: '-100' },
-    { 积分类型: '浏览积分', 时间: '2024-06-21 09:05', 积分: '15' },
-    { 积分类型: '浏览职业分析报告', 时间: '2024-06-22 10:27', 积分: '-20' },
-  ]
-}
-getData()
-
-// 切换
-const handleChangeTab = () => {
-  // tab
-  // getData()
-}
-</script>
-<style lang="scss" scoped>
-</style>

+ 0 - 0
src/views/publicRecruitment/components/bountyDisplay.vue → src/views/recruit/personal/PersonalCenter/bountyRewards/components/bountyDisplay.vue


+ 0 - 0
src/views/publicRecruitment/components/table.vue → src/views/recruit/personal/PersonalCenter/bountyRewards/components/table.vue


+ 120 - 6
src/views/recruit/personal/PersonalCenter/bountyRewards/index.vue

@@ -1,14 +1,128 @@
 <template>
-  <div>
-    <BountyRewardsPage customClass=""></BountyRewardsPage>
+  <div class="resume-box">
+    <div class="resume-header">
+      <div class="resume-title">我的推荐</div>
+    </div>
+
+    <div class="d-flex">
+      <div class="pa-3 mr-3 white-bgc" style="border-radius: 5px; flex: 1;">
+        <div style="width: 100%;">
+          <!-- 统计 -->
+          <div class="statisticsBox">
+            <div class="statisticsBox-item" :class="{'act': index === active}" v-for="(item, index) in statisticsList" :key="item.value" @click="handleStatisticsItem(item, index)">
+              <div style="font-size: 18px; color: var(--color-333); font-family: 'MiSans-Bold';">{{ item.count }}</div>
+              <div style="font-size: 13px; color: var(--color-666);">{{ item.label }}</div>
+            </div>
+          </div>
+          <div class="topTip">推荐好友入职得赏金</div>
+          <!-- 数据 -->
+          <TablePage :items="items" :total="total" :pageInfo="query" @page="handleChangePage"></TablePage>
+        </div>
+      </div>
+      <!-- 滚动区域 -->
+      <!-- <div class="pa-3 white-bgc" style="height: 300px; border-radius: 5px; width: 260px;">
+        <bountyDisplay></bountyDisplay>
+      </div> -->
+    </div>
   </div>
 </template>
 
 <script setup>
-defineOptions({ name: 'bountyRewards'})
-import BountyRewardsPage from '@/views/publicRecruitment/index'
-</script>
+defineOptions({name: 'bountyRewards'})
+import { ref } from 'vue'
+import { getDict } from '@/hooks/web/useDictionaries'
+import { getHireJobCvRelCount,  getHireJobCvRelPage } from '@/api/recruit/personal/personalCenter'
+import TablePage from './components/table.vue'
+// import bountyDisplay from './components/bountyDisplay.vue'
+import { useUserStore } from '@/store/user'
+
+const active = ref(0)
+// 数据统计
+const statisticsList = ref([])
+const getData = async () => {
+  const data = await getHireJobCvRelCount()
+  if (!data || !data.length) return
+  statisticsList.value.forEach(e => {
+    const obj = data.find(k => k.key === e.value)
+    if (!obj) return
+    e.count = obj.value
+  })
+}
+
+// 列表
+const items = ref([])
+const total = ref(0)
+const query = ref({
+  pageSize: 10,
+  pageNo: 1,
+  status: null
+})
+const getTableList = async () => {
+  const res = await getHireJobCvRelPage(query.value)
+  items.value = res.list
+  total.value = res.total
+}
 
-<style scoped lang="scss">
+// 状态
+const getStatusData = () => {
+  getDict('menduner_hire_job_cv_status').then(({ data }) => {
+    data = data?.length && data || []
+    statisticsList.value = data.map(e => {
+      return { ...e, count: 0 }
+    })
+    query.value.status = data[0].value
+    getData()
+    getTableList()
+  })
+}
+getStatusData()
+
+// 分页
+const handleChangePage = (e) => {
+  query.value.pageNo = e
+  getTableList()
+}
+
+// 钻取
+const handleStatisticsItem = (item, index) => {
+  active.value = index
+  query.value.pageNo = 1
+  query.value.status = item.value
+  getTableList()
+}
+
+// 更新账户信息
+const store = useUserStore()
+const updateAccountInfo = async () => {
+  await store.getUserAccountInfo()
+}
+updateAccountInfo()
+</script>
 
+<style lang="scss" scoped>
+.topTip {
+  color: var(--color-999);
+  margin-top: 8px;
+  font-size: 14px;
+  padding: 5px 10px;
+  width: 100%;
+  // background-color: var(--default-bgc);
+}
+.statisticsBox {
+  display: flex;
+  justify-content: space-around;
+  border-radius: 10px;
+  text-align: center;
+  padding: 10px 0;
+  background-color: var(--default-bgc);
+  .act {
+    div, span { color: var(--v-primary-base) !important; }
+  }
+  .statisticsBox-item {
+    cursor: pointer;
+    &:hover {
+      div { color: var(--v-primary-base) !important; }
+    }
+  }
+}
 </style>