Browse Source

Merge branch 'develop3.0' of http://106.12.23.251:10080/TEAMMODEL/TEAMModelOS into develop3.0

CrazyIter 5 years ago
parent
commit
86aac5019c

+ 284 - 282
TEAMModelOS/ClientApp/src/api/index.js

@@ -5,299 +5,301 @@ import cloudApi from '../store/api/index'
 import schoolSetting from './schoolSetting'
 import totalAnalysis from './totalAnalysis'
 import stuAccount from './stuAccount'
+import syllabus from './syllabus'
 export default {
-  ClassMgmt,
-  stuAccount,
-  schoolSetting,
-  totalAnalysis,
-  talMgmt,
-  cloudApi,
-  // 获取登录跳转链接
-  getLoginLink: function(data) {
-    return post('api/login/login', data)
-  },
-  // 验证登录
-  checkLogin: function(data) {
-    return post('api/login/CheckLogin', data)
-  },
-  // 获取登录人员角色列表
-  getLoginRoles: function(data) {
-    return post('api/role/GetLoginRoles', data)
-  },
-  // 查找地区对应学校列表
-  getSchoolList: function(data) {
-    return post('api/School/getSchool', data)
-  },
-  // 根据当前登录用户获取已授权的AI智慧学校
-  getAuthSchool: function(data) {
-    return post('api/School/AuthorizedAISchool', data)
-  },
-  // 获取全部科目
-  FindSubjectsByDict: function(data) {
-    return post('api/subject/FindSubjectsByDict', data)
-  },
-  // 获取当前学校全部科目
-  FindSchoolSubjectsByDict: function(data) {
-    return post('api/subject/FindSchoolSubjectsByDict', data)
-  },
-  // 获取当前学校全部册别
-  FindSchoolVolumesByDict: function(data) {
-    return post('api/volume/FindSchoolVolumesByDict', data)
-  },
-  // 获取当前学校全部学段
-  FindSchoolPeriodsByDict: function(data) {
-    return post('api/period/FindSchoolPeriodsByDict', data)
-  },
-  // 获取当前学校全部年级
-  FindSchoolGradesByDict: function(data) {
-    return post('api/grade/FindSchoolGradesByDict', data)
-  },
-  // 获取当前学校全部学期
-  FindSchoolTermsByDict: function(data) {
-    return post('api/term/FindSchoolTermsByDict', data)
-  },
-  // 保存或更新学校科目
-  SaveOrUpdateSchoolSubject: function(data) {
-    return post('api/subject/SaveOrUpdateSchoolSubject', data)
-  },
-  // 保存或更新学校册别
-  SaveOrUpdateSchoolVolume: function(data) {
-    return post('api/volume/SaveOrUpdateSchoolVolume', data)
-  },
-  // 根据册别及其他条件获取课纲树形结构
-  FindSyllabusByVolumeCode: function(data) {
-    return post('api/syllabus/FindSyllabusByVolumeCode', data)
-  },
-  // 保存单个课纲节点
-  SaveOrUpdateSingleNode: function(data) {
-    return post('api/Syllabus/SaveOrUpdate', data)
-  },
-  // 根据条件获取模板知识点
-  FindKnowledgePointByDict: function(data) {
-    return post('api/Knowledge/FindKnowledgePointByDict', data)
-  },
-  // 根据条件获取知识块及知识点树形结构
-  FindKnowledgeBlockAndPointByDict: function(data) {
-    return post('api/Knowledge/FindKnowledgeBlockAndPointByDict', data)
-  },
-  // 根据标准知识点知识块关联生成学校的知识点,知识块
-  SaveOrUpdateSchoolKnowledgeAsStdKnowledge: function(data) {
-    return post('api/Knowledge/SaveOrUpdateSchoolKnowledgeAsStdKnowledge', data)
-  },
-  // 获取学校的知识块及知识点结构
-  FindSchoolBlockAndPointByDict: function(data) {
-    return post('api/Knowledge/FindSchoolBlockAndPointByDict', data)
-  },
-  // 获取学校知识点
-  FindSchoolPointByDict: function(data) {
-    return post('api/Knowledge/FindSchoolPointByDict', data)
-  },
-  // 手动创建学校知识块
-  SaveOrUpdateSchoolBlock: function(data) {
-    return post('api/Knowledge/SaveOrUpdateSchoolBlock', data)
-  },
-  // 手动创建学校知识点
-  SaveOrUpdateAllSchoolPoint: function(data) {
-    return post('api/Knowledge/SaveOrUpdateAllSchoolPoint', data)
-  },
-  // 手动引入学校知识块包含的知识点
-  SaveOrUpdateAllSchoolBlockPoint: function(data) {
-    return post('api/Knowledge/SaveOrUpdateAllSchoolBlockPoint', data)
-  },
-  // 移除学校知识块中的知识点
-  RemoveSchoolBlockPoint: function(data) {
-    return post('api/Knowledge/RemoveSchoolBlockPoint', data)
-  },
+    ClassMgmt,
+    stuAccount,
+    syllabus,
+    schoolSetting,
+    totalAnalysis,
+    talMgmt,
+    cloudApi,
+    // 获取登录跳转链接
+    getLoginLink: function (data) {
+        return post('api/login/login', data)
+    },
+    // 验证登录
+    checkLogin: function (data) {
+        return post('api/login/CheckLogin', data)
+    },
+    // 获取登录人员角色列表
+    getLoginRoles: function (data) {
+        return post('api/role/GetLoginRoles', data)
+    },
+    // 查找地区对应学校列表
+    getSchoolList: function (data) {
+        return post('api/School/getSchool', data)
+    },
+    // 根据当前登录用户获取已授权的AI智慧学校
+    getAuthSchool: function (data) {
+        return post('api/School/AuthorizedAISchool', data)
+    },
+    // 获取全部科目
+    FindSubjectsByDict: function (data) {
+        return post('api/subject/FindSubjectsByDict', data)
+    },
+    // 获取当前学校全部科目
+    FindSchoolSubjectsByDict: function (data) {
+        return post('api/subject/FindSchoolSubjectsByDict', data)
+    },
+    // 获取当前学校全部册别
+    FindSchoolVolumesByDict: function (data) {
+        return post('api/volume/FindSchoolVolumesByDict', data)
+    },
+    // 获取当前学校全部学段
+    FindSchoolPeriodsByDict: function (data) {
+        return post('api/period/FindSchoolPeriodsByDict', data)
+    },
+    // 获取当前学校全部年级
+    FindSchoolGradesByDict: function (data) {
+        return post('api/grade/FindSchoolGradesByDict', data)
+    },
+    // 获取当前学校全部学期
+    FindSchoolTermsByDict: function (data) {
+        return post('api/term/FindSchoolTermsByDict', data)
+    },
+    // 保存或更新学校科目
+    SaveOrUpdateSchoolSubject: function (data) {
+        return post('api/subject/SaveOrUpdateSchoolSubject', data)
+    },
+    // 保存或更新学校册别
+    SaveOrUpdateSchoolVolume: function (data) {
+        return post('api/volume/SaveOrUpdateSchoolVolume', data)
+    },
+    // 根据册别及其他条件获取课纲树形结构
+    FindSyllabusByVolumeCode: function (data) {
+        return post('api/syllabus/FindSyllabusByVolumeCode', data)
+    },
+    // 保存单个课纲节点
+    SaveOrUpdateSingleNode: function (data) {
+        return post('api/Syllabus/SaveOrUpdate', data)
+    },
+    // 根据条件获取模板知识点
+    FindKnowledgePointByDict: function (data) {
+        return post('api/Knowledge/FindKnowledgePointByDict', data)
+    },
+    // 根据条件获取知识块及知识点树形结构
+    FindKnowledgeBlockAndPointByDict: function (data) {
+        return post('api/Knowledge/FindKnowledgeBlockAndPointByDict', data)
+    },
+    // 根据标准知识点知识块关联生成学校的知识点,知识块
+    SaveOrUpdateSchoolKnowledgeAsStdKnowledge: function (data) {
+        return post('api/Knowledge/SaveOrUpdateSchoolKnowledgeAsStdKnowledge', data)
+    },
+    // 获取学校的知识块及知识点结构
+    FindSchoolBlockAndPointByDict: function (data) {
+        return post('api/Knowledge/FindSchoolBlockAndPointByDict', data)
+    },
+    // 获取学校知识点
+    FindSchoolPointByDict: function (data) {
+        return post('api/Knowledge/FindSchoolPointByDict', data)
+    },
+    // 手动创建学校知识块
+    SaveOrUpdateSchoolBlock: function (data) {
+        return post('api/Knowledge/SaveOrUpdateSchoolBlock', data)
+    },
+    // 手动创建学校知识点
+    SaveOrUpdateAllSchoolPoint: function (data) {
+        return post('api/Knowledge/SaveOrUpdateAllSchoolPoint', data)
+    },
+    // 手动引入学校知识块包含的知识点
+    SaveOrUpdateAllSchoolBlockPoint: function (data) {
+        return post('api/Knowledge/SaveOrUpdateAllSchoolBlockPoint', data)
+    },
+    // 移除学校知识块中的知识点
+    RemoveSchoolBlockPoint: function (data) {
+        return post('api/Knowledge/RemoveSchoolBlockPoint', data)
+    },
 
-  // 获取登录人员身份信息
-  getLoginClaim: function(data) {
-    return post('api/role/GetLoginClaim', data)
-  },
+    // 获取登录人员身份信息
+    getLoginClaim: function (data) {
+        return post('api/role/GetLoginClaim', data)
+    },
 
-  // 新建习题保存到题库
-  SaveItemBank: function(data) {
-    return post('api/evaluation/ItemBank', data)
-  },
+    // 新建习题保存到题库
+    SaveItemBank: function (data) {
+        return post('api/evaluation/ItemBank', data)
+    },
 
-  // 新建试卷到试卷库
-  SaveTestPaper: function(data) {
-    return post('api/Evaluation/testPaper', data)
-  },
+    // 新建试卷到试卷库
+    SaveTestPaper: function (data) {
+        return post('api/Evaluation/testPaper', data)
+    },
 
-  // 新建试卷到试卷库
-  SaveAnalyzeHtml: function(data) {
-    return post('api/ImportExercise/AnalyzeHtml', data)
-  },
+    // 新建试卷到试卷库
+    SaveAnalyzeHtml: function (data) {
+        return post('api/ImportExercise/AnalyzeHtml', data)
+    },
 
-  // 获取所有学校信息
-  GetAllSchool: function(data) {
-    return post('api/school/GetAllSchool', data)
-  },
+    // 获取所有学校信息
+    GetAllSchool: function (data) {
+        return post('api/school/GetAllSchool', data)
+    },
 
-  // 根据条件获取学段
-  FindPeriodsByDict: function(data) {
-    return post('api/period/FindPeriodsByDict', data)
-  },
+    // 根据条件获取学段
+    FindPeriodsByDict: function (data) {
+        return post('api/period/FindPeriodsByDict', data)
+    },
 
-  // 根据条件获取年级
-  FindGradesByDict: function(data) {
-    return post('api/grade/FindGradesByDict', data)
-  },
-  // 根据条件获取学科
-  FindSubjectsByDict: function(data) {
-    return post('api/subject/FindSubjectsByDict', data)
-  },
+    // 根据条件获取年级
+    FindGradesByDict: function (data) {
+        return post('api/grade/FindGradesByDict', data)
+    },
+    // 根据条件获取学科
+    FindSubjectsByDict: function (data) {
+        return post('api/subject/FindSubjectsByDict', data)
+    },
 
-  // 学情分析API
-  // 查询班年级数据
-  FindGrade: function() {
-    return fetch('/api/class/getGrade?identity=Grade')
-  },
-  // 查询学年期数据
-  FindTerm: function() {
-    return fetch('/api/class/getTerm?identity=term')
-  },
-  // 查询考试情况
-  FindExam: function() {
-    return fetch('/api/class/getExam?identity=Exam')
-  },
-  // 查询基础数据
-  FindBasics: function() {
-    return fetch('/api/class/getBase?identity=Base')
-  },
-  // 查询各校成绩排名(堆叠柱状图)
-  FindBargraph: function() {
-    return fetch('/api/class/getExam?identity=EcharsZ')
-  },
-  // 查询各项科目表现(雷达图)
-  FindRadargraph: function() {
-    return fetch('/api/class/getExam?identity=EcharsL')
-  },
-  // 查询科目表现对比(饼图)
-  FindSubjectsManifestation: function() {
-    return fetch('/api/class/getExam?identity=EcharsY')
-  },
-  // 查询历次总分统计表(折线图)
-  FindLinechart: function() {
-    return fetch('/api/class/getExam?identity=EcharsZx')
-  },
-  // 查询考试类型
-  FindExamtype: function() {
-    return fetch('/api/class/getExam?identity=ExamType')
-  },
+    // 学情分析API
+    // 查询班年级数据
+    FindGrade: function () {
+        return fetch('/api/class/getGrade?identity=Grade')
+    },
+    // 查询学年期数据
+    FindTerm: function () {
+        return fetch('/api/class/getTerm?identity=term')
+    },
+    // 查询考试情况
+    FindExam: function () {
+        return fetch('/api/class/getExam?identity=Exam')
+    },
+    // 查询基础数据
+    FindBasics: function () {
+        return fetch('/api/class/getBase?identity=Base')
+    },
+    // 查询各校成绩排名(堆叠柱状图)
+    FindBargraph: function () {
+        return fetch('/api/class/getExam?identity=EcharsZ')
+    },
+    // 查询各项科目表现(雷达图)
+    FindRadargraph: function () {
+        return fetch('/api/class/getExam?identity=EcharsL')
+    },
+    // 查询科目表现对比(饼图)
+    FindSubjectsManifestation: function () {
+        return fetch('/api/class/getExam?identity=EcharsY')
+    },
+    // 查询历次总分统计表(折线图)
+    FindLinechart: function () {
+        return fetch('/api/class/getExam?identity=EcharsZx')
+    },
+    // 查询考试类型
+    FindExamtype: function () {
+        return fetch('/api/class/getExam?identity=ExamType')
+    },
 
-  // 动态数据
-  // 关注年级变化数据
-  FindSelectGrade: function() {
-    return fetch('/api/class/getChange?identity=Changegrade')
-  },
-  // 关注学年期变化数据
-  FindSelectTerm: function() {
-    return fetch('/api/class/getChangeterm?identity=Changeterm')
-  },
-  // 点击某次考试详情 变化数据
-  FindSelectExam: function() {
-    return fetch('/api/class/getChangeExam?identity=Changeexam')
-  },
-  // 筛选考试类型 变化数据
-  FindSelectExamType: function() {
-    return fetch('/api/class/getChangeExamType?identity=Changeexamtype')
-  },
-  // 显示文科数据  变化数据
-  FindSelectArts: function() {
-    return fetch('/api/class/getChangeArts?identity=Changarts')
-  },
-  // 显示理科数据  变化数据
-  FindSelectScience: function() {
-    return fetch('/api/class/getChangeScience?identity=Changscience')
-  },
-  // 点击柱状图 赋值到雷达图
-  // 成都七中
-  Findcdqz: function() {
-    return fetch('/api/class/getExam?identity=cdqz')
-  },
-  // 成都四中
-  Findcdsz: function() {
-    return fetch('/api/class/getExam?identity=cdsz')
-  },
-  // 成都九中
-  Findcdjz: function() {
-    return fetch('/api/class/getExam?identity=cdjz')
-  },
-  // 成都树德
-  Findcdsd: function() {
-    return fetch('/api/class/getExam?identity=cdsd')
-  },
-  // 师大一中
-  Findsdyz: function() {
-    return fetch('/api/class/getExam?identity=sdyz')
-  },
-  // 西川中学
-  Findxczx: function() {
-    return fetch('/api/class/getExam?identity=xczx')
-  },
-  // 石室中学
-  Findsszx: function() {
-    return fetch('/api/class/getExam?identity=sszx')
-  },
+    // 动态数据
+    // 关注年级变化数据
+    FindSelectGrade: function () {
+        return fetch('/api/class/getChange?identity=Changegrade')
+    },
+    // 关注学年期变化数据
+    FindSelectTerm: function () {
+        return fetch('/api/class/getChangeterm?identity=Changeterm')
+    },
+    // 点击某次考试详情 变化数据
+    FindSelectExam: function () {
+        return fetch('/api/class/getChangeExam?identity=Changeexam')
+    },
+    // 筛选考试类型 变化数据
+    FindSelectExamType: function () {
+        return fetch('/api/class/getChangeExamType?identity=Changeexamtype')
+    },
+    // 显示文科数据  变化数据
+    FindSelectArts: function () {
+        return fetch('/api/class/getChangeArts?identity=Changarts')
+    },
+    // 显示理科数据  变化数据
+    FindSelectScience: function () {
+        return fetch('/api/class/getChangeScience?identity=Changscience')
+    },
+    // 点击柱状图 赋值到雷达图
+    // 成都七中
+    Findcdqz: function () {
+        return fetch('/api/class/getExam?identity=cdqz')
+    },
+    // 成都四中
+    Findcdsz: function () {
+        return fetch('/api/class/getExam?identity=cdsz')
+    },
+    // 成都九中
+    Findcdjz: function () {
+        return fetch('/api/class/getExam?identity=cdjz')
+    },
+    // 成都树德
+    Findcdsd: function () {
+        return fetch('/api/class/getExam?identity=cdsd')
+    },
+    // 师大一中
+    Findsdyz: function () {
+        return fetch('/api/class/getExam?identity=sdyz')
+    },
+    // 西川中学
+    Findxczx: function () {
+        return fetch('/api/class/getExam?identity=xczx')
+    },
+    // 石室中学
+    Findsszx: function () {
+        return fetch('/api/class/getExam?identity=sszx')
+    },
 
-  // 任教老师页面
-  // 查询关注学年期
-  FindTeachTerm: function() {
-    return fetch('/api/class/getTerm?identity=Teachterm')
-  },
-  // 查询数据对比
-  FindTeachContrast: function() {
-    return fetch('/api/class/getTerm?identity=Teachcontrast')
-  },
-  // 查询考试信息
-  FindTeachExam: function() {
-    return fetch('/api/class/getExam?identity=TeachExam')
-  },
-  // 查询基础数据
-  FindTeachBasics: function() {
-    return fetch('/api/class/getTerm?identity=TeachBase')
-  },
-  // 查询各班平均分数排名(柱状图)
-  FindTeachbargraph: function() {
-    return fetch('/api/class/getExam?identity=TeachEcharsZ')
-  },
-  // 查询及格率比较
-  FindTeachAnnulus: function() {
-    return fetch('/api/class/getExam?identity=TeachAnnulus')
-  },
-  // 查询历次总分统计图
-  FindTeachHistory: function() {
-    return fetch('/api/class/getExam?identity=TeachEcharsZx')
-  },
-  // 查询PR值
-  FindTeachPR: function() {
-    return fetch('/api/class/getExam?identity=TeachPie')
-  },
+    // 任教老师页面
+    // 查询关注学年期
+    FindTeachTerm: function () {
+        return fetch('/api/class/getTerm?identity=Teachterm')
+    },
+    // 查询数据对比
+    FindTeachContrast: function () {
+        return fetch('/api/class/getTerm?identity=Teachcontrast')
+    },
+    // 查询考试信息
+    FindTeachExam: function () {
+        return fetch('/api/class/getExam?identity=TeachExam')
+    },
+    // 查询基础数据
+    FindTeachBasics: function () {
+        return fetch('/api/class/getTerm?identity=TeachBase')
+    },
+    // 查询各班平均分数排名(柱状图)
+    FindTeachbargraph: function () {
+        return fetch('/api/class/getExam?identity=TeachEcharsZ')
+    },
+    // 查询及格率比较
+    FindTeachAnnulus: function () {
+        return fetch('/api/class/getExam?identity=TeachAnnulus')
+    },
+    // 查询历次总分统计图
+    FindTeachHistory: function () {
+        return fetch('/api/class/getExam?identity=TeachEcharsZx')
+    },
+    // 查询PR值
+    FindTeachPR: function () {
+        return fetch('/api/class/getExam?identity=TeachPie')
+    },
 
-  // 动态数据
-  // 选择关注学年期
-  FindDynamicTerm: function() {
-    return fetch('/api/class/getExam?identity=TeachChangeterm')
-  },
-  // 选择数据比较
-  FindDatacompare: function() {
-    return fetch('/api/class/getExam?identity=TeachChangeDatacompare')
-  },
-  // 选择考试数据
-  FindClickExam: function() {
-    return fetch('/api/class/getExam?identity=TeachChangeExam')
-  },
-  // 点击班级 联动 RP值
-  FindClickPR: function() {
-    return fetch('/api/class/getExam?identity=TeachClickPR')
-  },
+    // 动态数据
+    // 选择关注学年期
+    FindDynamicTerm: function () {
+        return fetch('/api/class/getExam?identity=TeachChangeterm')
+    },
+    // 选择数据比较
+    FindDatacompare: function () {
+        return fetch('/api/class/getExam?identity=TeachChangeDatacompare')
+    },
+    // 选择考试数据
+    FindClickExam: function () {
+        return fetch('/api/class/getExam?identity=TeachChangeExam')
+    },
+    // 点击班级 联动 RP值
+    FindClickPR: function () {
+        return fetch('/api/class/getExam?identity=TeachClickPR')
+    },
 
-  /*
-   *评测
-   */
-  // 上传图片
-  UploadFile: function(data) {
-    return post('/api/file/uploadFile', data)
-  }
+    /*
+     *评测
+     */
+    // 上传图片
+    UploadFile: function (data) {
+        return post('/api/file/uploadFile', data)
+    }
 }

