Bladeren bron

Merge branch 'develop' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop

OnePsycho 2 jaren geleden
bovenliggende
commit
310540d35e

+ 118 - 15
TEAMModelBI/ClientApp/src/view/systemConfig/correlation.vue

@@ -10,9 +10,21 @@
         <div class="userlist-name">{{nowUsers.name}}({{nowUsers.mobile}})</div>
       </div>
     </div>
-    <p class="correlationbox-title">目前用户所关联学校:</p>
+    <div class="school-list-header">
+      <div class="correlationbox-titles">目前用户所关联学校:<span>关联数量:<span class="correlationbox-num">{{nowUsers.handleSchools.length}}</span></span></div>
+      <div class="correlationbox-btn">
+        <el-button type="primary" size="small" v-if="removeBatchschool.length >0 && PowerShow" @click="multipeRemove"> 移除选中学校</el-button>
+        <el-button type="primary" size="small" v-else-if="removeBatchschool.length ===0 && PowerShow" disabled>移除选中学校</el-button>
+      </div>
+    </div>
+    <!-- <p class="correlationbox-title">目前用户所关联学校:</p>
+    <div class="correlationbox-btn">
+      <el-button type="primary" size="small" v-if="multipleSchool.length >0 && PowerShow" @click="multipleCorrelation">关联选中学校</el-button>
+      <el-button type="primary" size="small" v-else-if="multipleSchool.length ===0 && PowerShow" disabled>关联选中学校</el-button>
+    </div> -->
     <div class="possessbox" v-if="nowUsers.handleSchools.length >0">
-      <el-table :data="nowUsers.handleSchools" style="width: 100%" height="20vh" size="small" v-loading="loadingData.possess" element-loading-text="数据加载中...">
+      <el-table :data="nowUsers.handleSchools" style="width: 100%" height="20vh" size="small" @selection-change="removeBatch" v-loading="loadingData.possess" element-loading-text="数据加载中...">
+        <el-table-column type="selection" v-if="PowerShow" />
         <el-table-column label="校徽" align="center">
           <template #default="scope">
             <el-image style="width: 40px; height: 40px;" :src="scope.row.picture" fit="fill" v-if="scope.row.picture"></el-image>
@@ -23,6 +35,16 @@
         <el-table-column prop="id" label="学校简码" align="center" />
         <!-- <el-table-column prop="name" label="版本" />
                 <el-table-column prop="name" label="目前顾问" /> -->
+        <el-table-column align="center">
+          <template #header>
+            <el-select v-model="areaList.value" placeholder="Select" size="small" @change="getAreaschool">
+              <el-option v-for="item in areaList.data" :key="item.value" :label="item.label" :value="item.value" />
+            </el-select>
+          </template>
+          <template #default="scope">
+            <span class="areaitem-name">{{scope.row.areaName}}</span><span class="areaitem-insti">({{scope.row.institution}})</span>
+          </template>
+        </el-table-column>
         <el-table-column fixed="right" label="操作" width='80' align="center" v-if="PowerShow">
           <template #default="scope">
             <el-button type="text" size="small" @click="removeSchool(scope.row,scope.$index)">取消关联</el-button>
@@ -98,6 +120,7 @@ export default {
     let tableData = ref([])
     let nowUsers = ref()
     let multipleSchool = ref([])
+    let removeBatchschool = ref([])
     let schoolSearch = ref('')
     let original = ref([])
     let timer = ref('')
@@ -127,13 +150,16 @@ export default {
         console.log(scrollHeight.value, '值')
       }
     }
