人生啊人生 vor 3 Monaten
Ursprung
Commit
de8b3fb2e2
1 geänderte Dateien mit 182 neuen und 44 gelöschten Zeilen
  1. 182 44
      user_web/src/view/admin/components/ManageSchool/ManageClass.vue

+ 182 - 44
user_web/src/view/admin/components/ManageSchool/ManageClass.vue

@@ -5,6 +5,8 @@ import { Search } from '@element-plus/icons-vue';
 import { ElMessage } from 'element-plus';
 const router = useRouter();
 
+import { schoolTree, schoolAdd, schoolItem, schoolUpdate, schoolDelete } from "../../../../api/admin/school";
+
 const props = defineProps({
 
     configDb : {
@@ -68,39 +70,39 @@ let state = ref({
     },
     // 具体分页的数据
     "list": [
-        {
-            "id": 661434193309765,
-            "createTime": "2025-04-03 10:42:39",
-            "name": "班级_1",
-        },
-        {
-            "id": 661434193309766,
-            "createTime": "2025-04-03 10:42:39",
-            "name": "班级_2",
-        },
-        {
-            "id": 661434193309767,
-            "createTime": "2025-04-03 10:42:39",
-            "name": "班级_3",
-        },
-        {
-            "id": 661434193309768,
-            "createTime": "2025-04-03 10:42:39",
-            "name": "班级_4",
-        },
-        {
-            "id": 661434193309769,
-            "createTime": "2025-04-03 10:42:39",
-            "name": "班级_5",
-        },
-        {
-            "id": 661434193309770,
-            "createTime": "2025-04-03 10:42:39",
-            "name": "班级_6",
-        },
+        // {
+        //     "id": 661434193309765,
+        //     "createTime": "2025-04-03 10:42:39",
+        //     "name": "班级_1",
+        // },
+        // {
+        //     "id": 661434193309766,
+        //     "createTime": "2025-04-03 10:42:39",
+        //     "name": "班级_2",
+        // },
+        // {
+        //     "id": 661434193309767,
+        //     "createTime": "2025-04-03 10:42:39",
+        //     "name": "班级_3",
+        // },
+        // {
+        //     "id": 661434193309768,
+        //     "createTime": "2025-04-03 10:42:39",
+        //     "name": "班级_4",
+        // },
+        // {
+        //     "id": 661434193309769,
+        //     "createTime": "2025-04-03 10:42:39",
+        //     "name": "班级_5",
+        // },
+        // {
+        //     "id": 661434193309770,
+        //     "createTime": "2025-04-03 10:42:39",
+        //     "name": "班级_6",
+        // },
     ],
     // 用户总数量
-    "total": 6,
+    "total": 0,
     // 是否弹出添加UI
     "showDialog": false,
     // 当前分页列表,多选的数据
@@ -119,21 +121,25 @@ let ruleFormRef = ref();
  */
 let addParams = ref({
     name: '',
+    remark: '',
 });
 
+/**
+ * 初始化添加的数据
+ */
+const addParamsInit = () => {
+    addParams.value = {
+        name: '',
+        remark: '',
+    }
+}
+
 /**
  * 添加,字段相关验证规则
  */
 let addRules = ref({
     name: [{ required: true, message: '请填写班级', trigger: 'blur' }],
-    // username: [{ required: true, message: '请填写学号', trigger: 'blur' }],
-    // orgId: [
-    //     {
-    //         required: true,
-    //         message: '请选择班级',
-    //         trigger: 'change',
-    //     },
-    // ],
+    remark: [{ required: true, message: '请填写备注', trigger: 'blur' }],
 });
 
 
@@ -141,23 +147,150 @@ let addRules = ref({
  * 详情数据
  */
 let detailsDb = ref({
-    name: '',
+    "id": null,
+    "name": null,
+    "type": null,
+    "remark": null,
+    "parentId": null,
+    "schoolId": null
 });
 
+
+
+/**
+ * 因为这里的接口返回的不是分页的接口,是全部数据,所以这里就记录全部数据
+ * 后面通过逻辑,来控制分页的显示
+ */
+let pageDb = [];
+
 /**
  * 查找分页数据
  */
 const pageUpdateEvent = () => {
-    console.log(
-        "查找分页数据 pageUpdateEvent", state.value.listParams
-    );
+    
+    // console.log(
+    //     "查找分页数据 pageUpdateEvent", state.value.listParams
+    // );
+    
+    let keyword = state.value.listParams.keyword;
+    
+    let submit = {
+        // 默认优先去顶级所有,传 0 。 否则你要看到 学院, 专业 ,班级 的列表,这里固定就传 学院这个的id值
+        "schoolId" : props.configDb.school.id,
+    };
+
+    schoolTree(submit)
+    .then(response => {
+
+        // 找到对应学校的,学院
+        let dataOld = response?.data?.data;
+        // console.log(
+        //     "schoolTreeEvent response", response, data
+        // );
+
+        let data = [];
+        data = idGetList(dataOld, props.configDb.school.id);
+        data = idGetList(data, props.configDb.college.id);
+        data = idGetList(data, props.configDb.major.id);
+
+        pageDb = [];
+        
+        // 重新拼接合理要展示的分页数据
+        for (let i = 0; i < data.length; i++) {
+            let thisData = data[i];
+            if (typeof keyword == 'string' && keyword != '' && keyword != ' ') {
+                if (typeof thisData.name == 'string' && thisData.name.indexOf(keyword) >= 0) {
+                    pageDb.push(thisData);
+                }
+
+            } else {
+                pageDb.push(thisData);
+            }
+        }
+
+        pageDbUpdateEvent();
+
+    }).catch(error => {
+        
+    });
+    
 }
 
+
+/**
+ * 找到对应id的children数据
+ * threeArray       当前树结构的数组
+ * id               找到指定id的值
+ * 成功返回数组结构,否则返回空数组
+ */
+const idGetList = (threeArray, id) => {
+
+    let retArray = [];
+
+    if (threeArray == null || threeArray == undefined || threeArray.length <= 0) {
+        return retArray;
+    }
+
+    for (let i = 0; i < threeArray.length; i++) {
+        let thisThreeArray = threeArray[i];
+        if (thisThreeArray.id == id) {
+
+            if (thisThreeArray["children"] != null && thisThreeArray["children"] != undefined) {
+                let children = thisThreeArray["children"];
+                return children;
+            }
+
+        }
+
+    }
+    
+    return retArray;
+
+}
+
+
+/**
+ * 因为接口不是标准的分页接口,是直接返回所有数据的
+ * 这里进行单独处理,来展示第几页的数据
+ */
+const pageDbUpdateEvent = () => {
+
+    // console.log(
+    //     "查找分页数据 pageDbUpdateEvent", state.value.listParams, pageDb
+    // );
+
+    state.value.total = pageDb.length;
+    state.value.list = [];
+
+    let page = state.value.listParams.page;
+    let limit = state.value.listParams.limit;
+    let keyword = state.value.listParams.keyword;
+
+    // 从第几个数组下标开始
+    let indexStart = (page - 1) * limit;
+    // 到第几个数组下标结束
+    let indexEnd = indexStart + limit - 1;
+
+    for (let i = 0; i < pageDb.length; i++) {
+
+        // 在范围内
+        if (i >= indexStart && i <= indexEnd) {
+            let thisPageDb = pageDb[i];
+            state.value.list.push(thisPageDb);
+            
+        }
+        
+    }
+    
+}
+
+
 /**
  * 弹出添加UI
  */
 const btnAddStudent = (formEl) => {
-
+    
+    addParamsInit();
     state.value.showDialog = true;
     if (!formEl) {
         return;
@@ -300,6 +433,11 @@ const btnDetail = (res) => {
 }
 
 
+onMounted(function() {
+    pageUpdateEvent();
+});
+
+
 </script>
 
 <template>