+ 20 - 0
TEAMModelOS/ClientApp/src/api/syllabus.js

@@ -0,0 +1,20 @@
+import { post } from '@/filters/http'
+export default {
+    // 根据条件获取学校数据
+    GetSchoolInfo: function (data) {
+        return post('/api/School/FindSchool', data)
+    },
+    // 保存或更新课纲册别
+    SaveOrUpdateVolume: function (data) {
+        return post('/api/Volume/SaveOrUpdate', data)
+    },
+    // 查找课纲册别
+    GetVolumes: function (data) {
+        return post('/api/Volume/Find', data)
+    },
+    // 删除课纲册别
+    DeleteVolume: function (data) {
+        return post('/api/Volume/Delete', data)
+    },
+
+}

+ 2 - 0
TEAMModelOS/ClientApp/src/boot-app.js

@@ -23,10 +23,12 @@ import vuescroll from 'vuescroll/dist/vuescroll-native'
 import { Tree } from 'element-ui'; //按需引入element Tree组件
 import 'element-ui/lib/theme-chalk/tree.css';
 import 'element-ui/lib/theme-chalk/icon.css';
+import animated from 'animate.css'
 
 require('video.js/dist/video-js.css')
 require('vue-video-player/src/custom-theme.css')
 Vue.use(VideoPlayer)
