diff --git a/dist7月14日.zip b/dist 8月8.zip
similarity index 66%
rename from dist7月14日.zip
rename to dist 8月8.zip
index b481171..006b3f2 100644
Binary files a/dist7月14日.zip and b/dist 8月8.zip differ
diff --git a/dist 9091.zip b/dist 9091.zip
deleted file mode 100644
index 97cb27a..0000000
Binary files a/dist 9091.zip and /dev/null differ
diff --git a/dist 9092.zip b/dist 9092.zip
deleted file mode 100644
index f9de64d..0000000
Binary files a/dist 9092.zip and /dev/null differ
diff --git a/dist716回归测试.zip b/dist716回归测试.zip
deleted file mode 100644
index 7febefa..0000000
Binary files a/dist716回归测试.zip and /dev/null differ
diff --git a/dist.zip b/dist8月10.zip
similarity index 53%
rename from dist.zip
rename to dist8月10.zip
index 32b8921..3bca609 100644
Binary files a/dist.zip and b/dist8月10.zip differ
diff --git a/dist8月4.zip b/dist8月4.zip
deleted file mode 100644
index dab7222..0000000
Binary files a/dist8月4.zip and /dev/null differ
diff --git a/dist8月6日.zip b/dist8月6日.zip
deleted file mode 100644
index 6e088f4..0000000
Binary files a/dist8月6日.zip and /dev/null differ
diff --git a/dist9091.zip b/dist9091.zip
deleted file mode 100644
index 575bd71..0000000
Binary files a/dist9091.zip and /dev/null differ
diff --git a/src/layout/manage/ManageSidebar.vue b/src/layout/manage/ManageSidebar.vue
index cbe641c..e81d059 100644
--- a/src/layout/manage/ManageSidebar.vue
+++ b/src/layout/manage/ManageSidebar.vue
@@ -1,4 +1,5 @@
+
\ No newline at end of file
diff --git a/src/view/course/courseOrder.vue b/src/view/course/courseOrder.vue
index a4b14de..53ada87 100644
--- a/src/view/course/courseOrder.vue
+++ b/src/view/course/courseOrder.vue
@@ -82,6 +82,7 @@
v-if="record.orderStatus === '交易成功'"
size="small"
primary
+ @click="showRefundConfirm(record)"
>
退款
@@ -94,9 +95,48 @@
+
+
+
\ No newline at end of file
diff --git a/src/view/employeeApplication/employeeApplication.vue b/src/view/employeeApplication/employeeApplication.vue
index 9b9e837..f1ab425 100644
--- a/src/view/employeeApplication/employeeApplication.vue
+++ b/src/view/employeeApplication/employeeApplication.vue
@@ -1,5 +1,5 @@
@@ -265,12 +308,14 @@ onMounted(() => {
@@ -282,6 +327,7 @@ onMounted(() => {
@search="handleSearch"
enter-button
class="custom-search"
+ @input="filterPhoneInput"
/>
重置
@@ -379,38 +425,11 @@ onMounted(() => {
border-right-color: #ffa940;
}
-/* 审核人选择弹窗样式 */
-.supervisor-list {
- max-height: 400px;
- overflow-y: auto;
- padding: 10px;
-}
-
-.radio-group {
- width: 100%;
-}
-
-.supervisor-item {
- display: flex;
- align-items: center;
- padding: 8px 0;
- width: 100%;
-}
-
-.supervisor-info {
- display: flex;
- flex-direction: column;
- margin-left: 12px;
-}
-
-.supervisor-id {
- font-size: 12px;
- color: #666;
-}
-
-.supervisor-name {
- font-size: 14px;
- font-weight: 500;
+:deep(.custom-search .ant-input:focus),
+:deep(.custom-search .ant-input:hover),
+:deep(.custom-search .ant-input-focused) {
+ border-color: #ffa940 !important;
+ box-shadow: 0 0 0 2px rgba(255, 169, 64, 0.2) !important;
}
:deep(.ant-list-item) {
@@ -427,17 +446,4 @@ onMounted(() => {
align-items: flex-start;
}
-/* 操作按钮样式 */
-.action-btn {
- margin: 0 4px;
- font-size: 14px;
-}
-
-.action-btn.primary {
- color: #1890ff;
-}
-
-.action-btn.danger {
- color: #ff4d4f;
-}
\ No newline at end of file
diff --git a/src/view/employeeApplication/employeeDetail.vue b/src/view/employeeApplication/employeeDetail.vue
index e93647c..2e0ad5c 100644
--- a/src/view/employeeApplication/employeeDetail.vue
+++ b/src/view/employeeApplication/employeeDetail.vue
@@ -124,6 +124,7 @@
:ok-text="'确认驳回'"
:cancel-text="'取消'"
okType="danger"
+ class="reject-modal"
>
@@ -135,18 +136,19 @@
@@ -632,7 +634,11 @@ const submitReject = async () => {
padding: 24px;
}
-/* 驳回弹窗样式 */
+/* 驳回弹窗样式优化 */
+.reject-modal :deep(.ant-modal-body) {
+ padding: 24px;
+}
+
.reject-alert {
margin-bottom: 20px;
border-radius: 8px;
@@ -645,8 +651,37 @@ const submitReject = async () => {
font-weight: 500;
}
+.divider {
+ height: 1px;
+ background: #f0f0f0;
+ margin: 20px 0;
+}
+
.reject-form {
- padding: 10px;
+ padding: 0 10px;
+ margin-bottom: 24px;
+}
+
+.reject-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 12px;
+}
+
+.reject-title {
+ margin: 0;
+ font-size: 14px;
+ font-weight: 500;
+ color: #333;
+}
+
+.char-counter {
+ font-size: 12px;
+ color: #999;
+ background: #f5f5f5;
+ padding: 2px 8px;
+ border-radius: 10px;
}
.reject-reason {
@@ -655,6 +690,8 @@ const submitReject = async () => {
padding: 12px;
border: 1px solid #d9d9d9;
transition: all 0.3s;
+ width: 100%;
+ font-size: 14px;
}
.reject-reason:focus {
@@ -662,6 +699,13 @@ const submitReject = async () => {
box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
}
+.action-buttons {
+ display: flex;
+ justify-content: flex-end;
+ gap: 12px;
+ margin-top: 16px;
+}
+
/* 空状态样式 */
:deep(.ant-empty) {
margin: 40px 0;
diff --git a/src/view/performance/employeePerformaince.vue b/src/view/performance/employeePerformaince.vue
index cbe8f4f..d33f0f7 100644
--- a/src/view/performance/employeePerformaince.vue
+++ b/src/view/performance/employeePerformaince.vue
@@ -294,6 +294,7 @@ const updateProportionRate = async () => {
// 修复语法错误:移除命名参数
proportionRate.value = parseFloat(rateValue.toFixed(2)).toString();
visible.value = false;
+ fetchEmployeePerformance();
} else {
message.error(response.message || "更新抽成比例失败");
}
@@ -525,4 +526,5 @@ const filterRateInput = (e: Event) => {
background-color: #ffa940;
border-color: #ffa940;
}
+
\ No newline at end of file
diff --git a/src/view/performance/employeePerformanceRanking.vue b/src/view/performance/employeePerformanceRanking.vue
index 2f38229..99671b3 100644
--- a/src/view/performance/employeePerformanceRanking.vue
+++ b/src/view/performance/employeePerformanceRanking.vue
@@ -167,6 +167,33 @@ const handleDateChange = (_: any, dateStrings: [string, string]) => {
queryParams.startDate = dateStrings[0] || '';
queryParams.endDate = dateStrings[1] || '';
};
+
+
+const handleSearchPhoneInput = (e: any) => {
+ let value = e.target.value;
+
+ // 只允许输入数字,并截取前11位
+ const newValue = value.replace(/[^0-9]/g, '').slice(0, 11);
+
+ // 直接更新 queryParams.phoneNumber
+ queryParams.phoneNumber = newValue;
+};
+
+// 新增 onKeyDown 事件处理函数
+const handleKeyDown = (e: KeyboardEvent) => {
+ const allowedKeys = [
+ 'Backspace',
+ 'Delete',
+ 'ArrowLeft',
+ 'ArrowRight',
+ 'Tab',
+ ];
+
+ // 只允许输入数字和控制键
+ if (!/[0-9]/.test(e.key) && !allowedKeys.includes(e.key)) {
+ e.preventDefault();
+ }
+};
@@ -212,6 +239,9 @@ const handleDateChange = (_: any, dateStrings: [string, string]) => {
placeholder="手机号"
style="width: 180px; margin-right: 10px;"
allow-clear
+ :maxlength="11"
+ @input="handleSearchPhoneInput"
+ @keydown="handleKeyDown"
/>
{
message.success("抽成比例更新成功");
proportionRate.value = rateValue.toFixed(2);
visible.value = false;
+ fetchManagerPerformance()
} else {
message.error(response.message || "更新抽成比例失败");
}
@@ -414,11 +415,11 @@ const settlement = async () => {
-
-
+
+
{
@input="filterPhoneInput"
/>
-
搜索
-
重置
- 抽成占比
{{ proportionRate }}
-
修改比例
-
一键结算
-
+
+
+
+
@@ -505,6 +512,45 @@ const settlement = async () => {
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
+/* 使用弹性盒子布局并允许换行 */
+.flex-container {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 16px;
+ width: 100%;
+}
+
+/* 表单行样式 */
+.search-box .ant-form-item {
+ margin-bottom: 0;
+ display: flex;
+ align-items: center;
+ flex: 1 1 auto;
+}
+
+/* 按钮组容器 */
+.button-group {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px;
+ align-items: center;
+ flex: 1 1 100%; /* 默认占据整行 */
+}
+
+/* 抽成比例标签容器 */
+.proportion-tag {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+/* 在中等屏幕以上时调整按钮组布局 */
+@media (min-width: 992px) {
+ .button-group {
+ flex: 0 1 auto; /* 根据内容自适应宽度 */
+ }
+}
+
/* 搜索框输入框聚焦和悬浮状态边框为橙色 */
.search-box .custom-search :deep(.ant-input:hover),
.search-box .custom-search :deep(.ant-input:focus) {
@@ -517,6 +563,7 @@ const settlement = async () => {
background-color: #ffa940;
color: #fff;
border: 1px solid #ffa940;
+ white-space: nowrap; /* 防止按钮文字换行 */
}
.custom-button:hover,
@@ -542,4 +589,21 @@ const settlement = async () => {
.custom-search :deep(.ant-input) {
border-right-color: #ffa940;
}
+
+/* 响应式调整 */
+@media (max-width: 1200px) {
+ .search-box .ant-form-item {
+ min-width: 200px;
+ }
+}
+
+@media (max-width: 768px) {
+ .search-box .ant-form-item {
+ width: 100%;
+ }
+
+ .search-box .ant-input {
+ width: 100% !important;
+ }
+}
\ No newline at end of file
diff --git a/src/view/performance/supervisorPerformanceRanking.vue b/src/view/performance/supervisorPerformanceRanking.vue
index e3b17cc..f6500c6 100644
--- a/src/view/performance/supervisorPerformanceRanking.vue
+++ b/src/view/performance/supervisorPerformanceRanking.vue
@@ -67,7 +67,7 @@ const total = ref(0);
// 表格列定义
const columns = [
- { title: '用户昵称', dataIndex: 'nickName', key: 'nickName' },
+ { title: '学校名称', dataIndex: 'nickName', key: 'nickName' },
{ title: '手机号', dataIndex: 'phoneNumber', key: 'phoneNumber' },
{ title: '员工数量', dataIndex: 'empCount', key: 'empCount' },
{ title: '推广人数', dataIndex: 'promoCount', key: 'promoCount' },
@@ -154,6 +154,10 @@ const resetSearch = () => {
queryParams.endDate = '';
queryParams.sortField = '';
queryParams.sortOrder = '';
+
+ // 重置当前页码为1
+ queryParams.current = 1;
+
fetchPerformanceRank();
};
@@ -162,6 +166,40 @@ const handleDateChange = (_: any, dateStrings: [string, string]) => {
queryParams.startDate = dateStrings[0] || '';
queryParams.endDate = dateStrings[1] || '';
};
+
+// 处理搜索操作(新增方法)
+const handleSearch = () => {
+ // 重置当前页码为1
+ queryParams.current = 1;
+ fetchPerformanceRank();
+};
+
+const handleSearchPhoneInput = (e: any) => {
+ let value = e.target.value;
+
+ // 只允许输入数字,并截取前11位
+ const newValue = value.replace(/[^0-9]/g, '').slice(0, 11);
+
+ // 直接更新 queryParams.phoneNumber
+ queryParams.phoneNumber = newValue;
+};
+
+// 新增 onKeyDown 事件处理函数
+const handleKeyDown = (e: KeyboardEvent) => {
+ const allowedKeys = [
+ 'Backspace',
+ 'Delete',
+ 'ArrowLeft',
+ 'ArrowRight',
+ 'Tab',
+ ];
+
+ // 只允许输入数字和控制键
+ if (!/[0-9]/.test(e.key) && !allowedKeys.includes(e.key)) {
+ e.preventDefault();
+ }
+};
+
@@ -204,6 +242,9 @@ const handleDateChange = (_: any, dateStrings: [string, string]) => {
v-model:value="queryParams.phoneNumber"
placeholder="手机号"
style="width: 150px; margin-right: 10px;"
+ :maxlength="11"
+ @input="handleSearchPhoneInput"
+ @keydown="handleKeyDown"
/>
{
style="margin-right: 10px; width: 350px;"
/>
-
+
\ No newline at end of file
diff --git a/src/view/userList/adminList.vue b/src/view/userList/adminList.vue
index fd49b2a..295e272 100644
--- a/src/view/userList/adminList.vue
+++ b/src/view/userList/adminList.vue
@@ -49,7 +49,7 @@
-
+
-
+