From cdc449472bf4cf67fae8efc2094327f3f8751876 Mon Sep 17 00:00:00 2001 From: zeyan <258785420@qq.com> Date: Tue, 28 Oct 2025 19:33:57 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/student/StudentController.php | 2 + uniapp/components/order-form-popup/index.vue | 113 +- uniapp/components/schedule/ScheduleDetail.vue | 66 + uniapp/pages-market/clue/clue_info.vue | 95 +- uniapp/pages/market/clue/add_clues.vue | 2123 ----------------- .../pages/market/clue/class_arrangement.vue | 623 ----- .../market/clue/class_arrangement_detail.vue | 1292 ---------- uniapp/pages/market/clue/clue_info.less | 431 ---- uniapp/pages/market/clue/clue_info.vue | 1567 ------------ uniapp/pages/market/clue/clue_table.vue | 164 -- uniapp/pages/market/clue/edit_clues.vue | 1806 -------------- uniapp/pages/market/clue/edit_clues_log.vue | 365 --- uniapp/pages/market/clue/index.vue | 1749 -------------- uniapp/pages/market/data/statistics.vue | 343 --- uniapp/pages/market/index/index.vue | 427 ---- uniapp/pages/market/my/campus_data.vue | 495 ---- uniapp/pages/market/my/dept_data.vue | 445 ---- uniapp/pages/market/my/index.vue | 523 ---- uniapp/pages/market/my/info.vue | 505 ---- uniapp/pages/market/my/my_data.vue | 292 --- uniapp/pages/market/my/set_up.vue | 105 - uniapp/pages/market/my/signed_client_list.vue | 275 --- uniapp/pages/market/my/update_pass.vue | 225 -- uniapp/pages/market/reimbursement/add.vue | 272 --- uniapp/pages/market/reimbursement/detail.vue | 136 -- uniapp/pages/market/reimbursement/list.vue | 144 -- 26 files changed, 263 insertions(+), 14320 deletions(-) delete mode 100644 uniapp/pages/market/clue/add_clues.vue delete mode 100644 uniapp/pages/market/clue/class_arrangement.vue delete mode 100644 uniapp/pages/market/clue/class_arrangement_detail.vue delete mode 100644 uniapp/pages/market/clue/clue_info.less delete mode 100644 uniapp/pages/market/clue/clue_info.vue delete mode 100644 uniapp/pages/market/clue/clue_table.vue delete mode 100644 uniapp/pages/market/clue/edit_clues.vue delete mode 100644 uniapp/pages/market/clue/edit_clues_log.vue delete mode 100644 uniapp/pages/market/clue/index.vue delete mode 100644 uniapp/pages/market/data/statistics.vue delete mode 100644 uniapp/pages/market/index/index.vue delete mode 100644 uniapp/pages/market/my/campus_data.vue delete mode 100644 uniapp/pages/market/my/dept_data.vue delete mode 100644 uniapp/pages/market/my/index.vue delete mode 100644 uniapp/pages/market/my/info.vue delete mode 100644 uniapp/pages/market/my/my_data.vue delete mode 100644 uniapp/pages/market/my/set_up.vue delete mode 100644 uniapp/pages/market/my/signed_client_list.vue delete mode 100644 uniapp/pages/market/my/update_pass.vue delete mode 100644 uniapp/pages/market/reimbursement/add.vue delete mode 100644 uniapp/pages/market/reimbursement/detail.vue delete mode 100644 uniapp/pages/market/reimbursement/list.vue diff --git a/niucloud/app/api/controller/student/StudentController.php b/niucloud/app/api/controller/student/StudentController.php index 09fa6378..593aa62d 100644 --- a/niucloud/app/api/controller/student/StudentController.php +++ b/niucloud/app/api/controller/student/StudentController.php @@ -374,4 +374,6 @@ class StudentController extends BaseController } return success($res['data']); } + + } diff --git a/uniapp/components/order-form-popup/index.vue b/uniapp/components/order-form-popup/index.vue index a3e24f0f..0c1bfa6f 100644 --- a/uniapp/components/order-form-popup/index.vue +++ b/uniapp/components/order-form-popup/index.vue @@ -77,9 +77,19 @@ + + 班级选择 + + + {{ selectedClass && selectedClass.label || '请选择班级(可选)' }} + + + + + 备注 - - - - 取消 - 解析并填写 - - - - - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/clue/class_arrangement.vue b/uniapp/pages/market/clue/class_arrangement.vue deleted file mode 100644 index 42946130..00000000 --- a/uniapp/pages/market/clue/class_arrangement.vue +++ /dev/null @@ -1,623 +0,0 @@ - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/clue/class_arrangement_detail.vue b/uniapp/pages/market/clue/class_arrangement_detail.vue deleted file mode 100644 index 949d09cc..00000000 --- a/uniapp/pages/market/clue/class_arrangement_detail.vue +++ /dev/null @@ -1,1292 +0,0 @@ - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/clue/clue_info.less b/uniapp/pages/market/clue/clue_info.less deleted file mode 100644 index ce333c24..00000000 --- a/uniapp/pages/market/clue/clue_info.less +++ /dev/null @@ -1,431 +0,0 @@ -// 客户详情页样式文件 -.assemble { - background-color: #292929; - min-height: 100vh; -} - -.content { - padding: 20rpx; -} - -.tab-switcher-container { - margin: 20rpx 0; -} - -// 学生信息区域 -.student-section { - margin-top: 20rpx; - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 20rpx; - - .section-title { - font-size: 32rpx; - font-weight: bold; - color: #fff; - } - - .add-student-btn { - display: flex; - align-items: center; - background: #29d3b4; - color: #fff; - border-radius: 20rpx; - padding: 12rpx 20rpx; - font-size: 24rpx; - - .add-icon { - margin-right: 8rpx; - font-weight: bold; - font-size: 20rpx; - } - - &:active { - background: #1ea08e; - transform: scale(0.95); - } - } - } - - .student-cards { - width: 100%; - min-height: 600rpx; - - .student-swiper { - width: 100%; - height: 560rpx; - - .student-swiper-content { - display: flex; - flex-direction: column; - height: 580rpx; - padding: 20rpx; - box-sizing: border-box; - background-color: #434544; - border-radius: 16rpx; - margin: 0 10rpx; - color: #fff; - } - } - } -} - -.popup-footer { - display: flex; - padding: 30rpx 40rpx; - padding-bottom: calc(30rpx + env(safe-area-inset-bottom)); - border-top: 1px solid #333; - gap: 30rpx; - flex-shrink: 0; /* 确保底部按钮区域不被压缩 */ - background: #1a1a1a; /* 确保背景色一致 */ - - .popup-footer-btns { - display: flex; - justify-content: space-between; - - .footer-btn { - flex: 1; - height: 88rpx; - display: flex; - width: 45%; - align-items: center; - justify-content: center; - border-radius: 12rpx; - font-size: 32rpx; - font-weight: 500; - - &.cancel-btn { - background: #cccccc; - } - - &.confirm-btn { - background: linear-gradient(45deg, #29D3B4, #1DB584); - color: #ffffff; - } - } - } - -} - -// 课程、通话、体测记录等区域 -.course-section, .call-section, .fitness-section, .study-plan-section { - background-color: #434544; - border-radius: 16rpx; - margin: 20rpx 0; - - .section-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 20rpx; - - .context-title { - font-size: 28rpx; - font-weight: bold; - color: #fff; - } - - .add-record-btn { - display: flex; - align-items: center; - background: #29d3b4; - color: #fff; - border-radius: 20rpx; - padding: 12rpx 20rpx; - font-size: 24rpx; - - .add-icon { - margin-right: 8rpx; - font-weight: bold; - } - - &:active { - background: #1ea08e; - transform: scale(0.95); - } - } - } -} - -// 操作按钮区域 - 独立于Swiper外部 -.student-section .action-buttons-section { - display: flex; - gap: 8rpx; - margin-top: 15rpx; - padding: 15rpx; - flex-wrap: nowrap; - height: 100rpx; - box-sizing: border-box; - overflow-x: auto; - overflow-y: hidden; - -webkit-overflow-scrolling: touch; - background-color: #434544; - border-radius: 16rpx; - margin: 15rpx 0; - - &::-webkit-scrollbar { - display: none; - } - - .action-item { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - background: rgba(255, 255, 255, 0.05); - border: 1px solid rgba(41, 211, 180, 0.3); - border-radius: 8rpx; - padding: 12rpx 8rpx; - min-width: 90rpx; - flex-shrink: 0; - transition: all 0.3s ease; - - .action-icon { - font-size: 24rpx; - margin-bottom: 5rpx; - line-height: 1; - } - - .action-text { - font-size: 18rpx; - color: #fff; - text-align: center; - line-height: 1.2; - word-break: break-all; - } - - &:active { - background: rgba(41, 211, 180, 0.2); - border-color: #29d3b4; - transform: scale(0.95); - - .action-text { - color: #29d3b4; - } - } - } -} - -// 通用空状态样式 -.empty-state { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 60rpx 20rpx; - min-height: 200rpx; - - .empty-icon { - font-size: 60rpx; - opacity: 0.6; - margin-bottom: 20rpx; - } - - .empty-text { - color: #ccc; - font-size: 28rpx; - margin-bottom: 20rpx; - } - - .empty-add-btn { - background: #29d3b4; - color: #fff; - padding: 12rpx 24rpx; - border-radius: 20rpx; - font-size: 24rpx; - transition: all 0.3s ease; - - &:active { - background: #1ea08e; - transform: scale(0.95); - } - } -} - -// 备注弹窗样式 -.remark-dialog { - width: 600rpx; - padding: 30rpx; - background: #fff; - border-radius: 16rpx; - - textarea { - width: 100%; - height: 200rpx; - padding: 20rpx; - border: 2rpx solid #e9ecef; - border-radius: 12rpx; - font-size: 28rpx; - color: #333; - background-color: #fff; - box-sizing: border-box; - resize: none; - - &::placeholder { - color: #999; - } - - &:focus { - border-color: #29d3b4; - outline: none; - box-shadow: 0 0 0 2rpx rgba(41, 211, 180, 0.1); - } - } - - .dialog-btns { - display: flex; - gap: 20rpx; - margin-top: 30rpx; - - .btn { - flex: 1; - padding: 20rpx; - border-radius: 8rpx; - font-size: 28rpx; - text-align: center; - - &.cancel { - background: #f8f9fa; - color: #666; - border: 2rpx solid #e9ecef; - } - - &.confirm { - background: #29d3b4; - color: #fff; - } - } - } -} - -// 二维码支付弹窗样式 -.qrcode-payment-modal { - width: 600rpx; - background: #fff; - border-radius: 20rpx; - overflow: hidden; - - .modal-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 40rpx 40rpx 20rpx; - border-bottom: 1px solid #f0f0f0; - - .modal-title { - font-size: 36rpx; - font-weight: 600; - color: #333; - } - - .close-btn { - width: 60rpx; - height: 60rpx; - display: flex; - align-items: center; - justify-content: center; - border-radius: 50%; - background: #f5f5f5; - color: #666; - font-size: 32rpx; - - &:active { - background: #e5e5e5; - transform: scale(0.95); - } - } - } - - .order-info { - padding: 30rpx 40rpx; - - .info-row { - display: flex; - align-items: center; - margin-bottom: 20rpx; - - .label { - font-size: 28rpx; - color: #666; - margin-right: 20rpx; - } - - .value { - font-size: 28rpx; - color: #333; - flex: 1; - } - - .amount { - font-size: 32rpx; - color: #ff4757; - font-weight: 600; - flex: 1; - } - } - } - - .qrcode-container { - display: flex; - flex-direction: column; - align-items: center; - padding: 40rpx; - background: #fafafa; - - .qrcode-image { - width: 300rpx; - height: 300rpx; - border: 1px solid #e5e5e5; - border-radius: 12rpx; - background: #fff; - margin-bottom: 20rpx; - } - - .qrcode-tip { - font-size: 24rpx; - color: #666; - text-align: center; - line-height: 1.4; - } - } - - .modal-buttons { - display: flex; - padding: 30rpx 40rpx 40rpx; - gap: 20rpx; - - .btn { - flex: 1; - height: 80rpx; - display: flex; - align-items: center; - justify-content: center; - border-radius: 40rpx; - font-size: 28rpx; - font-weight: 500; - - &.secondary { - background: #f5f5f5; - color: #666; - - &:active { - background: #e5e5e5; - transform: scale(0.98); - } - } - - &.primary { - background: #29d3b4; - color: #fff; - - &:active { - background: #1ea08e; - transform: scale(0.98); - } - } - } - } -} \ No newline at end of file diff --git a/uniapp/pages/market/clue/clue_info.vue b/uniapp/pages/market/clue/clue_info.vue deleted file mode 100644 index a800a7aa..00000000 --- a/uniapp/pages/market/clue/clue_info.vue +++ /dev/null @@ -1,1567 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/clue/clue_table.vue b/uniapp/pages/market/clue/clue_table.vue deleted file mode 100644 index 46f36e54..00000000 --- a/uniapp/pages/market/clue/clue_table.vue +++ /dev/null @@ -1,164 +0,0 @@ - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/clue/edit_clues.vue b/uniapp/pages/market/clue/edit_clues.vue deleted file mode 100644 index 725949d5..00000000 --- a/uniapp/pages/market/clue/edit_clues.vue +++ /dev/null @@ -1,1806 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/clue/edit_clues_log.vue b/uniapp/pages/market/clue/edit_clues_log.vue deleted file mode 100644 index 7340b68f..00000000 --- a/uniapp/pages/market/clue/edit_clues_log.vue +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/clue/index.vue b/uniapp/pages/market/clue/index.vue deleted file mode 100644 index 3cf5b4df..00000000 --- a/uniapp/pages/market/clue/index.vue +++ /dev/null @@ -1,1749 +0,0 @@ - - - - - diff --git a/uniapp/pages/market/data/statistics.vue b/uniapp/pages/market/data/statistics.vue deleted file mode 100644 index 4767e7b1..00000000 --- a/uniapp/pages/market/data/statistics.vue +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - diff --git a/uniapp/pages/market/index/index.vue b/uniapp/pages/market/index/index.vue deleted file mode 100644 index 0b355e81..00000000 --- a/uniapp/pages/market/index/index.vue +++ /dev/null @@ -1,427 +0,0 @@ - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/my/campus_data.vue b/uniapp/pages/market/my/campus_data.vue deleted file mode 100644 index bba0c6e3..00000000 --- a/uniapp/pages/market/my/campus_data.vue +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/my/dept_data.vue b/uniapp/pages/market/my/dept_data.vue deleted file mode 100644 index fdda74bc..00000000 --- a/uniapp/pages/market/my/dept_data.vue +++ /dev/null @@ -1,445 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/my/index.vue b/uniapp/pages/market/my/index.vue deleted file mode 100644 index b18d5915..00000000 --- a/uniapp/pages/market/my/index.vue +++ /dev/null @@ -1,523 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/my/info.vue b/uniapp/pages/market/my/info.vue deleted file mode 100644 index fefbe9c5..00000000 --- a/uniapp/pages/market/my/info.vue +++ /dev/null @@ -1,505 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/my/my_data.vue b/uniapp/pages/market/my/my_data.vue deleted file mode 100644 index cefe0c5e..00000000 --- a/uniapp/pages/market/my/my_data.vue +++ /dev/null @@ -1,292 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/my/set_up.vue b/uniapp/pages/market/my/set_up.vue deleted file mode 100644 index 9e17258b..00000000 --- a/uniapp/pages/market/my/set_up.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - diff --git a/uniapp/pages/market/my/signed_client_list.vue b/uniapp/pages/market/my/signed_client_list.vue deleted file mode 100644 index d5525f1b..00000000 --- a/uniapp/pages/market/my/signed_client_list.vue +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/my/update_pass.vue b/uniapp/pages/market/my/update_pass.vue deleted file mode 100644 index 7092c673..00000000 --- a/uniapp/pages/market/my/update_pass.vue +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/uniapp/pages/market/reimbursement/add.vue b/uniapp/pages/market/reimbursement/add.vue deleted file mode 100644 index 6b330df9..00000000 --- a/uniapp/pages/market/reimbursement/add.vue +++ /dev/null @@ -1,272 +0,0 @@ - From a580c2580a28884b4c26cb6e8929dbac5a3999ac Mon Sep 17 00:00:00 2001 From: zeyan <258785420@qq.com> Date: Thu, 30 Oct 2025 13:37:32 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../campus_person_role/CampusPersonRole.php | 5 ++++- .../adminapi/controller/personnel/Personnel.php | 2 ++ .../CampusPersonRoleService.php | 15 ++++++++------- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/niucloud/app/adminapi/controller/campus_person_role/CampusPersonRole.php b/niucloud/app/adminapi/controller/campus_person_role/CampusPersonRole.php index 6b1f4019..5b41b312 100644 --- a/niucloud/app/adminapi/controller/campus_person_role/CampusPersonRole.php +++ b/niucloud/app/adminapi/controller/campus_person_role/CampusPersonRole.php @@ -95,7 +95,10 @@ class CampusPersonRole extends BaseAdminController } public function getPersonnelAll(){ - return success(( new CampusPersonRoleService())->getPersonnelAll()); + $data = $this->request->params([ + ["campus_id",0] + ]); + return success(( new CampusPersonRoleService())->getPersonnelAll($data['campus_id'])); } public function getSysRoleAll(){ diff --git a/niucloud/app/adminapi/controller/personnel/Personnel.php b/niucloud/app/adminapi/controller/personnel/Personnel.php index e82ff02c..021b808a 100644 --- a/niucloud/app/adminapi/controller/personnel/Personnel.php +++ b/niucloud/app/adminapi/controller/personnel/Personnel.php @@ -68,6 +68,7 @@ class Personnel extends BaseAdminController ["id_card_back",""], ["status",0], ["is_sys_user",0], + ["campus_id",0], ["info",[]], ["use_approval", 0], // 是否使用审批流程 ["approval_config_id", 0], // 审批配置ID @@ -110,6 +111,7 @@ class Personnel extends BaseAdminController ["id_card_front",""], ["id_card_back",""], ["status",0], + ["campus_id",0], ["is_sys_user",0], ["info",[]], diff --git a/niucloud/app/service/admin/campus_person_role/CampusPersonRoleService.php b/niucloud/app/service/admin/campus_person_role/CampusPersonRoleService.php index d7a1a6a1..c9d9ea63 100644 --- a/niucloud/app/service/admin/campus_person_role/CampusPersonRoleService.php +++ b/niucloud/app/service/admin/campus_person_role/CampusPersonRoleService.php @@ -163,12 +163,13 @@ class CampusPersonRoleService extends BaseAdminService return $campusModel->select()->toArray(); } - public function getPersonnelAll(){ - $person_ids = $this->model->column("person_id"); - - + public function getPersonnelAll($campus_id){ $personnelModel = new Personnel(); - return $personnelModel->where([['id','not in',$person_ids]])->select()->toArray(); + return $personnelModel->when($campus_id, function ($query) use ($campus_id) { + $query->where('campus_id', $campus_id); + })->where('status',2) + ->select() + ->toArray(); } public function getSysRoleAll($data){ @@ -181,12 +182,12 @@ class CampusPersonRoleService extends BaseAdminService ->where('role_key', '<>', '') ->where('role_name', '<>', '超级管理员'); }); - + // 如果dept_id不为0,则按部门过滤;如果为0则显示所有可用角色 if (isset($data['dept_id']) && $data['dept_id'] > 0) { $query->where('dept_id', $data['dept_id']); } - + return $query->select()->toArray(); }