Browse Source

1. TMID用戶查詢 -> 空間與權益 (前端)
‒ 追加蘇格拉底語音轉寫、協作、AI GPT服務 顯示項目
‒ HiTeach 附加功能 顯示邏輯變更:無起始及終止日期者不顯示
2. 產品分析 -> 各校儀表 -> 多型態課堂 (前端)
‒ 追加 協作、互評 顯示項目

jeff 1 year ago
parent
commit
067e62f39b

+ 5 - 3
TEAMModelBI/ClientApp/src/view/product/details.vue

@@ -717,6 +717,8 @@ let classType = ref([
   { name: '任务型态课堂', value: 20, percent: '10%', class: 'topic', textClass: 'topic-text' },
   { name: '差异化形态课堂', value: 20, percent: '5%', class: 'interaction', textClass: 'interaction-text' },
   { name: '测验型态课堂', value: 30, percent: '15%', class: 'testclass', textClass: 'testclass-text' },
+  { name: '协作型态课堂', value: 30, percent: '15%', class: 'testclass', textClass: 'testclass-text' },
+  { name: '互评型态课堂', value: 30, percent: '15%', class: 'testclass', textClass: 'testclass-text' },
   { name: '无型态课堂', value: 0, percent: '0%', class: 'noneclass', textClass: 'noneclassclass-text' },
   { name: '未上课', value: 0, percent: '0%', class: 'noneclass', textClass: 'noneclassclass-text' },
 ])
@@ -769,7 +771,7 @@ let echartData = ref({
         }
       },
       boundaryGap: true, // 坐标轴两边是否留白
