主管员工绩效排行时间选择器查询+排序查询+手机号+昵称查询bug修复

This commit is contained in:
2025-07-20 16:24:07 +08:00
parent 6b0562b498
commit 18c86adc94
10 changed files with 93 additions and 98 deletions

BIN
dist716回归测试.zip Normal file

Binary file not shown.

BIN
dist9091.zip Normal file

Binary file not shown.

View File

@ -6,15 +6,15 @@ import router from "../router";
const myAxios = axios.create({ const myAxios = axios.create({
withCredentials: true, withCredentials: true,
baseURL:'http://localhost:9091' // baseURL:'http://localhost:9091'
//baseURL:'http://localhost:9092' // baseURL:'http://localhost:9092'
// baseURL:'http://1.94.237.210:3457' // baseURL:'http://1.94.237.210:3457'
//baseURL:'http://1.94.237.210:8088' //baseURL:'http://1.94.237.210:8088'
//baseURL:'http://27.30.77.229:9091/' //baseURL:'http://27.30.77.229:9091/'
//baseURL:'http://27.30.77.229:9092/' //baseURL:'http://27.30.77.229:9092/'
//baseURL:'http://160.202.242.36:9091/' // baseURL:'http://160.202.242.36:9091/'
// baseURL:'http://160.202.242.36:9092/' // baseURL:'http://160.202.242.36:9092/'
// baseURL:'http://160.202.242.36:9092' baseURL:'http://160.202.242.36:9092'
}); });

View File

@ -22,15 +22,15 @@
<a-menu-item key="/userList">普通用户列表</a-menu-item> <a-menu-item key="/userList">普通用户列表</a-menu-item>
<a-menu-item key="/managerInformation">经理信息</a-menu-item> <a-menu-item key="/managerInformation">经理信息</a-menu-item>
</a-sub-menu> </a-sub-menu>
<a-sub-menu> <!-- <a-sub-menu>-->
<template #title> <!-- <template #title>-->
<span> <!-- <span>-->
<UserOutlined /> <!-- <UserOutlined />-->
<span>项目管理</span> <!-- <span>项目管理</span>-->
</span> <!-- </span>-->
</template> <!-- </template>-->
<a-menu-item key="/project">接单管理</a-menu-item> <!-- <a-menu-item key="/project">接单管理</a-menu-item>-->
</a-sub-menu> <!-- </a-sub-menu>-->
<a-sub-menu> <a-sub-menu>
<template #title> <template #title>
@ -52,16 +52,16 @@
<a-menu-item key="/courseManagement">课程管理</a-menu-item> <a-menu-item key="/courseManagement">课程管理</a-menu-item>
<a-menu-item key="/courseOrder">课程订单</a-menu-item> <a-menu-item key="/courseOrder">课程订单</a-menu-item>
</a-sub-menu> </a-sub-menu>
<a-sub-menu> <!-- <a-sub-menu>-->
<template #title> <!-- <template #title>-->
<span> <!-- <span>-->
<FieldTimeOutlined /> <!-- <FieldTimeOutlined />-->
<span>勤工俭学</span> <!-- <span>勤工俭学</span>-->
</span> <!-- </span>-->
</template> <!-- </template>-->
<a-menu-item key="/workList">工作列表</a-menu-item> <!-- <a-menu-item key="/workList">工作列表</a-menu-item>-->
<a-menu-item key="/workDetail">工作详情</a-menu-item> <!-- <a-menu-item key="/workDetail">工作详情</a-menu-item>-->
</a-sub-menu> <!-- </a-sub-menu>-->
<a-sub-menu> <a-sub-menu>
<template #title> <template #title>
<span> <span>
@ -84,7 +84,8 @@
<script setup lang="ts"> <script setup lang="ts">
import {onMounted, ref} from "vue"; import {onMounted, ref} from "vue";
import {UserOutlined, FieldTimeOutlined,ReadOutlined,CommentOutlined,PieChartOutlined} from '@ant-design/icons-vue'; // UserOutlined,
import { FieldTimeOutlined,ReadOutlined,CommentOutlined,PieChartOutlined} from '@ant-design/icons-vue';
import {useRoute, useRouter} from "vue-router"; import {useRoute, useRouter} from "vue-router";
const route = useRoute(); const route = useRoute();

View File

