Xiao_123 пре 5 месеци
родитељ
комит
604ae09d99

+ 4 - 4
.env.local

@@ -4,15 +4,15 @@ NODE_ENV=development
 VITE_DEV=true
 
 # 请求路径
-VITE_BASE_URL='https://www.menduner.com:1443/' # 生产环境
-# VITE_BASE_URL='http://192.168.3.80' # 测试环境
+# VITE_BASE_URL='https://www.menduner.com:1443/' # 生产环境
+VITE_BASE_URL='http://192.168.3.80' # 测试环境
 
 # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
 VITE_UPLOAD_TYPE=server
 
 # 上传路径
-VITE_UPLOAD_URL='https://www.menduner.com:1443/admin-api/infra/file/upload' # 生产环境
-# VITE_UPLOAD_URL='http://192.168.3.80/admin-api/infra/file/upload' # 测试环境
+# VITE_UPLOAD_URL='https://www.menduner.com:1443/admin-api/infra/file/upload' # 生产环境
+VITE_UPLOAD_URL='http://192.168.3.80/admin-api/infra/file/upload' # 测试环境
 
 # 接口地址
 VITE_API_URL=/admin-api

+ 63 - 0
src/views/menduner/system/person/details/components/balanceDetails.vue

@@ -0,0 +1,63 @@
+<template>
+  <ContentWrap>
+    <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
+      <el-table-column label="关联业务标题" align="center" prop="title" />
+      <el-table-column label="交易金额" align="center" prop="price">
+        <template #default="{ row }"> {{ fenToYuan(row.price) }} 元</template>
+      </el-table-column>
+      <el-table-column label="钱包余额" align="center" prop="balance">
+        <template #default="{ row }"> {{ fenToYuan(row.balance) }} 元</template>
+      </el-table-column>
+      <el-table-column
+        label="交易时间"
+        align="center"
+        prop="createTime"
+        :formatter="dateFormatter"
+        width="180px"
+      />
+    </el-table>
+    <!-- 分页 -->
+    <Pagination
+      :total="total"
+      v-model:page="queryParams.pageNo"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </ContentWrap>
+</template>
+
+<script lang="ts" setup>
+import { dateFormatter } from '@/utils/formatTime'
+import * as WalletTransactionApi from '@/api/pay/wallet/transaction'
+import { fenToYuan } from '@/utils'
+defineOptions({ name: 'PersonBalanceDetails' })
+
+const props = defineProps({
+  userId: String
+})
+
+const loading = ref(true) // 列表的加载中
+const total = ref(0) // 列表的总页数
+const queryParams = reactive({
+  pageNo: 1,
+  pageSize: 10,
+  userId: props.userId
+})
+
+const list = ref([]) // 列表的数据
+const getList = async () => {
+  loading.value = true
+  try {
+    const data = await WalletTransactionApi.getWalletTransactionPage(queryParams)
+    list.value = data.list
+    total.value = data.total
+  } finally {
+    loading.value = false
+  }
+}
+
+/** 初始化 **/
+onMounted(() => {
+  getList()
+})
+</script>

+ 8 - 27
src/views/menduner/system/person/details/components/deliveryJob.vue

@@ -4,7 +4,6 @@
     <el-table-column label="发布企业" align="center" prop="enterprise.anotherName">
       <template #default="scope">{{ scope.row.enterprise.anotherName || scope.row.enterprise.name}}</template>
     </el-table-column>
-    <!-- <el-table-column label="职位类型" align="center" prop="job.positionName" /> -->
     <el-table-column label="地区" align="center" prop="job.areaName" />
     <el-table-column label="薪资" align="center" prop="job.payFrom">
       <template #default="scope">
@@ -16,31 +15,11 @@
     </el-table-column>
     <el-table-column label="投递附件名称" align="center" prop="cvRel.title" />
     <el-table-column label="投递时间" align="center" prop="cvRel.createTime" :formatter="dateFormatter" width="180px" />
-    <!-- <el-table-column label="要求学历" align="center" prop="job.eduType">
+    <el-table-column label="投递状态" align="center">
       <template #default="scope">
