diff --git a/src/api/cuim/cloudacademy.js b/src/api/cuim/cloudacademy.js
new file mode 100644
index 0000000000000000000000000000000000000000..de0e5e99d685cc628a8f9fb970a446cf80f28bfb
--- /dev/null
+++ b/src/api/cuim/cloudacademy.js
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+import request from '@/router/axios'
+
+export function fetchList(query) {
+ return request({
+ url: '/cuim/cloudacademy/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function fetchSchoolInfoList(query) {
+ return request({
+ url: '/cuim/cloudschool/page',
+ method: 'get',
+ params: query
+ })
+}
+
+
+export function addObj(obj) {
+ return request({
+ url: '/cuim/cloudacademy',
+ method: 'post',
+ data: obj
+ })
+}
+
+export function getObj(id) {
+ return request({
+ url: '/cuim/cloudacademy/' + id,
+ method: 'get'
+ })
+}
+
+export function delObj(id) {
+ return request({
+ url: '/cuim/cloudacademy/' + id,
+ method: 'delete'
+ })
+}
+
+export function putObj(obj) {
+ return request({
+ url: '/cuim/cloudacademy',
+ method: 'put',
+ data: obj
+ })
+}
diff --git a/src/api/cuim/cloudmajor.js b/src/api/cuim/cloudmajor.js
new file mode 100644
index 0000000000000000000000000000000000000000..ed5d47f607792ac1d37c59c92abe0326be67235c
--- /dev/null
+++ b/src/api/cuim/cloudmajor.js
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+import request from '@/router/axios'
+
+export function fetchList(query) {
+ return request({
+ url: '/cuim/cloudmajor/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function addObj(obj) {
+ return request({
+ url: '/cuim/cloudmajor',
+ method: 'post',
+ data: obj
+ })
+}
+
+export function getObj(id) {
+ return request({
+ url: '/cuim/cloudmajor/' + id,
+ method: 'get'
+ })
+}
+
+export function delObj(id) {
+ return request({
+ url: '/cuim/cloudmajor/' + id,
+ method: 'delete'
+ })
+}
+
+export function putObj(obj) {
+ return request({
+ url: '/cuim/cloudmajor',
+ method: 'put',
+ data: obj
+ })
+}
diff --git a/src/api/cuim/cloudschool.js b/src/api/cuim/cloudschool.js
new file mode 100644
index 0000000000000000000000000000000000000000..90a5c8147c008eefe479f93cc2a3f5bee6e8e9a6
--- /dev/null
+++ b/src/api/cuim/cloudschool.js
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific pri0or written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+import request from '@/router/axios'
+
+export function fetchList(query) {
+ return request({
+ url: '/cuim/cloudschool/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function addObj(obj) {
+ return request({
+ url: '/cuim/cloudschool',
+ method: 'post',
+ data: obj
+ })
+}
+
+export function getObj(id) {
+ return request({
+ url: '/cuim/cloudschool/' + id,
+ method: 'get'
+ })
+}
+
+export function delObj(id) {
+ return request({
+ url: '/cuim/cloudschool/' + id,
+ method: 'delete'
+ })
+}
+
+export function putObj(obj) {
+ return request({
+ url: '/cuim/cloudschool',
+ method: 'put',
+ data: obj
+ })
+}
diff --git a/src/api/cuim/cloudstudent.js b/src/api/cuim/cloudstudent.js
new file mode 100644
index 0000000000000000000000000000000000000000..9dec7d162be77879352c1b10b93c03873f80e39f
--- /dev/null
+++ b/src/api/cuim/cloudstudent.js
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+import request from '@/router/axios'
+
+export function fetchList(query) {
+ return request({
+ url: '/cuim/cloudstudent/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function addObj(obj) {
+ return request({
+ url: '/cuim/cloudstudent',
+ method: 'post',
+ data: obj
+ })
+}
+
+export function getObj(id) {
+ return request({
+ url: '/cuim/cloudstudent/' + id,
+ method: 'get'
+ })
+}
+
+export function delObj(id) {
+ return request({
+ url: '/cuim/cloudstudent/' + id,
+ method: 'delete'
+ })
+}
+
+export function putObj(obj) {
+ return request({
+ url: '/cuim/cloudstudent',
+ method: 'put',
+ data: obj
+ })
+}
diff --git a/src/api/cuim/cloudteacher.js b/src/api/cuim/cloudteacher.js
new file mode 100644
index 0000000000000000000000000000000000000000..9032309747e33d4fcd16c269199ebaa32e5a4780
--- /dev/null
+++ b/src/api/cuim/cloudteacher.js
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+import request from '@/router/axios'
+
+export function fetchList(query) {
+ return request({
+ url: '/cuim/cloudteacher/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function addObj(obj) {
+ return request({
+ url: '/cuim/cloudteacher',
+ method: 'post',
+ data: obj
+ })
+}
+
+export function getObj(id) {
+ return request({
+ url: '/cuim/cloudteacher/' + id,
+ method: 'get'
+ })
+}
+
+export function delObj(id) {
+ return request({
+ url: '/cuim/cloudteacher/' + id,
+ method: 'delete'
+ })
+}
+
+export function putObj(obj) {
+ return request({
+ url: '/cuim/cloudteacher',
+ method: 'put',
+ data: obj
+ })
+}
diff --git a/src/const/crud/cuim/cloudacademy.js b/src/const/crud/cuim/cloudacademy.js
new file mode 100644
index 0000000000000000000000000000000000000000..b4c4475368e18d281ff1b58d60d0798b7db60491
--- /dev/null
+++ b/src/const/crud/cuim/cloudacademy.js
@@ -0,0 +1,77 @@
+export const tableOption = {
+ "border": true,
+ "index": true,
+ "indexLabel": "序号",
+ "stripe": true,
+ "menuAlign": "center",
+ "align": "center",
+ "searchMenuSpan": 6,
+ "column": [
+ {
+ "type": "hide",
+ "label": "学院id(主键)",
+ "prop": "id",
+ "hide":true,
+ "span": 16,
+ "showColumn":false,
+ "addDisplay": false,
+ "editDisplay": false
+ }, {
+ "type": "input",
+ "label": "学院名称",
+ "prop": "name",
+ "span": 16,
+ "search":true
+ }, {
+ "type": "input",
+ "label": "所属学校",
+ "span": 16,
+ "prop": "schoolName",
+ "search":true,
+ "addDisplay": false,
+ "editDisplay": false
+ }, {
+ "label": "所属学校",
+ "prop": "schoolId",
+ formslot: true,
+ slot: true,
+ span: 16,
+ hide: true,
+ rules: [{
+ required: true,
+ message: '请选择学校',
+ trigger: 'change'
+ }]
+ }, {
+ "type": "input",
+ "label": "描述",
+ "span": 16,
+ "prop": "description",
+ "search":true
+ } ]
+}
+
+export const schoolTableSelectFormOption = {
+ children:{
+ border: true,
+ "column": [
+ {
+ "label": "学校id(主键)",
+ "prop": "id",
+ "hide":true
+ }, {
+ "label": "学校名称",
+ "prop": "name",
+ "search":true,
+ }, {
+ "label": "所在地",
+ "prop": "loacation",
+ "search":true,
+ }, {
+ "label": "描述",
+ "prop": "description",
+ "search": true,
+ }
+ ]
+ }
+}
diff --git a/src/const/crud/cuim/cloudmajor.js b/src/const/crud/cuim/cloudmajor.js
new file mode 100644
index 0000000000000000000000000000000000000000..b280a88d25eb39627f96e95044a56f517f12ed42
--- /dev/null
+++ b/src/const/crud/cuim/cloudmajor.js
@@ -0,0 +1,27 @@
+export const tableOption = {
+ "border": true,
+ "index": true,
+ "indexLabel": "序号",
+ "stripe": true,
+ "menuAlign": "center",
+ "align": "center",
+ "searchMenuSpan": 6,
+ "column": [
+ {
+ "type": "input",
+ "label": "专业id(主键)",
+ "prop": "id"
+ }, {
+ "type": "input",
+ "label": "学院id",
+ "prop": "academyId"
+ }, {
+ "type": "input",
+ "label": "专业名称",
+ "prop": "name"
+ }, {
+ "type": "input",
+ "label": "描述",
+ "prop": "description"
+ } ]
+}
diff --git a/src/const/crud/cuim/cloudschool.js b/src/const/crud/cuim/cloudschool.js
new file mode 100644
index 0000000000000000000000000000000000000000..d92f4dc9bd9b76292b75b8a8d9ce35cf2b1456c0
--- /dev/null
+++ b/src/const/crud/cuim/cloudschool.js
@@ -0,0 +1,73 @@
+export const tableOption = {
+ "border": true,
+ "index": true,
+ "selection":true,
+ "indexLabel": "序号",
+ "stripe": true,
+ "menuAlign": "center",
+ "align": "center",
+ "searchMenuSpan": 6,
+ "column": [
+ {
+ "type": "input",
+ "label": "学校id(主键)",
+ "prop": "id",
+ "hide":true,
+ "span": 24,
+ "showColumn":false,
+ "addDisplay": false,
+ "editDisplay": false
+ }, {
+ "type": "input",
+ "label": "学校名称",
+ "prop": "name",
+ "search":true,
+ "span": 24,
+ rules: [{
+ required: true,
+ message: '学校名称'
+ },
+ {
+ min: 3,
+ max: 20,
+ message: '长度在 3 到 20 个字符',
+ trigger: 'blur'
+ }
+ ]
+
+ }, {
+ "type": "input",
+ "label": "所在地",
+ "prop": "loacation",
+ "search":true,
+ "span": 24,
+ rules: [{
+ required: true,
+ message: '所在地'
+ },
+ {
+ min: 3,
+ max: 50,
+ message: '长度在 3 到 50 个字符',
+ trigger: 'blur'
+ }
+ ]
+ }, {
+ "type": "input",
+ "label": "描述",
+ "prop": "description",
+ "search":true,
+ "span": 24,
+ rules: [{
+ required: true,
+ message: '描述'
+ },
+ {
+ min: 5,
+ max: 100,
+ message: '长度在 5 到 100 个字符',
+ trigger: 'blur'
+ }
+ ]
+ } ]
+}
diff --git a/src/const/crud/cuim/cloudstudent.js b/src/const/crud/cuim/cloudstudent.js
new file mode 100644
index 0000000000000000000000000000000000000000..58f3013dd94efd69a90878c0c4acf56faa1518d3
--- /dev/null
+++ b/src/const/crud/cuim/cloudstudent.js
@@ -0,0 +1,39 @@
+export const tableOption = {
+ "border": true,
+ "index": true,
+ "indexLabel": "序号",
+ "stripe": true,
+ "menuAlign": "center",
+ "align": "center",
+ "searchMenuSpan": 6,
+ "column": [
+ {
+ "type": "input",
+ "label": "学生id(主键)",
+ "prop": "id"
+ }, {
+ "type": "input",
+ "label": "用户id",
+ "prop": "userId"
+ }, {
+ "type": "input",
+ "label": "专业id",
+ "prop": "majorId"
+ }, {
+ "type": "input",
+ "label": "姓名",
+ "prop": "name"
+ }, {
+ "type": "input",
+ "label": "性别",
+ "prop": "sex"
+ }, {
+ "type": "input",
+ "label": "个人电话",
+ "prop": "phone"
+ }, {
+ "type": "input",
+ "label": "电子邮箱",
+ "prop": "email"
+ } ]
+}
diff --git a/src/const/crud/cuim/cloudteacher.js b/src/const/crud/cuim/cloudteacher.js
new file mode 100644
index 0000000000000000000000000000000000000000..dc27a3f8d4df991297c63f07226cfe43e0032b62
--- /dev/null
+++ b/src/const/crud/cuim/cloudteacher.js
@@ -0,0 +1,43 @@
+export const tableOption = {
+ "border": true,
+ "index": true,
+ "indexLabel": "序号",
+ "stripe": true,
+ "menuAlign": "center",
+ "align": "center",
+ "searchMenuSpan": 6,
+ "column": [
+ {
+ "type": "input",
+ "label": "老师id(主键)",
+ "prop": "id"
+ }, {
+ "type": "input",
+ "label": "用户id",
+ "prop": "userId"
+ }, {
+ "type": "input",
+ "label": "专业id",
+ "prop": "majorId"
+ }, {
+ "type": "input",
+ "label": "姓名",
+ "prop": "name"
+ }, {
+ "type": "input",
+ "label": "性别",
+ "prop": "sex"
+ }, {
+ "type": "input",
+ "label": "个人电话",
+ "prop": "phone"
+ }, {
+ "type": "input",
+ "label": "电子邮箱",
+ "prop": "email"
+ }, {
+ "type": "input",
+ "label": "职务",
+ "prop": "position"
+ } ]
+}
diff --git a/src/views/cuim/cloudacademy/index.vue b/src/views/cuim/cloudacademy/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..acd9422188eb2a8612421107e1b1dc2ded6b5251
--- /dev/null
+++ b/src/views/cuim/cloudacademy/index.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
diff --git a/src/views/cuim/cloudmajor/index.vue b/src/views/cuim/cloudmajor/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..ba3d05fbac9aa047ea2ee7a154bc175ac677f2a7
--- /dev/null
+++ b/src/views/cuim/cloudmajor/index.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+
diff --git a/src/views/cuim/cloudschool/index.vue b/src/views/cuim/cloudschool/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7b5e33b9535b4c23a8777028192208204b4934ab
--- /dev/null
+++ b/src/views/cuim/cloudschool/index.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
diff --git a/src/views/cuim/cloudstudent/index.vue b/src/views/cuim/cloudstudent/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..a83dac2ac982db76ec5bfcfecb1002df4171b6e7
--- /dev/null
+++ b/src/views/cuim/cloudstudent/index.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+
diff --git a/src/views/cuim/cloudteacher/index.vue b/src/views/cuim/cloudteacher/index.vue
new file mode 100644
index 0000000000000000000000000000000000000000..6af92031fc60c8b5a8464545299d85f9cef3cda6
--- /dev/null
+++ b/src/views/cuim/cloudteacher/index.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+