diff --git a/components.d.ts b/components.d.ts index cd3fcc8..975d1ef 100644 --- a/components.d.ts +++ b/components.d.ts @@ -16,6 +16,8 @@ declare module 'vue' { ACol: typeof import('ant-design-vue/es')['Col'] AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] ADatePicker: typeof import('ant-design-vue/es')['DatePicker'] + ADescriptions: typeof import('ant-design-vue/es')['Descriptions'] + ADescriptionsItem: typeof import('ant-design-vue/es')['DescriptionsItem'] ADivider: typeof import('ant-design-vue/es')['Divider'] ADrawer: typeof import('ant-design-vue/es')['Drawer'] ADropdown: typeof import('ant-design-vue/es')['Dropdown'] @@ -30,18 +32,25 @@ declare module 'vue' { ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent'] ALayoutHeader: typeof import('ant-design-vue/es')['LayoutHeader'] ALayoutSider: typeof import('ant-design-vue/es')['LayoutSider'] + AList: typeof import('ant-design-vue/es')['List'] + AListItem: typeof import('ant-design-vue/es')['ListItem'] AMenu: typeof import('ant-design-vue/es')['Menu'] AMenuItem: typeof import('ant-design-vue/es')['MenuItem'] AModal: typeof import('ant-design-vue/es')['Modal'] + APageHeader: typeof import('ant-design-vue/es')['PageHeader'] APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] + ARadio: typeof import('ant-design-vue/es')['Radio'] + ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ARow: typeof import('ant-design-vue/es')['Row'] ASelect: typeof import('ant-design-vue/es')['Select'] ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] + ASkeleton: typeof import('ant-design-vue/es')['Skeleton'] ASpace: typeof import('ant-design-vue/es')['Space'] ASpin: typeof import('ant-design-vue/es')['Spin'] ASubMenu: typeof import('ant-design-vue/es')['SubMenu'] ATable: typeof import('ant-design-vue/es')['Table'] ATag: typeof import('ant-design-vue/es')['Tag'] + ATextarea: typeof import('ant-design-vue/es')['Textarea'] AUpload: typeof import('ant-design-vue/es')['Upload'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] diff --git a/src/api/myAxios.ts b/src/api/myAxios.ts index 922e590..6b02d0e 100644 --- a/src/api/myAxios.ts +++ b/src/api/myAxios.ts @@ -6,14 +6,14 @@ import router from "../router"; const myAxios = axios.create({ withCredentials: true, - // baseURL:'http://localhost:9091' + baseURL:'http://localhost:9091' //baseURL:'http://localhost:9092' // baseURL:'http://1.94.237.210:3457' //baseURL:'http://1.94.237.210:8088' //baseURL:'http://27.30.77.229:9091/' //baseURL:'http://27.30.77.229:9092/' - // baseURL:'http://160.202.242.36:9092/' - baseURL:'http://160.202.242.36:9092/' + //baseURL:'http://160.202.242.36:9091/' + // baseURL:'http://160.202.242.36:9092/' }); diff --git a/src/layout/manage/ManageSidebar.vue b/src/layout/manage/ManageSidebar.vue index d76a574..e187639 100644 --- a/src/layout/manage/ManageSidebar.vue +++ b/src/layout/manage/ManageSidebar.vue @@ -9,10 +9,18 @@ 首页 - - - 用户列表 - + + + 管理员列表 + 员工列表 + 主管列表 + 普通用户列表 + diff --git a/src/router/routes.ts b/src/router/routes.ts index f3b328d..d356ec4 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -32,9 +32,24 @@ export const routes = [ name: '工作详情', component: () => import("../view/work/workDetail.vue"), }, + { + path: '/adminList', + name: '管理员列表', + component: () => import("../view/userList/adminList.vue"), + }, + { + path: '/staffList', + name: '员工列表', + component: () => import("../view/userList/staffList.vue"), + }, + { + path: '/supervisorList', + name: '主管列表', + component: () => import("../view/userList/supervisorList.vue"), + }, { path: '/userList', - name: '用户列表', + name: '普通用户列表', component: () => import("../view/userList/userList.vue"), }, { @@ -137,6 +152,16 @@ export const routes = [ name:'订单明细详情', component: ()=> import("../view/performance/customerDetail.vue") }, + { + path:'/employeeApplication', + name:'员工申请管理', + component: ()=> import("../view/employeeApplication/employeeApplication.vue") + }, + { + path:'/employeeDetail', + name:'员工申请详情', + component: ()=> import("../view/employeeApplication/employeeDetail.vue") + }, ] }, ] \ No newline at end of file diff --git a/src/view/Index.vue b/src/view/Index.vue index 808d299..b9504be 100644 --- a/src/view/Index.vue +++ b/src/view/Index.vue @@ -1,3 +1,206 @@ + + \ No newline at end of file +
+
业务仪表盘总览
+
+ +
+

订单统计

+
    +
  • 订单总金额{{ formatCurrency(dashboardData.totalAmount) }}
  • +
  • 订单净成交{{ formatCurrency(dashboardData.netAmount) }}
  • +
  • 下单数量{{ dashboardData.orderCount }}
  • +
  • 待释放{{ formatCurrency(dashboardData.toRelease) }}
  • +
  • 可结算{{ formatCurrency(dashboardData.toSettle) }}
  • +
  • 已结算{{ formatCurrency(dashboardData.settled) }}
  • +
  • 已回退{{ formatCurrency(dashboardData.refunded) }}
  • +
+
+ +
+

用户与员工统计

+
    +
  • 主管数量{{ dashboardData.superCount }}
  • +
  • 员工数量{{ dashboardData.empCount }}
  • +
  • 客户数量{{ dashboardData.promoCount }}
  • +
+
+ +
+

今日统计

+
    +
  • 今日下单数量{{ dashboardData.todayOrderCount }}
  • +
  • 今日订单总金额{{ formatCurrency(dashboardData.todayOrderAmount) }}
  • +
  • 今日退款数量{{ dashboardData.todayRefundCount }}
  • +
  • 今日退款金额{{ formatCurrency(dashboardData.todayRefundAmount) }}
  • +
  • 今日推广数量{{ dashboardData.todayPromotionCount }}
  • +
+
+ +
+

本月统计

+
    +
  • 本月下单数量{{ dashboardData.monthOrderCount }}
  • +
  • 本月订单总金额{{ formatCurrency(dashboardData.monthOrderAmount) }}
  • +
  • 本月退款数量{{ dashboardData.monthRefundCount }}
  • +
  • 本月退款金额{{ formatCurrency(dashboardData.monthRefundAmount) }}
  • +
  • 本月推广数量{{ dashboardData.monthPromotionCount }}
  • +
+
+
+
+ + + diff --git a/src/view/course/addCourse.vue b/src/view/course/addCourse.vue index e5c8d81..92ce035 100644 --- a/src/view/course/addCourse.vue +++ b/src/view/course/addCourse.vue @@ -64,9 +64,9 @@ required > - - - + + +
diff --git a/src/view/course/courseDetail.vue b/src/view/course/courseDetail.vue index 095423a..6d27c40 100644 --- a/src/view/course/courseDetail.vue +++ b/src/view/course/courseDetail.vue @@ -362,9 +362,9 @@ const handlePriceInput = (value: number, field: keyof CourseDetail) => { - 自媒体 - 财经 - 考公考研 + 考公 + 考编 + 考证 @@ -738,7 +738,7 @@ const handlePriceInput = (value: number, field: keyof CourseDetail) => { border-radius: 0.75rem; overflow: hidden; transition: all 0.3s ease; - min-height: 320px; + max-height: 500px; flex-grow: 1; padding: 10px; background: white; diff --git a/src/view/course/courseManagement.vue b/src/view/course/courseManagement.vue index b6757ba..a9c8445 100644 --- a/src/view/course/courseManagement.vue +++ b/src/view/course/courseManagement.vue @@ -5,7 +5,7 @@ 全部 - 考公考研 - 自媒体 - 财经 + 考公 + 考编 + 考证 @@ -110,13 +110,6 @@ > 详情 - - - - - - - @@ -146,7 +139,8 @@ const searchParams = ref({ sortOrder: "ascend", name: "", type: "", - isShelves: "" + isShelves: "", + fuzzy: true }); // 行选择配置 @@ -259,17 +253,11 @@ const toggleShelves = async (record: Course) => { }); }; -// 课程名称搜索方法 const handleCourseSearch = async () => { - // 添加空值校验 - if (!searchCourseName.value.trim()) { - message.warning('课程名称不能为空'); - return; - } - searchParams.value.name = searchCourseName.value; searchParams.value.type = searchCourseType.value; searchParams.value.isShelves = searchIsShelves.value; + searchParams.value.fuzzy = true; searchParams.value.current = 1; // 重置到第一页 await getCourseList(); }; @@ -448,7 +436,8 @@ const reset = () => { sortOrder: "ascend", name: "", type: "", - isShelves: "" + isShelves: "", + fuzzy: true }; getCourseList(); diff --git a/src/view/employeeApplication/employeeApplication.vue b/src/view/employeeApplication/employeeApplication.vue new file mode 100644 index 0000000..4e8e4a0 --- /dev/null +++ b/src/view/employeeApplication/employeeApplication.vue @@ -0,0 +1,433 @@ + + + + + \ No newline at end of file diff --git a/src/view/employeeApplication/employeeDetail.vue b/src/view/employeeApplication/employeeDetail.vue new file mode 100644 index 0000000..00915a8 --- /dev/null +++ b/src/view/employeeApplication/employeeDetail.vue @@ -0,0 +1,659 @@ + + + + + + \ No newline at end of file diff --git a/src/view/performance/customerDetail.vue b/src/view/performance/customerDetail.vue index 9def2ab..b0e5c68 100644 --- a/src/view/performance/customerDetail.vue +++ b/src/view/performance/customerDetail.vue @@ -1,106 +1,135 @@ \ No newline at end of file diff --git a/src/view/performance/customerOrder.vue b/src/view/performance/customerOrder.vue index 369c84d..879a1e4 100644 --- a/src/view/performance/customerOrder.vue +++ b/src/view/performance/customerOrder.vue @@ -14,6 +14,9 @@ /> 重置搜索 + 返回 + + @@ -50,7 +53,7 @@ 详情 @@ -290,6 +293,10 @@ onMounted(() => { const customerDetail =()=>{ router.push('/customerDetail') } + +const goBack = () => { + router.push('/employeePerformaince'); +}; \ No newline at end of file diff --git a/src/view/performance/employeePerformaince.vue b/src/view/performance/employeePerformaince.vue index 7c2fb2e..88df3de 100644 --- a/src/view/performance/employeePerformaince.vue +++ b/src/view/performance/employeePerformaince.vue @@ -1,43 +1,87 @@ @@ -217,52 +375,78 @@ const goBack = () => { - - + 搜索 重置 - 返回 + 返回 + 抽成占比{{ proportionRate }} + 修改比例 + + + + + +
+ 提示:比例值应为0到1之间的小数(如0.35表示35%),保留两位小数 +
+
+
+