-        <dict-tag :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="scope.row.job.eduType" />
+        {{ scope.row.cvRel.status === '0' ? '未查看' : '已查看'}}
       </template>
     </el-table-column>
-    <el-table-column label="工作经验" align="center" prop="job.expType">
-      <template #default="scope">
-        <dict-tag :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="scope.row.job.expType" />
-      </template>
-    </el-table-column>
-    <el-table-column label="职位状态" align="center" prop="job.status">
-        <template #default="scope">
-          <dict-tag :type="DICT_TYPE.MENDUNER_STATUS" :value="scope.row.job.status" />
-        </template>
-      </el-table-column> -->
-    <!-- <el-table-column label="刷新时间" align="center" prop="job.updateTime" width="180px">
-      <template #default="scope">
-        {{ timesTampChange(scope.row.job.updateTime, 'Y-M-D h:m') }}
-      </template>
-    </el-table-column> -->
-    <!-- <el-table-column label="到期时间" align="center" prop="job.expireTime" width="180px">
-      <template #default="scope">
-        {{ scope.row.job.expireTime ? timesTampChange(scope.row.job.expireTime, 'Y-M-D') : '长期有效' }}
-      </template>
-    </el-table-column> -->
     <el-table-column label="操作" align="center">
       <template #default="scope">
         <el-button link type="primary" @click="openDetail(scope.row)" class="m-r-10px">详情</el-button>
@@ -75,8 +54,8 @@
       <el-descriptions-item label="投递时间">
         {{ itemData.time ? timesTampChange(itemData.time, 'Y-M-D h:m:s') : '' }}
       </el-descriptions-item>
-      <el-descriptions-item label="招聘类型">
-        <dict-tag :type="DICT_TYPE.MENDUNER_JOB_TYPE" :value="itemData.type" />
+      <el-descriptions-item label="投递状态">
+        {{ itemData.cvStatus === '0' ? '未查看' : '已查看' }}
       </el-descriptions-item>
       <el-descriptions-item label="学历要求">
         <dict-tag :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="itemData.eduType" />
@@ -89,7 +68,7 @@
         {{ itemData.expireTime ? timesTampChange(itemData.expireTime, 'Y-M-D') : '长期有效' }}
       </el-descriptions-item>
       <el-descriptions-item label="职位关键字">
-        <el-tag type="primary" v-for="k in itemData.tagList" :key="k" class="m-r-5px">{{ k }}</el-tag>
+        <el-tag type="primary" v-for="k in itemData.tagList" :key="k" class="m-r-5px m-b-5px">{{ k }}</el-tag>
       </el-descriptions-item>
     </el-descriptions>
     <template #footer>
@@ -144,8 +123,10 @@ const openDetail = (item) => {
     enterpriseName: item.enterprise.anotherName || item.enterprise.name, 
     url: item.cvRel.url, 
     title: item.cvRel.title, 
-    time: item.cvRel.createTime
+    time: item.cvRel.createTime,
+    cvStatus: item.cvRel.status
   }
+  console.log(itemData.value, '===========')
   dialogVisible.value = true
 }
 </script>

+ 3 - 3
src/views/menduner/system/person/details/components/edu.vue

@@ -16,14 +16,14 @@
       label="在校开始日期"
       align="center"
       prop="startTime"
-      :formatter="dateFormatter"
+      :formatter="dateFormatter2"
       width="180px"
     />
     <el-table-column
       label="在校结束日期"
       align="center"
       prop="endTime"
-      :formatter="dateFormatter"
+      :formatter="dateFormatter2"
       width="180px"
     />
     <el-table-column label="在校经历" align="center" prop="content" :show-overflow-tooltip="true" />
@@ -41,7 +41,7 @@
 defineOptions({ name: 'PersonEduList'})
 import { PersonInfoApi } from '@/api/menduner/system/person'
 import { DICT_TYPE } from '@/utils/dict'