+Vue.use(animated)
 Vue.use(Loading)
 Vue.use(Tree)
 Vue.component('BaseChangeLine', BaseChangeLine)

+ 1 - 1
TEAMModelOS/ClientApp/src/filters/http.js

@@ -43,7 +43,7 @@ axios.interceptors.response.use(
     return response
   },
   error => {
-    if (error.response.status === 401) {
+      if (error.response && error.response.status === 401) {
       localStorage.clear()
       window.location.href = window.location.origin + '/selectModule'
       // alert("登录状态已过期!请重新登录!");

+ 67 - 59
TEAMModelOS/ClientApp/src/view/syllabus/newSyllabus/Index.less

@@ -4,29 +4,33 @@
 @second-textColor:#a5a5a5; //文本副级颜色
 @primary-fontSize:16px;
 @second-fontSize:14px;
-@title-fontSize:20px;
+@title-fontSize:18px;
 
 .new-syllabus {
 
+
     &-container {
         height: 100%;
+        font-family: '微軟正黑體', 'Heiti TC';
         background: @main-bgColor;
     }
 
     &-header {
-        height: 80px;
+        height: 70px;
         border-top: 1px solid @borderColor;
-        border-bottom: 1px solid @borderColor;
+        box-shadow: 0px 4px 9px 0px #010101;
         .fl-row-center;
-        justify-content:space-between;
-        padding:0 20px;
+        justify-content: space-between;
+        padding: 0 20px;
+        z-index: 1;
+
 
         span {
-            color: @primary-textColor;
+            margin-right: 30px;
+            color: @second-textColor;
             border-bottom: 2px solid transparent;
-            font-size: @primary-fontSize;
+            font-size: @second-fontSize;
             font-weight: bold;
-            letter-spacing:1px;
             padding: 5px 0;
             cursor: pointer;
         }
@@ -34,11 +38,12 @@
         .tab-active {
             border-color: @primary-textColor;
             color: @primary-textColor;
+            font-size: @primary-fontSize;
         }
     }
 
     &-content {
-        height: calc(100% - 80px);
+        height: calc(100% - 70px);
         width: 100%;
         .fl-row-center;
 
@@ -50,67 +55,36 @@
 
 
             .ns-header {
-                .fl-row-center;
-                padding-left: 20px;
+                padding: 0 15px;
                 height: 50px;
+                font-size: @primary-fontSize;
+                font-weight: bold;
                 color: @primary-textColor;
                 border-bottom: 1px solid @borderColor;
-            }
-
-            .pl {
-                width: 100%;
-                height: 100%;
-                padding: 0 0 0 10px;
-                overflow: auto;
-                padding-bottom: 50px;
-
-
-                &-item {
-                    width: 100%;
-                    padding: 10px 15px;
-                    border-bottom: 1px solid @borderColor;
-                    cursor: pointer;
-
-                    &:hover {
-                        .item-active;
-                    }
-
-                    &-name {
-                        font-weight: bold;
-                        font-size: @title-fontSize;
-                        color: @primary-textColor;
-                    }
-
-                    &-info {
-                        padding: 1px 0;
-                        font-size: @second-fontSize;
-                        color: @second-textColor;
 
-                        span {
-                            display: inline-block;
-                            width: 3px;
-                            height: 10px;
-                            margin-right: 5px;
-                            background: @second-textColor;
-                        }
-                    }
+                &-content {
+                    height: 50px;
+                    .fl-row-center;
+                    justify-content: space-between;
                 }
             }
 
+
             .gl {
                 width: 100%;
                 height: 100%;
                 padding: 0 0 0 10px;
-                overflow: auto;
+                overflow: hidden;
                 padding-bottom: 50px;
 
 
                 &-item {
                     width: 100%;
                     padding: 20px 15px;
-                    border-bottom: 1px solid @borderColor;
+                    border-bottom: 1px solid #2c2c2c;
                     cursor: pointer;
 
+
                     &:hover {
                         .item-active;
                     }
@@ -118,6 +92,7 @@
                     &-name {
                         font-size: @title-fontSize;
                         color: @primary-textColor;
+                        font-weight: bold;
                     }
 
                     &-info {
@@ -135,23 +110,56 @@
                     }
                 }
             }
-        }
 
-        .ns-col1 {
-            width: 16%;
+            .vl {
+                .gl-item-info {
+                    span {
+                        margin-left: 5px
+                    }
+                }
+            }
         }
 
-        .ns-col2 {
+        .ns-col {
             width: 15%;
+            box-shadow: 6px 6px 9px 0px #000000;
+            z-index: 2;
+            background: #171717;
         }
 
-        .ns-col3 {
+        .ns-col2 {
             width: 19%;
+            background: #202020;
+            box-shadow: 6px 6px 9px 0px #000000;
+            z-index: 1;
         }
 
-        .ns-col4 {
-            width: 50%;
-            padding-top:20px;
+        .ns-col3 {
+            width: 66%;
+            padding: 20px;
+
+            .tree-info{
+
+                .ivu-icon{
+                    font-size:26px;
+                    color:#fff;
+                    margin:0 10px 0 50px;
+                }
+
+                .tree-name{
+                    color:#fff;
+                    font-size:22px;
+                    font-weight:bold;
+                }
+                
+                .tree-version{
+                    color:#fff;
+                    font-size:14px;
+                    letter-spacing:1px;
+                    margin-left:10px;
+                    font-weight:bold;
+                }
+            }
         }
     }
 }

+ 148 - 34
TEAMModelOS/ClientApp/src/view/syllabus/newSyllabus/index.vue

@@ -4,73 +4,122 @@
 
 <template>
     <div class="new-syllabus-container">
+        <!-- 课纲头部 切换来源以及选择学段 -->
         <div class="new-syllabus-header">
             <div>
-                <span>课纲管理</span>
+                <span :class="tabIndex == 0 ? 'tab-active' : ''" @click="handleTabClick(0)">校本课纲</span>
+                <span :class="tabIndex == 1 ? 'tab-active' : ''" @click="handleTabClick(1)">私有课纲</span>
             </div>
-            <div>
-                <!--<Input search placeholder="Enter something..." />-->
+            <div class="new-syllabus-select">
+                <span>当前学段:</span>
+                <Select v-model="currentPeriod" style="width:200px" @on-change="onPeriodChange">
+                    <Option v-for="(item,index) in periodList" :value="index" :key="index">{{ item.name }}</Option>
+                </Select>
             </div>
         </div>
+        <!-- 课纲主体内容 -->
         <div class="new-syllabus-content">
-            <div class="ns-col ns-col1" slot="left">
+            <!-- 选择科目 -->
+            <div class="ns-col ns-col">
                 <div class="ns-header">
-                    <span>选择学段</span>
-                </div>
-                <vuescroll>
-                    <div class="pl">
-                        <div class="pl-item" v-for="(item,index) in periodList" :key="index" @click="handlePeriodTap(index)" :class="index == activePeriodIndex ? 'item-active':''">
-                            <p class="pl-item-name">{{item.name}}</p>
-                            <p class="pl-item-info"><span></span>年级数:{{item.gradeCount}}</p>
-                            <p class="pl-item-info"><span></span>学期数:{{item.semesterCount}}</p>
-                            <p class="pl-item-info"><span></span>科目数:{{item.subjectCount}}</p>
-                        </div>
+                    <!-- 切换头部以及搜索框 -->
+                    <div class="ns-header-content" v-if="!isSearchSubject">
+                        <span>
+                            <Icon type="md-bookmark" color="#fff" size="20" />
+                            <span style="margin-left:5px">科目</span>
+                        </span>
+                        <Icon type="ios-search" color="#fff" size="18" style="cursor:pointer" @click="isSearchSubject = true" />
+                    </div>
+                    <div class="ns-header-search" v-else>
+                        <Input icon="ios-close" placeholder="搜索科目..." autofocus style="width: 100%" @on-click="isSearchSubject = false" @on-blur="isSearchSubject = false" />
                     </div>
-                </vuescroll>
-            </div>
-            <div class="ns-col ns-col2" slot="right">
-                <div class="ns-header">
-                    <span>选择科目</span>
                 </div>
                 <vuescroll>
                     <div class="gl">
-                        <div class="gl-item" v-for="(item,index) in subjectList" :key="index" @click="handleSubjectTap(index)" :class="index == activeGradeIndex ? 'item-active':''">
+                        <div :class='["gl-item","animated","slideInUp",index == activeGradeIndex ? "item-active":""]'
+                             v-for="(item,index) in subjectList"
+                             :key="index"
+                             @click="handleSubjectTap(index)"
+                             :style="{ animationDelay: ((index+1)*0.1) + 's'}">
                             <p class="gl-item-name">{{item.name}}</p>
                             <p class="gl-item-info"><span></span>册别数:{{index}}</p>
                         </div>
                     </div>
                 </vuescroll>
             </div>
-            <div class="ns-col ns-col3" slot="trigger">
+            <!-- 选择册别 -->
+            <div class="ns-col ns-col2">
                 <div class="ns-header">
-                    <span>选择册别</span>
+                    <!-- 切换头部以及搜索框 -->
+                    <div class="ns-header-content" v-if="!isSearchVolume">
+                        <span>
+                            <Icon type="md-bookmarks" color="#fff" size="20" />
+                            <span style="margin-left:5px">册别</span>
+                        </span>
+                        <div>
+                            <Icon type="md-add" color="#fff" size="18" style="cursor:pointer;margin-right:10px" @click="isAddVolume = true" />
+                            <Icon type="ios-funnel" color="#fff" size="18" style="cursor:pointer;margin-right:10px" />
+                            <Icon type="ios-search" color="#fff" size="18" style="cursor:pointer" @click="isSearchVolume = true" />
+                        </div>
+                    </div>
+                    <div class="ns-header-search" v-else>
+                        <Input icon="ios-close" placeholder="搜索册别..." autofocus style="width: 100%" @on-click="isSearchVolume = false" @on-blur="isSearchVolume = false" />
+                    </div>
                 </div>
                 <vuescroll>
-                    <div class="gl">
-                        <div class="gl-item" v-for="(item,index) in subjectList" :key="index" @click="handleVolumnTap(index)" :class="index == activeVolumnIndex ? 'item-active':''">
+                    <div class="vl gl">
+                        <div :class='["gl-item","animated","slideInUp",index == activeVolumeIndex ? "item-active":""]'
+                             v-for="(item,index) in subjectList"
+                             :key="index"
+                             @click="handleVolumeTap(index)"
+                             :style="{ animationDelay: ((index+1)*0.1) + 's'}">
                             <p class="gl-item-name">小学二年级语文上册</p>
-                            <p class="gl-item-info"><span></span>册别数:{{index}}</p>
+                            <p class="gl-item-info">小学<span></span>上学期</p>
+                            <p class="gl-item-info">共编使用者:8</p>
                         </div>
                     </div>
                 </vuescroll>
             </div>
-            <div class="ns-col ns-col4" slot="trigger">
+            <!-- 展示课纲树形结构部分 -->
+            <div class="ns-col ns-col3">
                 <div>
                     <vuescroll>
+                        <div class="tree-info">
+                            <Icon type="ios-book" />
+                            <span class="tree-name">小学二年级语文上册</span>
+                            <span class="tree-version">v1.0.0</span>
+                        </div>
                         <Tree></Tree>
-                        <!--<Tree :treeDatas="treeDatas"></Tree>-->
                     </vuescroll>
                 </div>
             </div>
         </div>
+
+        <!-- 新增册别弹窗 -->
+        <Modal v-model="isAddVolume" width="560" footer-hide class="add-volume-modal">
+            <div class="modal-header" slot="header">新增册别</div>
+            <div class="modal-content">
+                <AddVolume></AddVolume>
+            </div>
+            <div class="modal-footer">
+                <Button type="success">确认</Button>
+            </div>
+        </Modal>
     </div>
 </template>
 
 <script>
     import Tree from '@/components/syllabus/DragTree'
+    import AddVolume from './operation/addVolume'
     export default {
         data() {
             return {
+                schoolInfo: {
+                    schoolCode: "HBCN",
+                    areaCode:"86"
+                },
+                currentPeriod:0,
+                tabIndex: 0,
                 originData: {},
                 periodList: [],
                 gradeList: [],
@@ -156,21 +205,31 @@
                 }], // 课纲数据
                 activePeriodIndex: 0,
                 activeGradeIndex: 0,
-                activeVolumnIndex: 0,
-                split1: 1
+                activeVolumeIndex: 0,
+                isSearchSubject: false,
+                isSearchVolume: false,
+                isAddVolume:false
             }
         },
         components: {
-            Tree
+            Tree,AddVolume
         },
         created() {
-            console.log(this.getData())
             this.originData = this.getData()
             this.periodList = this.originData.period
-
             this.handlePeriodTap(0)
+            this.initSchoolData()
         },
         methods: {
+            initSchoolData() {
+                this.$api.syllabus.GetSchoolInfo(this.schoolInfo).then(res => {
+                    console.log(res)
+                })
+            },
+            handleTabClick(index) {
+                this.tabIndex = index
+                //this.$router.push(index == 0 ? '/home/school/system' : '/home/school/classroom')
+            },
             getData() {
                 let res = require('./syllabus.json')
                 return res
@@ -181,6 +240,10 @@
                 return res
             },
 
+            onPeriodChange(val) {
+                this.subjectList = this.originData.period[val].subject
+            },
+
             handlePeriodTap(index) {
                 this.activePeriodIndex = index
                 this.subjectList = this.periodList[index].subject
@@ -192,11 +255,62 @@
                 // this.gradeList = this.periodList[index].grade;
             },
 
-            handleVolumnTap(index) {
-                this.activeVolumnIndex = index
+            handleVolumeTap(index) {
+                this.activeVolumeIndex = index
                 // this.gradeList = this.periodList[index].grade;
             }
         }
 
     }
 </script>
+
+<style>
+    .new-syllabus-header .ivu-select-single .ivu-select-selection {
+        background:#3c3c3c;
+        color:#fbfbfb;
+        border:none;
+    }
+    
+    .new-syllabus-header .ivu-select-single .ivu-select-arrow {
+        color:#fbfbfb;
+    }
+
+    .ns-header .ivu-input {
+        background:#3c3c3c;
+        color:#fff;
+        border:none;
+        height:36px;
+        margin-top:7px;
+    }
+
+    .ns-header .ivu-input-icon {
+        font-size:24px;
+        color:#cfc7c7;
+        line-height:50px;
+        cursor:pointer;
+    }
+
+    .add-volume-modal .ivu-modal-content{
+        background:#3c3c3c;
+        color:#fff;
+        font-family: '微軟正黑體', 'Heiti TC';
+    }
+    
+    .add-volume-modal .ivu-modal-header {
+        border-bottom:none;
+        font-size:18px;
+        padding:25px;
+    }
+
+    .add-volume-modal .modal-content {
+        padding:10px 35px 30px 35px;
+    }
+
+    .add-volume-modal .modal-footer .ivu-btn {
+        width:90%;
+        margin-left:5%;
+        height:40px;
+        background:rgb(11, 151, 117);
+        border:none;
+    }
+</style>

+ 50 - 0
TEAMModelOS/ClientApp/src/view/syllabus/newSyllabus/operation/addVolume.vue

@@ -0,0 +1,50 @@
+
+<template>
+    <div class="form-container">
+        <Form :model="formTop" label-position="top">
+            <FormItem label="关联科目">
+                <Input v-model="formTop.input1"></Input>
+            </FormItem>
+            <FormItem label="关联学期">
+                <Input v-model="formTop.input2"></Input>
+            </FormItem>
+            <FormItem label="册别名称">
+                <Input v-model="formTop.input3"></Input>
+            </FormItem>
+        </Form>
+    </div>
+</template>
+
+<script>
+    export default {
+        data() {
+            return {
+                formTop: {
+                    input1: '',
+                    input2: '',
+                    input3: ''
+                }
+            }
+        },
+
+        created() {
+           
+        },
+        methods: {
+           
+        }
+
+    }
+</script>
+
+<style>
+    .form-container .ivu-form .ivu-form-item-label{
+        color:#fff;
+    }
+
+    .form-container .ivu-input {
+        background:transparent;
+        border-color:#808080;
+        height:35px;
+    }
+</style>

+ 272 - 240
TEAMModelOS/ClientApp/src/view/syllabus/newSyllabus/syllabus.json

@@ -1,244 +1,276 @@
 {
-    "id": "dec2fd23-ecbd-43db-bb3f-ce08c7e7110d",
-    "schoolcode": "HBCN",
-    "name": "醍摩豆书院",
-    "period": [
-        {
-            "grade": [
-                {
-                    "code": "d56d657d-d12a-c5f6-f74a-5892e55ff361",
-                    "name": "一年级"
-                },
-                {
-                    "code": "c63348b4-c17e-37e9-c9d8-ca091db446a3",
-                    "name": "二年级"
-                },
-                {
-                    "code": "f3c5aff6-8294-1be8-e561-0a173667c82c",
-                    "name": "三年级"
-                },
-                {
-                    "code": "165370ba-8a48-b687-2dc1-8018f13a32e5",
-                    "name": "四年级"
-                },
-                {
-                    "code": "96054044-4365-8ede-c9e0-64a5a16dab56",
-                    "name": "五年级"
-                },
-                {
-                    "code": "e1e1f873-da7a-f91d-5900-ba491ee354bb",
-                    "name": "六年级"
-                }
-            ],
-            "subject": [
-                {
-                    "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
-                    "name": "语文"
-                },
-                {
-                    "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
-                    "name": "數學"
-                },
-                {
-                    "code": "43d6fe59-e7e5-132e-2cab-c91cd4ca65ba",
-                    "name": "综合"
-                },
-                {
-                    "code": "5149a37d-7fbb-8923-b943-b3f447ef2651",
-                    "name": "专业"
-                }
-            ],
-            "semester": [
-                {
-                    "name": "上学期",
-                    "SCount": null,
-                    "Month": "3",
-                    "Day": "1"
-                },
-                {
-                    "name": "下学期",
-                    "SCount": null,
-                    "Month": "9",
-                    "Day": "1"
-                }
-            ],
-            "name": "醍摩豆青城山东校区",
-            "code": "29367a40-dd8b-4656-33bd-b003acfb9489",
-            "gradeCount": 6,
-            "semesterCount": 2,
-            "subjectCount": 5
-        },
-        {
-            "grade": [
-                {
-                    "code": "d56d657d-d12a-c5f6-f74a-5892e55ff361",
-                    "name": "一年级"
-                },
-                {
-                    "code": "c63348b4-c17e-37e9-c9d8-ca091db446a3",
-                    "name": "二年级"
-                },
-                {
-                    "code": "f3c5aff6-8294-1be8-e561-0a173667c82c",
-                    "name": "三年级"
-                },
-                {
-                    "code": "165370ba-8a48-b687-2dc1-8018f13a32e5",
-                    "name": "四年级"
-                }
-            ],
-            "subject": [
-                {
-                    "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
-                    "name": "语文"
-                },
-                {
-                    "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
-                    "name": "數學"
-                },
-                {
-                    "code": "db48e0da-8956-0da4-2ddb-24457545fa71",
-                    "name": "英語"
-                },
-                {
-                    "code": "43d6fe59-e7e5-132e-2cab-c91cd4ca65ba",
-                    "name": "综合"
-                },
-                {
-                    "code": "5149a37d-7fbb-8923-b943-b3f447ef2651",
-                    "name": "专业"
-                }
-            ],
-            "semester": [
-                {
-                    "name": "上学期",
-                    "SCount": null,
-                    "Month": "3",
-                    "Day": "1"
-                },
-                {
-                    "name": "下学期",
-                    "SCount": null,
-                    "Month": "9",
-                    "Day": "1"
-                }
-            ],
-            "name": "醍摩豆青城山西校区",
-            "code": "29367a40-dd8b-4656-33bd-b003acfb9489",
-            "gradeCount": 6,
-            "semesterCount": 2,
-            "subjectCount": 5
-        },
-        {
-            "grade": [
-                {
-                    "code": "d56d657d-d12a-c5f6-f74a-5892e55ff361",
-                    "name": "一年级"
-                },
-                {
-                    "code": "c63348b4-c17e-37e9-c9d8-ca091db446a3",
-                    "name": "二年级"
-                },
-                {
-                    "code": "f3c5aff6-8294-1be8-e561-0a173667c82c",
-                    "name": "三年级"
-                },
-                {
-                    "code": "165370ba-8a48-b687-2dc1-8018f13a32e5",
-                    "name": "四年级"
-                }
-            ],
-            "subject": [
-                {
-                    "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
-                    "name": "语文"
-                },
-                {
-                    "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
-                    "name": "數學"
-                },
-                {
-                    "code": "db48e0da-8956-0da4-2ddb-24457545fa71",
-                    "name": "英語"
-                },
-                {
-                    "code": "43d6fe59-e7e5-132e-2cab-c91cd4ca65ba",
-                    "name": "综合"
-                },
-                {
-                    "code": "5149a37d-7fbb-8923-b943-b3f447ef2651",
-                    "name": "专业"
-                }
-            ],
-            "semester": [
-                {
-                    "name": "上学期",
-                    "SCount": null,
-                    "Month": "3",
-                    "Day": "1"
-                },
-                {
-                    "name": "下学期",
-                    "SCount": null,
-                    "Month": "9",
-                    "Day": "1"
-                }
-            ],
-            "name": "醍摩豆青城山南校区",
-            "code": "29367a40-dd8b-4656-33bd-b003acfb9489",
-            "gradeCount": 6,
-            "semesterCount": 2,
-            "subjectCount": 5
-        },
-        {
-            "grade": [
-                {
-                    "code": "d56d657d-d12a-c5f6-f74a-5892e55ff361",
-                    "name": "一年级"
-                },
-                {
-                    "code": "c63348b4-c17e-37e9-c9d8-ca091db446a3",
-                    "name": "二年级"
-                },
-                {
-                    "code": "f3c5aff6-8294-1be8-e561-0a173667c82c",
-                    "name": "三年级"
-                }
+  "id": "dec2fd23-ecbd-43db-bb3f-ce08c7e7110d",
+  "schoolcode": "HBCN",
+  "name": "醍摩豆书院",
+  "period": [
+    {
+      "grade": [
+        {
+          "code": "d56d657d-d12a-c5f6-f74a-5892e55ff361",
+          "name": "一年级"
+        },
+        {
+          "code": "c63348b4-c17e-37e9-c9d8-ca091db446a3",
+          "name": "二年级"
+        },
+        {
+          "code": "f3c5aff6-8294-1be8-e561-0a173667c82c",
+          "name": "三年级"
+        },
+        {
+          "code": "165370ba-8a48-b687-2dc1-8018f13a32e5",
+          "name": "四年级"
+        },
+        {
+          "code": "96054044-4365-8ede-c9e0-64a5a16dab56",
+          "name": "五年级"
+        },
+        {
+          "code": "e1e1f873-da7a-f91d-5900-ba491ee354bb",
+          "name": "六年级"
+        }
+      ],
+      "subject": [
+        {
+          "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
+          "name": "语文"
+        },
+        {
+          "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
+          "name": "數學"
+        },
+        {
+          "code": "43d6fe59-e7e5-132e-2cab-c91cd4ca65ba",
+          "name": "综合"
+        },
+        {
+          "code": "5149a37d-7fbb-8923-b943-b3f447ef2651",
+          "name": "专业"
+        },
+        {
+          "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
+          "name": "语文"
+        },
+        {
+          "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
+          "name": "數學"
+        },
+        {
+          "code": "43d6fe59-e7e5-132e-2cab-c91cd4ca65ba",
+          "name": "综合"
+        },
+        {
+          "code": "5149a37d-7fbb-8923-b943-b3f447ef2651",
+          "name": "专业"
+        },
+        {
+          "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
+          "name": "语文"
+        },
+        {
+          "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
+          "name": "數學"
+        },
+        {
+          "code": "43d6fe59-e7e5-132e-2cab-c91cd4ca65ba",
+          "name": "综合"
+        },
+        {
+          "code": "5149a37d-7fbb-8923-b943-b3f447ef2651",
+          "name": "专业"
+        }
+      ],
+      "semester": [
+        {
+          "name": "上学期",
+          "SCount": null,
+          "Month": "3",
+          "Day": "1"
+        },
+        {
+          "name": "下学期",
+          "SCount": null,
+          "Month": "9",
+          "Day": "1"
+        }
+      ],
+      "name": "醍摩豆青城山东校区",
+      "code": "29367a40-dd8b-4656-33bd-b003acfb9489",
+      "gradeCount": 6,
+      "semesterCount": 2,
+      "subjectCount": 5
+    },
+    {
+      "grade": [
+        {
+          "code": "d56d657d-d12a-c5f6-f74a-5892e55ff361",
+          "name": "一年级"
+        },
+        {
+          "code": "c63348b4-c17e-37e9-c9d8-ca091db446a3",
+          "name": "二年级"
+        },
+        {
+          "code": "f3c5aff6-8294-1be8-e561-0a173667c82c",
+          "name": "三年级"
+        },
+        {
+          "code": "165370ba-8a48-b687-2dc1-8018f13a32e5",
+          "name": "四年级"
+        }
+      ],
+      "subject": [
+        {
+          "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
+          "name": "语文"
+        },
+        {
+          "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
+          "name": "數學"
+        },
+        {
+          "code": "db48e0da-8956-0da4-2ddb-24457545fa71",
+          "name": "英語"
+        },
+        {
+          "code": "43d6fe59-e7e5-132e-2cab-c91cd4ca65ba",
+          "name": "综合"
+        },
+        {
+          "code": "5149a37d-7fbb-8923-b943-b3f447ef2651",
+          "name": "专业"
+        }
+      ],
+      "semester": [
+        {
+          "name": "上学期",
+          "SCount": null,
+          "Month": "3",
+          "Day": "1"
+        },
+        {
+          "name": "下学期",
+          "SCount": null,
+          "Month": "9",
+          "Day": "1"
+        }
+      ],
+      "name": "醍摩豆青城山西校区",
+      "code": "29367a40-dd8b-4656-33bd-b003acfb9489",
+      "gradeCount": 6,
+      "semesterCount": 2,
+      "subjectCount": 5
+    },
+    {
+      "grade": [
+        {
+          "code": "d56d657d-d12a-c5f6-f74a-5892e55ff361",
+          "name": "一年级"
+        },
+        {
+          "code": "c63348b4-c17e-37e9-c9d8-ca091db446a3",
+          "name": "二年级"
+        },
+        {
+          "code": "f3c5aff6-8294-1be8-e561-0a173667c82c",
+          "name": "三年级"
+        },
+        {
+          "code": "165370ba-8a48-b687-2dc1-8018f13a32e5",
+          "name": "四年级"
+        }
+      ],
+      "subject": [
+        {
+          "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
+          "name": "语文"
+        },
+        {
+          "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
+          "name": "數學"
+        },
+        {
+          "code": "db48e0da-8956-0da4-2ddb-24457545fa71",
+          "name": "英語"
+        },
+        {
+          "code": "43d6fe59-e7e5-132e-2cab-c91cd4ca65ba",
+          "name": "综合"
+        },
+        {
+          "code": "5149a37d-7fbb-8923-b943-b3f447ef2651",
+          "name": "专业"
+        }
+      ],
+      "semester": [
+        {
+          "name": "上学期",
+          "SCount": null,
+          "Month": "3",
+          "Day": "1"
+        },
+        {
+          "name": "下学期",
+          "SCount": null,
+          "Month": "9",
+          "Day": "1"
+        }
+      ],
+      "name": "醍摩豆青城山南校区",
+      "code": "29367a40-dd8b-4656-33bd-b003acfb9489",
+      "gradeCount": 6,
+      "semesterCount": 2,
+      "subjectCount": 5
+    },
+    {
+      "grade": [
+        {
+          "code": "d56d657d-d12a-c5f6-f74a-5892e55ff361",
+          "name": "一年级"
+        },
+        {
+          "code": "c63348b4-c17e-37e9-c9d8-ca091db446a3",
+          "name": "二年级"
+        },
+        {
+          "code": "f3c5aff6-8294-1be8-e561-0a173667c82c",
+          "name": "三年级"
+        }
 
-            ],
-            "subject": [
-                {
-                    "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
-                    "name": "语文"
-                },
-                {
-                    "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
-                    "name": "數學"
-                },
-                {
-                    "code": "db48e0da-8956-0da4-2ddb-24457545fa71",
-                    "name": "英語"
-                }
-            ],
-            "semester": [
-                {
-                    "name": "上学期",
-                    "SCount": null,
-                    "Month": "3",
-                    "Day": "1"
-                },
-                {
-                    "name": "下学期",
-                    "SCount": null,
-                    "Month": "9",
-                    "Day": "1"
-                }
-            ],
-            "name": "醍摩豆青城山北校区",
-            "code": "29367a40-dd8b-4656-33bd-b003acfb9489",
-            "gradeCount": 6,
-            "semesterCount": 2,
-            "subjectCount": 5
+      ],
+      "subject": [
+        {
+          "code": "d9e2fafd-49d0-5bd7-5a1d-9acf50db1858",
+          "name": "语文"
+        },
+        {
+          "code": "c5d5e2b4-d8d0-907a-5259-5d358a0e2582",
+          "name": "數學"
+        },
+        {
+          "code": "db48e0da-8956-0da4-2ddb-24457545fa71",
+          "name": "英語"
+        }
+      ],
+      "semester": [
+        {
+          "name": "上学期",
+          "SCount": null,
+          "Month": "3",
+          "Day": "1"
+        },
+        {
+          "name": "下学期",
+          "SCount": null,
+          "Month": "9",
+          "Day": "1"
         }
-    ]
+      ],
+      "name": "醍摩豆青城山北校区",
+      "code": "29367a40-dd8b-4656-33bd-b003acfb9489",
+      "gradeCount": 6,
+      "semesterCount": 2,
+      "subjectCount": 5
+    }
+  ]
 }