-      data: ['合作型态', '互动型态', '任务型态', '差异化型态', '测验型态', '无型态', '未上课']
+      data: ['合作型态', '互动型态', '任务型态', '差异化型态', '测验型态', '协作', '互评', '无型态', '未上课']
     },
     yAxis: [
       {
@@ -1007,7 +1009,7 @@ function init (againvalue) {
   inuseList.value[3].value = proxy.$common.numberToTextWithUnit(interact)
 
   //处理多形态课堂
-  let { lTypeCoop, lTypeIact, lTypeMis, lTypeTst, lTypeDif, lTypeNone,lessonLeng0} = propsbox.detailsData
+  let { lTypeCoop, lTypeIact, lTypeMis, lTypeTst, lTypeDif, lTypeNone,lessonLeng0,learnCoop,learnPeer} = propsbox.detailsData
   let totalNum = [lTypeCoop, lTypeIact, lTypeMis, lTypeTst, lTypeDif].reduce((prev, cur) => { return prev + cur }, 0)
   echartData.value.total = totalNum
   console.log(totalNum)
@@ -1025,7 +1027,7 @@ function init (againvalue) {
   classType.value[5].value = lessonLeng0 ? lessonLeng0:0
 
   //echarts占比
-  echartData.value.xlines.series[0].data = [lTypeCoop, lTypeIact, lTypeMis, lTypeTst, lTypeDif, lTypeNone, classType.value[5].value]
+  echartData.value.xlines.series[0].data = [lTypeCoop, lTypeIact, lTypeMis, lTypeTst, lTypeDif, learnCoop, learnPeer, lTypeNone, classType.value[5].value]
   // echartData.value.xlines.series[1].data = [classType.value[1].percent]
   // echartData.value.xlines.series[2].data = [classType.value[2].percent]
   // echartData.value.xlines.series[3].data = [classType.value[3].percent]

+ 15 - 3
TEAMModelBI/ClientApp/src/view/userInquire/details.vue

@@ -269,7 +269,7 @@
                                         <p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
                                             <div v-if="subjoinData.hiteach.length >0">
                                                 <div class="subjoin-content" v-for="item in subjoinData.hiteach" :key="item.key">
-                                                <div>
+                                                <div v-if="item.exps > 0 && item.gets > 0">
                                                     <span>{{item.title}}</span>
                                                     <span class="ccnums" v-show="item.key==='webirs'">{{item.value}}</span>
                                                     <span class="endtimes" v-if="item.exps >= notTime">(到期日:{{item.end}})</span>
@@ -729,6 +729,9 @@ let powerExtension=ref([
     {title:'議課人數',key:'soknumber',value:0,state:false},
     {title:'智慧評分系統',key:'scorsys',state:false},
     {title:'IRS硬體遙控器',key:'irs',state:true},
+    {title:'蘇格拉底語音轉寫',key:'sokvtt',state:false},
+    {title:'協作',key:'cowork',state:false},
+    {title:'AI GPT服務',key:'aigpt',state:false},
 ])
 let subjoinData=ref({
     hiteachTitle:'HiTeach 附加功能',
@@ -737,7 +740,10 @@ let subjoinData=ref({
         {title:'AI苏格拉底小数据',key:'soklite',start:0,end:0,value:0,gets:0,exps:0},
         {title:'智慧评分',key:'smartrating',start:0,end:0,value:0,gets:0,exps:0},
         {title:'clouDAS诊断分析',key:'cloudas',start:0,end:0,value:0,gets:0,exps:0},
-        {title:'Web IRS连线数',key:'webirs',start:0,end:0,value:0,gets:0,exps:0}
+        {title:'Web IRS连线数',key:'webirs',start:0,end:0,value:0,gets:0,exps:0},
+        {title:'蘇格拉底語音轉寫',key:'sokvtt',start:0,end:0,value:0,gets:0,exps:0},
+        {title:'協作',key:'cowork',start:0,end:0,value:0,gets:0,exps:0},
+        {title:'AI GPT服務',key:'aigpt',start:0,end:0,value:0,gets:0,exps:0},
     ],
     hiteachCCTitle:'HiTeach CC 权限',
     hiteachCC:[
@@ -916,6 +922,9 @@ function initdata() {
             apruleItem.soknumber !==0 ? (powerExtension.value[12].state=true,powerExtension.value[12].value=apruleItem.soknumber):powerExtension.value[12].state=false //議課人數
             apruleItem.scorsys ? (powerExtension.value[13].state=true,powerExtension.value[13].value=apruleItem.soknumber):powerExtension.value[13].state=false //智慧評分系統
             apruleItem.hasOwnProperty('irs') ? powerExtension.value[14].state=false:powerExtension.value[14].state=true  //IRS硬體遙控器
+            apruleItem.sokvtt ? powerExtension.value[15].state = true : powerExtension.value[15].state = false //蘇格拉底語音轉寫
+            apruleItem.cowork ? powerExtension.value[16].state = true : powerExtension.value[16].state = false //協作
+            apruleItem.aigpt ? powerExtension.value[17].state = true : powerExtension.value[17].state = false //AI GPT服務
             item.apruleArr=powerExtension.value
         }
         //处理时间
@@ -932,7 +941,10 @@ function initdata() {
     console.log(powerList.value,'权益内容')
     //处理权益内 附加功能(HITeach附加 CC权限)
     let hiteachData=benefits.hiteach !==null ?benefits.hiteach:[] ; let ccData=benefits.hiteachcc !==null  ?benefits.hiteachcc:[]
-    console.log(hiteachData,ccData)
+    console.log(hiteachData, ccData)
+    subjoinData.value.hiteach.forEach((items) => {
+        items.start = 0, items.end = 0, items.value = 0, items.gets = 0, items.exps = 0
+    })
     if(hiteachData.length >0){
         hiteachData.forEach((item)=>{
             let funcKey=item.func;let startTime=proxy.$common.timestampToTime(item.get);let endTime=proxy.$common.timestampToTime(item.exp)

+ 3 - 1
TEAMModelBI/Controllers/BITmid/TmidController.cs

@@ -1026,7 +1026,7 @@ namespace TEAMModelBI.Controllers.BITmid
                     geoRow.tmids = geoRow.tmids.Union(schRow.tmids).ToList();
                 }
             }
-            //IOT
+            //IOT(學校)
             string queryiot = $"SELECT * FROM c WHERE ARRAY_CONTAINS({JsonSerializer.Serialize(schIds)}, c.schoolId, true) AND c.toolType = 'HiTeach' AND c.dateUnit = 'month' AND c.dateTime >= {dateTimeFrom.ToUnixTimeSeconds()} AND c.dateTime <= {dateTimeTo.ToUnixTimeSeconds()}";
             await foreach (ProdAnalysisCosmos item in cosmosClientIes5.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<ProdAnalysisCosmos>(queryText: queryiot, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"ProdAnalysis") }))
             {
@@ -1203,6 +1203,8 @@ namespace TEAMModelBI.Controllers.BITmid
 
             await foreach (TmidAnalysisCosmos tmidAnalysis in cosmosClientIes5.GetContainer(Constant.TEAMModelOS, "Teacher").GetItemQueryIterator<TmidAnalysisCosmos>(strQuery, null, qryOption))
             {
+                //特殊修正
+                tmidAnalysis.lTypeNone = ((tmidAnalysis.lTypeNone - tmidAnalysis.lessonLeng0) < 0) ? 0 : tmidAnalysis.lTypeNone - tmidAnalysis.lessonLeng0; //無學習型態數值須扣除未上課
                 //一般項
                 TmidAnalysisCal tmidAnalysisCalNow = result.Where(t => t.tmid.Equals(tmidAnalysis.tmid)).FirstOrDefault();
                 if(tmidAnalysisCalNow == null)