-import { dateFormatter } from '@/utils/formatTime'
+import { dateFormatter2 } from '@/utils/formatTime'
 
 const props = defineProps({
   userId: String

+ 3 - 3
src/views/menduner/system/person/details/components/exp.vue

@@ -19,14 +19,14 @@
       label="工作开始日期"
       align="center"
       prop="startTime"
-      :formatter="dateFormatter"
+      :formatter="dateFormatter2"
       width="180px"
     />
     <el-table-column
       label="工作结束日期"
       align="center"
       prop="endTime"
-      :formatter="dateFormatter"
+      :formatter="dateFormatter2"
       width="180px"
     />
     <el-table-column label="业绩" align="center" prop="achievement" :show-overflow-tooltip="true" />
@@ -45,7 +45,7 @@
 defineOptions({ name: 'PersonExpList'})
 import { PersonInfoApi } from '@/api/menduner/system/person'
 import { DICT_TYPE } from '@/utils/dict'
-import { dateFormatter } from '@/utils/formatTime'
+import { dateFormatter2 } from '@/utils/formatTime'
 
 const props = defineProps({
   userId: String

+ 1 - 1
src/views/menduner/system/person/details/components/pointsChange.vue

@@ -5,7 +5,7 @@
     <el-table-column label="获得积分点" align="center" prop="point" />
     <el-table-column label="剩余点数" align="center" prop="totalPoint" />
     <el-table-column
-      label="发生事件"
+      label="发生时间"
       align="center"
       prop="createTime"
       :formatter="dateFormatter"

+ 0 - 59
src/views/menduner/system/person/details/components/project.vue

@@ -1,59 +0,0 @@
-<template>
-  <el-table v-loading="loading" :data="tableData" :stripe="true" class="m-t-20px">
-    <el-table-column label="项目名称" align="center" prop="name" />
-    <el-table-column
-      label="项目开始日期"
-      align="center"
-      prop="startTime"
-      :formatter="dateFormatter"
-      width="180px"
-    />
-    <el-table-column
-      label="项目结束日期"
-      align="center"
-      prop="endTime"
-      :formatter="dateFormatter"
-      width="180px"
-    />
-    <el-table-column label="描述内容" align="center" prop="content" :show-overflow-tooltip="true" />
-  </el-table>
-
-  <Pagination
-    :total="total"
-    v-model:page="queryParams.pageNo"
-    v-model:limit="queryParams.pageSize"
-    @pagination="getList"
-  />
-</template>
-
-<script setup>
-defineOptions({ name: 'PersonProjectList'})
-import { PersonInfoApi } from '@/api/menduner/system/person'
-import { DICT_TYPE } from '@/utils/dict'
-import { dateFormatter } from '@/utils/formatTime'
-
-const props = defineProps({
-  userId: String
-})
-
-const loading = ref(false)
-const tableData = ref([])
-const total = ref(0)
-const queryParams = reactive({
-  pageNo: 1,
-  pageSize: 10,
-  userId: props.userId
-})
-
-const getList = async () => {
-  loading.value = true
-  try {
-    const data = await PersonInfoApi.getPersonProjectPage(queryParams)
-    tableData.value = data.list
-    total.value = data.total
-  } finally {
-    loading.value = false
-  }
-}
-getList()
-</script>

+ 42 - 34
src/views/menduner/system/person/details/components/rechargeOrder.vue

@@ -1,31 +1,45 @@
 <template>
-  <el-table v-loading="loading" :data="tableData" :stripe="true" class="m-t-20px">
-    <el-table-column label="充值点数" align="center" prop="id">
-      <template #default="scope">
-        {{ payCalculation(scope.row.payPrice, true) }}
-      </template>
-    </el-table-column>
-    <el-table-column label="支付金额" align="center" prop="payPrice">
-      <template #default="scope">
-        {{ payCalculation(scope.row.payPrice) }}
-      </template>
-    </el-table-column>
-    <el-table-column label="支付渠道" align="center" prop="payChannelName" />
-    <el-table-column label="支付订单编号" align="center" prop="payOrderId" />
-    <el-table-column label="支付成功的外部订单号" align="center" prop="payOrderChannelOrderNo" />
-    <el-table-column label="是否已支付" align="center" prop="payStatus">
-      <template #default="scope">
-        {{ scope.row.payStatus ? "已支付" : "未支付"}}
-      </template>
-    </el-table-column>
-    <el-table-column
-      label="订单支付时间"
-      align="center"
-      prop="payTime"
-      :formatter="dateFormatter"
-      width="180px"
-    />
-  </el-table>
+  <el-table v-loading="loading" :data="tableData" :stripe="true">
+      <el-table-column label="用户实际到余额" align="center" prop="totalPrice">
+        <template #default="scope">
+          {{ fenToYuan(scope.row.totalPrice) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="实际支付金额" align="center" prop="payPrice">
+        <template #default="scope">
+          {{ fenToYuan(scope.row.payPrice) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="钱包赠送金额" align="center" prop="bonusPrice">
+        <template #default="scope">
+          {{ fenToYuan(scope.row.bonusPrice) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="是否已支付" align="center" prop="payStatus">
+        <template #default="scope">
+          {{ scope.row.payStatus ? '已支付': '未支付' }}
+        </template>
+      </el-table-column>
+      <el-table-column label="支付成功的支付渠道" align="center" prop="payChannelCode">
+        <template #default="scope">
+          <dict-tag :type="DICT_TYPE.PAY_CHANNEL_CODE" :value="scope.row.payChannelCode" />
+        </template>
+      </el-table-column>
+      <el-table-column label="支付成功的外部订单号" align="center" prop="payOrderChannelOrderNo" />
+      <el-table-column label="退款状态" align="center" prop="refundStatus">
+        <template #default="scope">
+          <dict-tag v-if="scope.row.payStatus && scope.row.refundStatus !== 0" :type="DICT_TYPE.PAY_REFUND_STATUS" :value="scope.row.refundStatus" />
+          <span v-else></span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="订单支付时间"
+        align="center"
+        prop="payTime"
+        :formatter="dateFormatter"
+        width="180px"
+      />
+    </el-table>
 
   <Pagination
     :total="total"
@@ -41,6 +55,7 @@ defineOptions({ name: 'PersonRechargeOrderList'})
 import { PersonInfoApi } from '@/api/menduner/system/person'
 import { DICT_TYPE } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
+import { fenToYuan } from '@/utils'
 
 const props = defineProps({
   userId: String
@@ -66,11 +81,4 @@ const getList = async () => {
   }
 }
 getList()
-
-const payCalculation = (count, status) => {
-  if ((count - 0) === 0) return 0
-  if (!count) return ''
-  const Magnification = 1 / 100 
-  return status ? 10 * ((count - 0) * Magnification).toFixed(2) : ((count - 0) * Magnification).toFixed(2)
-}
 </script>

+ 7 - 3
src/views/menduner/system/person/details/index.vue

@@ -37,6 +37,9 @@
       <el-col :span="24">
         <el-card shadow="never">
           <el-tabs>
+            <el-tab-pane label="职位投递记录">
+              <DeliveryJob :user-id="userId" />
+            </el-tab-pane>
             <el-tab-pane v-hasPermi="['menduner:system:edu-exp:query']" label="教育经历">
               <Edu :user-id="userId" />
             </el-tab-pane>
@@ -49,12 +52,12 @@
             <el-tab-pane v-hasPermi="['menduner:system:user-account:query']" label="钱包充值记录">
               <RechargeOrder :user-id="userId" />
             </el-tab-pane>
+            <el-tab-pane label="余额明细">
+              <BalanceDetails :user-id="userId" />
+            </el-tab-pane>
             <el-tab-pane v-hasPermi="['menduner:system:user-account-record:query']" label="积分变动记录">
               <PointsChange :user-id="userId" />
             </el-tab-pane>
-            <el-tab-pane label="职位投递记录">
-              <DeliveryJob :user-id="userId" />
-            </el-tab-pane>
           </el-tabs>
         </el-card>
       </el-col>
@@ -76,6 +79,7 @@ import PointsChange from './components/pointsChange.vue'
 import Collect from './components/collect.vue'
 import Attachment from './components/attachment.vue'
 import DeliveryJob from './components/deliveryJob.vue'
+import BalanceDetails from './components/balanceDetails.vue'
 
 /** 初始化 */
 const { currentRoute } = useRouter() // 路由