-    function getSchoolList (value, state) {
-      console.log(value, '触发下一页')
+    async function getSchoolList (value, state) {
+      console.log(value, nextpageToken.value, '触发下一页')
       if ((nextpageToken.value === null) && state !== 'restart') {
         ElMessage.success('已经到最底了')
         return
       }
       loadingData.value.list = true
+      if (areaList.value.data.length === 1) {
+        await areaData()
+      }
       let data = value ? { contToken: value } : {}
       proxy.$api
         .getSchooldata(data)
@@ -155,9 +181,11 @@ export default {
             console.log(areaList.value.data, '是否有数据')
             for (let y in res.schoolAssists) {
               let areaValue = res.schoolAssists[y].areaId
+              console.log(areaValue, '学区的值')
               res.schoolAssists[y].areaName = ''
               res.schoolAssists[y].institution = ''
               for (let i in areaList.value.data) {
+                console.log(areaList.value.data[i], '循环的值')
                 areaValue === areaList.value.data[i].value ? (res.schoolAssists[y].areaName = areaList.value.data[i].label, res.schoolAssists[y].institution = areaList.value.data[i].situate) : ''
               }
             }
@@ -192,9 +220,9 @@ export default {
           .then((res) => {
             console.log(res, '成功的返回')
             res.state === 200
-              ? (nowUsers.value.handleSchools.push(value), getSchoolList(), processingSchool(), ElMessage.success('操作成功'))
+              ? (nowUsers.value.handleSchools.push(value), getSchoolList('', 'restart'), processingSchool(), ElMessage.success('操作成功'))
               : res.state === 201
-                ? (ElMessage.success('已关联,请勿重复操作'), getSchoolList())
+                ? (ElMessage.success('已关联,请勿重复操作'), getSchoolList('', 'restart'))
                 : ''
           })
           .catch((error) => {
@@ -215,7 +243,7 @@ export default {
         proxy.$api
           .setAistschool(data)
           .then((res) => {
-            res.state === 200 ? (nowUsers.value.handleSchools.splice(index, 1), getSchoolList(), processingSchool(), ElMessage.success('操作成功')) : ''
+            res.state === 200 ? (nowUsers.value.handleSchools.splice(index, 1), getSchoolList('', 'restart'), processingSchool(), ElMessage.success('操作成功')) : ''
           })
           .catch((error) => {
             ElMessage.error('取消关联失败,API异常')
@@ -226,6 +254,9 @@ export default {
       multipleSchool.value = value
       console.log(multipleSchool.value, '111')
     }
+    function removeBatch (value) {
+      removeBatchschool.value = value
+    }
     function multipleCorrelation () {
       let schoolData = multipleSchool.value
       let schoolName = ''
@@ -255,7 +286,7 @@ export default {
           .then((res) => {
             console.log(res, '成功的返回')
             res.state === 200
-              ? ((nowUsers.value.handleSchools = nowUsers.value.handleSchools.concat(schoolData)), getSchoolList(), processingSchool(), ElMessage.success('操作成功'))
+              ? ((nowUsers.value.handleSchools = nowUsers.value.handleSchools.concat(schoolData)), getSchoolList('', 'restart'), processingSchool())
               : res.state === 201
                 ? (ElMessage.success('已关联,请勿重复操作'), getSchoolList())
                 : ''
@@ -265,6 +296,54 @@ export default {
           })
       })
     }
+    function multipeRemove () {
+      let schoolData = removeBatchschool.value
+      let schoolName = ''
+      console.log(schoolData, '学校信息')
+      if (schoolData.length < 5) {
+        schoolData.forEach((item) => {
+          schoolName = schoolName ? schoolName + ',' + item.name : item.name
+        })
+      } else {
+        for (let i = 0; i < 5; i++) {
+          schoolName = schoolName ? schoolName + ',' + schoolData[i].name : schoolData[i].name
+        }
+        schoolName = schoolName + '等...'
+      }
+      ElMessageBox.confirm(`请问您确定将 ${schoolName} 移除学校管理,取消数据关联吗 ?`, '取消关联学校', {
+        confirmButtonText: proxy.$t(`commonMsg.confirm`),
+        cancelButtonText: proxy.$t(`commonMsg.closes`),
+        type: 'success',
+        center: true,
+      }).then(() => {
+        let schoolArr = []
+        for (let s of schoolData) {
+          s.id ? schoolArr.push(s.id) : ''
+        }
+        let data = { partitionKey: nowUsers.value.partitionKey, userId: nowUsers.value.userId, tmdId: nowUsers.value.tmdId, schoolIds: schoolArr, busy: 'del' }
+        proxy.$api
+          .setAistschool(data)
+          .then((res) => {
+            if (res.state === 200) {
+              console.log(schoolData, '内容')
+              schoolData.forEach((item, index) => {
+                let iteId = item.id
+                console.log(iteId, 'ID值')
+                for (let e in nowUsers.value.handleSchools) {
+                  console.log(nowUsers.value.handleSchools, '值')
+                  iteId === nowUsers.value.handleSchools[e].id ? nowUsers.value.handleSchools.splice(e, 1) : ''
+                }
+              })
+              getSchoolList('', 'restart')
+              processingSchool()
+              ElMessage.success('操作成功')
+            }
+          })
+          .catch((error) => {
+            ElMessage.error('取消关联失败,API异常')
+          })
+      })
+    }
     function processingSchool (state) {
       console.log(tableData.value, original.value, '原始数据和变更数据')
       state ? tableData.value = original.value : ''
@@ -308,8 +387,8 @@ export default {
       })
     }
     //加载所有学区信息
-    function areaData () {
-      proxy.$api.getCapacity({}).then((res) => {
+    async function areaData () {
+      await proxy.$api.getCapacity({}).then((res) => {
         console.log(res, '学区信息')
         res.state === 200 ? res.areas.forEach((item) => { areaList.value.data.push({ value: item.id, label: item.name, situate: item.institution }) }) : ''
       }).catch((error) => {
@@ -339,6 +418,7 @@ export default {
               }
             }
             tableData.value = res.joinAreaSchools
+            processingSchool()
             nextpageToken.value = null
           }
           loadingData.value.list = false
@@ -348,6 +428,25 @@ export default {
         })
       }
     }
+    //处理显示目前关联的
+    async function nowRelevance (value) {
+      nowUsers.value = JSON.parse(JSON.stringify(value))
+      if (areaList.value.data.length === 1) {
+        await areaData()
+      }
+      getSchoolList()
+      let nowUserdata = nowUsers.value
+      nowUserdata.handleSchools.forEach((item) => {
+        let areaIds = item.areaId
+        item.areaName = ''; item.institution = ''
+        for (let i of areaList.value.data) {
+          console.log(i, '值123')
+          i.value === areaIds ? (item.areaName = i.label, item.institution = i.situate) : ''
+        }
+      })
+      nowUsers.value.handleSchools = nowUserdata.handleSchools
+      loadingData.value.possess = false
+    }
     watch(scrollHeight, (newdata, olddata) => {
       console.log(newdata, olddata, '监听的数据')
       if (newdata < olddata) {
@@ -357,7 +456,7 @@ export default {
     watch(
       props,
       (newuser) => {
-        newuser ? (nowUsers.value = newuser.userdata, loadingData.value.possess = false, processingSchool(true)) : ''
+        newuser ? (nowRelevance(newuser.userdata), processingSchool(true)) : ''
         console.log(nowUsers.value, '触发监听')
       },
       { immediate: true, deep: true }
@@ -369,8 +468,7 @@ export default {
         tableData.value = original.value
       }
     })
-    getSchoolList()
-    areaData()
+    // areaData()
     return {
       tableData,
       tableDatas,
@@ -390,7 +488,11 @@ export default {
       areaData,
       loadingData,
       areaList,
-      getAreaschool
+      getAreaschool,
+      removeBatchschool,
+      multipeRemove,
+      removeBatch,
+      nowRelevance
     }
   },
 }
@@ -479,7 +581,8 @@ export default {
   color: #ecf0f1;
   margin: 0 auto;
 }
-.areaitem-name {
+.areaitem-name,
+.correlationbox-num {
   color: #409eff;
 }
 .areaitem-insti {

+ 3 - 0
TEAMModelOS.SDK/Models/Cosmos/Common/LessonRecord.cs

@@ -359,6 +359,9 @@ namespace TEAMModelOS.SDK.Models
         /// 学生互动率
         /// </summary>
         public double clientInteractionAverge { get; set; } = 0;
+        /// <summary>
+        /// 测验次数
+        /// </summary>
         public int examCount { get; set; }
         public LearningCategory learningCategory { get; set; }
     }

+ 0 - 74
TEAMModelOS.SDK/Models/Cosmos/Student/FiveEducate.cs

@@ -1,74 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace TEAMModelOS.SDK.Models.Cosmos.Student
-{
-    /// <summary>
-    /// 五育数据看板结构
-    /// </summary>
-    public class FiveEducate : CosmosEntity
-    {
-        public string semesterName { get; set; }
-        public int year { get; set; }
-        public string semesterId { get; set; }
-        public string schoolCode { get; set; }
-        public string studentId { get; set; }
-        public string name { get; set; }
-        public List<string> classId { get; set; } = new List<string>();
-        public string periodId { get; set; }
-        public int grade { get; set; }
-        List<SemesterData> sports { get; set; }
-    }
-
-
-    /// <summary>
-    /// 保存学生画像  第三方传入的学校
-    /// </summary>
-    public class Portrait
-    {
-        public string schoolCode { get; set; } //学校编码
-        public string studentId { get; set; }//学生编号
-        public string name { get; set; }//学生姓名
-        public string classId { get; set; }//行政班id
-        public string periodId { get; set; }//学段id
-        public string subjectId { get; set; }//体育科目id
-        public List<SemesterData> semesterData { get; set; }//学期数据
-    }
-
-    /// <summary>
-    /// 学期数据
-    /// </summary>
-    public class SemesterData
-    {
-        public string examName { get; set; } //评测名称
-        public string examId { get; set; }//用于数据新增或更新
-
-        public long examDate { get; set; } //评测时间,13位时间戳
-        public string examType { get; set; }  //评测类型 期末,期中,季考,月考,周考,测验,练习,作业,课中
-
-        public int year { get; set; }//所属学年,学年跨年,按上一年。
-
-        public int semester { get; set; }//学期,与semesterId选填其一
-
-        public string semesterId { get; set; }//学期id 
-        public double sumScore { get; set; }//总成绩
-
-        public double excellenceRate { get; set; }//优秀率
-
-        public double passRate { get; set; }//及格率
-        public List<ItemScore> itemScore { get; set; } //考核项目数据
-
-    }
-
-    /// <summary>
-    /// 考核项目数据
-    /// </summary>
-    public class ItemScore
-    {
-        public string name { get; set; }//项目名称
-        public double score { get; set; }//项目分数
-    }
-}

+ 209 - 0
TEAMModelOS.SDK/Models/Cosmos/Student/OverallEducation.cs

@@ -0,0 +1,209 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace TEAMModelOS.SDK.Models.Cosmos.Student
+{
+    /// <summary>
+    /// 德智体美劳全面
+    /// </summary>
+    public class OverallEducation : CosmosEntity
+    {
+        // id="2021-semesterId"
+        /// <summary>
+        /// 
+        /// </summary>
+        public string semesterName { get; set; }
+        /// <summary>
+        /// 所属学年,学年跨年,按上一年。 2021学年包含 2021年和2022年,且2022年上半年的学期也属于2021
+        /// </summary>
+        public int year { get; set; }
+        /// <summary>
+        /// 学期id
+        /// </summary>
+        public string semesterId { get; set; }
+        /// <summary>
+        /// 学校编码
+        /// </summary>
+        public string schoolCode { get; set; }
+        /// <summary>
+        /// 学生id
+        /// </summary>
+        public string studentId { get; set; }
+        /// <summary>
+        /// 学生姓名
+        /// </summary>
+        public string name { get; set; }
+        /// <summary>
+        /// 所属行政班
+        /// </summary>
+        public string  classId { get; set; } 
+        /// <summary>
+        /// 学段
+        /// </summary>
+        public string periodId { get; set; }
+        /// <summary>
+        /// 年级
+        /// </summary>
+        public int grade { get; set; }
+        /// <summary>
+        /// 德育
+        /// </summary>
+        public List<EducationScore> virtue { get; set; } = new List<EducationScore>();
+        /// <summary>
+        /// 智育
+        /// </summary>
+        public List<EducationScore> intelligence { get; set; } = new List<EducationScore>();
+        /// <summary>
+        /// 体育
+        /// </summary>
+        public List<EducationScore> sports { get; set; } = new List<EducationScore>();
+        /// <summary>
+        /// 艺术
+        /// </summary>
+        public List<EducationScore> art { get; set; } = new List<EducationScore>();
+        /// <summary>
+        /// 劳动
+        /// </summary>
+        public List<EducationScore> labour { get; set; } = new List<EducationScore>();
+
+    }
+    public class EducationScore {
+        /// <summary>
+        /// //评测名称
+        /// </summary>
+        public string examName { get; set; } 
+        /// <summary>
+        /// //用于数据新增或更新
+        /// </summary>
+        public string examId { get; set; }
+        /// <summary>
+        /// //评测时间,13位时间戳
+        /// </summary>
+        public long examDate { get; set; } 
+        /// <summary>
+        ///  //评测类型 期末,期中,季考,月考,周考,测验,练习,作业,课中
+        /// </summary>
+        public string examType { get; set; }
+        /// <summary>
+        /// 满分
+        /// </summary>
+        public double full { get; set; } = 100;
+        /// <summary>
+        /// 总分得分率
+        /// </summary>
+        public double rate { get; set; }
+        /// <summary>
+        /// 总分等级
+        /// </summary>
+        public double level { get; set; }
+        /// <summary>
+        /// //总成绩
+        /// </summary>
+        public double sumScore { get; set; }
+        /// <summary>
+        /// 细项优秀率
+        /// </summary>
+        public double excellenceRate { get; set; }
+        /// <summary>
+        /// 细项及格率
+        /// </summary>
+        public double passRate { get; set; }
+        /// <summary>
+        /// 考核项目数据
+        /// </summary>
+        public List<ItemScore> itemScore { get; set; } = new List<ItemScore>();
+    }
+
+    /// <summary>
+    /// 考核项目数据
+    /// </summary>
+    public class ItemScore
+    {
+        /// <summary>
+        /// 项目名称
+        /// </summary>
+        public string name { get; set; }//项目名称
+        /// <summary>
+        /// 项目分数
+        /// </summary>
+        public double score { get; set; }//
+        /// <summary>
+        /// 评分等级
+        /// </summary>
+        public double level { get; set; }
+        /// <summary>
+        /// 细项考核时间
+        /// </summary>
+        public long time { get; set; }
+    }
+
+
+    /// <summary>
+    /// 保存学生画像  第三方传入的学校
+    /// </summary>
+    public class Portrait
+    {
+        public string schoolCode { get; set; } //学校编码
+        public string studentId { get; set; }//学生编号
+        public string name { get; set; }//学生姓名
+        public string classId { get; set; }//行政班id
+        public string periodId { get; set; }//学段id
+        public string subjectId { get; set; }//体育科目id
+        public List<SemesterData> semesterData { get; set; }//学期数据
+    }
+
+    /// <summary>
+    /// 学期数据
+    /// </summary>
+    public class SemesterData
+    {
+        /// <summary>
+        /// //评测名称
+        /// </summary>
+        public string examName { get; set; } 
+        /// <summary>
+        /// //用于数据新增或更新
+        /// </summary>
+        public string examId { get; set; }
+        /// <summary>
+        ///  //评测时间,13位时间戳
+        /// </summary>
+        public long examDate { get; set; }
+        /// <summary>
+        ///  //评测类型 期末,期中,季考,月考,周考,测验,练习,作业,课中
+        /// </summary>
+        public string examType { get; set; } 
+        /// <summary>
+        /// //所属学年,学年跨年,按上一年。
+        /// </summary>
+        public int year { get; set; }
+        /// <summary>
+        /// 学期,与semesterId选填其一
+        /// </summary>
+        public int semester { get; set; }
+        /// <summary>
+        /// //学期id 
+        /// </summary>
+        public string semesterId { get; set; }
+        /// <summary>
+        /// //总成绩
+        /// </summary>
+        public double sumScore { get; set; }
+        /// <summary>
+        /// //优秀率
+        /// </summary>
+        public double excellenceRate { get; set; }
+        /// <summary>
+        /// //及格率
+        /// </summary>
+
+        public double passRate { get; set; }
+        /// <summary>
+        /// //考核项目数据
+        /// </summary>
+        public List<ItemScore> itemScore { get; set; } 
+    }
+}

+ 0 - 3
TEAMModelOS/Controllers/School/ArtReviewController.cs

@@ -152,9 +152,6 @@ namespace TEAMModelOS.Controllers
             List<ArtStudentPdf> studentPdfs = new List<ArtStudentPdf>();
             artResults.ForEach(x =>
             {
-                if (x.studentId.Equals("202107001")) {
-                    Console.WriteLine(11);
-                }
                 var allSubject = x.results.GroupBy(g => g.quotaId).Select(s => new { key = s.Key, list = s.ToList() }).ToList();
                 var groupSubject = x.results.GroupBy(g => $"{g.quotaId}-{g.subjectId}").Select(s => new { key = s.Key, list = s.ToList() }).ToList();
                 //综合-所有科目的艺术评测指标维度。