@ -77,17 +77,11 @@
<!-- 操作列 --> <!-- 操作列 -->
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<a-space :size="8"> <a-space :size="8">
<a-button <a-button
size="small" v-if="record.orderStatus === '交易成功'"
danger
@click="deleteOrder(record.id)"
>
删除
</a-button>
<a-button
size="small" size="small"
primary primary
> >
退款 退款
</a-button> </a-button>
@ -100,7 +94,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import myAxios from "../../api/myAxios.ts"; import myAxios from "../../api/myAxios.ts";
import { message, Modal } from "ant-design-vue"; import { message} from "ant-design-vue";
import {downLoadImage} from "../../api/ImageUrl.ts"; import {downLoadImage} from "../../api/ImageUrl.ts";
const loading = ref(false); const loading = ref(false);
@ -178,7 +172,7 @@ const columns = [
title: '操作', title: '操作',
key: 'action', key: 'action',
fixed: 'right', fixed: 'right',
width: 130, width: 80,
align: 'center' align: 'center'
} }
]; ];
@ -302,37 +296,6 @@ const getStatusColor = (status: string) => {
} }
}; };
// 删除订单
const deleteOrder = (id: number) => {
Modal.confirm({
title: '确认删除',
content: '确定要删除该订单吗?删除后数据将无法恢复!',
okText: '确认',
cancelText: '取消',
onOk: async () => {
try {
const storedToken = localStorage.getItem('token');
const res: any = await myAxios.post(
"/courseOrder/delete",
{ id },
{ headers: { Authorization: storedToken } }
);
if (res.code === 1) {
message.success('删除成功');
await getOrderList();
} else {
message.error(res.message || '删除失败');
}
} catch (error) {
console.error('删除失败:', error);
message.error('删除操作失败');
}
}
});
};
// 重置搜索条件 // 重置搜索条件
const reset = () => { const reset = () => {
searchOrderNumber.value = ""; searchOrderNumber.value = "";

View File

@ -49,15 +49,16 @@
<h3 class="section-title">附件信息</h3> <h3 class="section-title">附件信息</h3>
<a-descriptions bordered :column="1" class="custom-descriptions"> <a-descriptions bordered :column="1" class="custom-descriptions">
<a-descriptions-item label="简历"> <a-descriptions-item label="简历">
<a :href="getResumeUrl(advancement.resume)" target="_blank" class="resume-link"> <span v-if="advancement.resume"
<span v-if="advancement.resume"> @click="handleViewResume(advancement.resume)"
<file-pdf-outlined /> 查看简历 class="resume-link"
</span> style="cursor: pointer; color: #1890ff;">
<span v-else>-</span> <file-pdf-outlined /> 查看简历
</a> </span>
<span v-else>-</span>
</a-descriptions-item> </a-descriptions-item>
<a-descriptions-item label="查询凭证"> <a-descriptions-item label="身份证号">
<div class="info-value">{{ advancement.credential || '-' }}</div> <div class="info-value">{{ advancement.idCard}}</div>
</a-descriptions-item> </a-descriptions-item>
</a-descriptions> </a-descriptions>
</div> </div>
@ -172,6 +173,7 @@ interface AdvancementDetail {
reviewStatus: string; reviewStatus: string;
rejectReason?: string; rejectReason?: string;
createTime: string; createTime: string;
idCard: string;
} }
interface Supervisor { interface Supervisor {
@ -221,11 +223,6 @@ const fetchAdvancementDetail = async () => {
} }
}; };
// 获取简历URL
const getResumeUrl = (resumeCode: string) => {
return resumeCode ? `/resume/view?code=${resumeCode}` : '#';
};
// 根据状态获取标签颜色 // 根据状态获取标签颜色
const getStatusColor = (status: string) => { const getStatusColor = (status: string) => {
switch (status) { switch (status) {
@ -242,6 +239,28 @@ const goBack = () => {
router.push('/employeeApplication'); router.push('/employeeApplication');
}; };
// 查看简历
const handleViewResume = (fileName: string) => {
const storedToken = localStorage.getItem('token');
const baseURL = myAxios.defaults.baseURL || '';
// 直接构建下载URL
const downloadUrl = `${baseURL}/file/download/${encodeURIComponent(fileName)}`;
// 创建隐藏链接
const link = document.createElement('a');
link.href = downloadUrl;
link.setAttribute('download', fileName);
link.style.display = 'none';
// 添加认证头
link.setAttribute('Authorization', `Bearer ${storedToken}`);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
onMounted(() => { onMounted(() => {
fetchAdvancementDetail(); fetchAdvancementDetail();
}); });

View File

@ -120,6 +120,13 @@ const columns = [
width: 90, width: 90,
align: 'center' align: 'center'
}, },
{
title: '抽佣比例',
dataIndex: 'rakeRewardsRate',
key: 'rakeRewardsRate',
width: 90,
align: 'center'
},
{ {
title: '操作', title: '操作',
key: 'action', key: 'action',

View File

@ -44,16 +44,16 @@ const sortOptions = [
// 排序方向选项 // 排序方向选项
const orderOptions = [ const orderOptions = [
{ label: '升序', value: 'asc' }, { label: '升序', value: 'ascend' },
{ label: '降序', value: 'desc' } { label: '降序', value: 'descend' }
]; ];
// 查询参数 // 查询参数
const queryParams = reactive({ const queryParams = reactive({
current: 1, current: 1,
pageSize: 10, pageSize: 10,
sortField: "netAmount", // 默认排序字段为净成交金额 sortField: "netAmount",
sortOrder: "asc", // 默认排序方向为升序 sortOrder: "ascend",
nickName: "", nickName: "",
phoneNumber: "", phoneNumber: "",
startDate: "", startDate: "",
@ -162,7 +162,6 @@ const handleSearch = async () => {
await fetchPerformanceRank(); await fetchPerformanceRank();
}; };
// 处理日期范围变化
// 处理日期范围变化 // 处理日期范围变化
const handleDateChange = (_: any, dateStrings: [string, string]) => { const handleDateChange = (_: any, dateStrings: [string, string]) => {
queryParams.startDate = dateStrings[0] || ''; queryParams.startDate = dateStrings[0] || '';
@ -223,8 +222,10 @@ const handleDateChange = (_: any, dateStrings: [string, string]) => {
/> />
<DatePicker.RangePicker <DatePicker.RangePicker
showTime
format="YYYY-MM-DD HH:mm:ss"
@change="handleDateChange" @change="handleDateChange"
style="margin-right: 10px; width: 220px;" style="margin-right: 10px; width: 350px;"
/> />
<Button type="primary" @click="handleSearch" style="margin-right: 10px;"> <Button type="primary" @click="handleSearch" style="margin-right: 10px;">

View File

@ -103,6 +103,13 @@ const columns = [
width: 90, width: 90,
align: 'center' align: 'center'
}, },
{
title: '抽佣比例',
dataIndex: 'rakeRewardsRate',
key: 'rakeRewardsRate',
width: 90,
align: 'center'
},
{ {
title: '操作', title: '操作',
key: 'action', key: 'action',

View File

@ -44,16 +44,16 @@ const sortOptions = [
// 排序方向选项 // 排序方向选项
const orderOptions = [ const orderOptions = [
{ label: '升序', value: 'asc' }, { label: '升序', value: 'ascend' },
{ label: '降序', value: 'desc' } { label: '降序', value: 'descend' }
]; ];
// 查询参数 // 查询参数
const queryParams = reactive({ const queryParams = reactive({
current: 1, current: 1,
pageSize: 10, pageSize: 10,
sortField: "", sortField: "netAmount",
sortOrder: "", sortOrder: "ascend",
nickName: "", nickName: "",
phoneNumber: "", phoneNumber: "",
startDate: "", startDate: "",
@ -138,7 +138,7 @@ const handlePageChange = (page: number, pageSize: number) => {
const handleTableChange = (_: any, __: any, sorter: any) => { const handleTableChange = (_: any, __: any, sorter: any) => {
if (sorter.field) { if (sorter.field) {
queryParams.sortField = sorter.field; queryParams.sortField = sorter.field;
queryParams.sortOrder = sorter.order === 'ascend' ? 'asc' : 'desc'; queryParams.sortOrder = sorter.order === 'ascend' ? 'ascend' : 'descend';
} else { } else {
queryParams.sortField = ''; queryParams.sortField = '';
queryParams.sortOrder = ''; queryParams.sortOrder = '';
@ -158,14 +158,9 @@ const resetSearch = () => {
}; };
// 处理日期范围变化 // 处理日期范围变化
const handleDateChange = (dates: any, dateStrings: [string, string]) => { const handleDateChange = (_: any, dateStrings: [string, string]) => {
if (dates) { queryParams.startDate = dateStrings[0] || '';
queryParams.startDate = dateStrings[0]; queryParams.endDate = dateStrings[1] || '';
queryParams.endDate = dateStrings[1];
} else {
queryParams.startDate = '';
queryParams.endDate = '';
}
}; };
</script> </script>
@ -218,8 +213,10 @@ const handleDateChange = (dates: any, dateStrings: [string, string]) => {
/> />
<DatePicker.RangePicker <DatePicker.RangePicker
showTime
format="YYYY-MM-DD HH:mm:ss"
@change="handleDateChange" @change="handleDateChange"
style="margin-right: 10px;" style="margin-right: 10px; width: 350px;"
/> />
<Button type="primary" @click="fetchPerformanceRank" style="margin-right: 10px;"> <Button type="primary" @click="fetchPerformanceRank" style="margin-right: 10px;">