Преглед изворни кода

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

Li пре 2 година
родитељ
комит
cdc62ab371

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/Common/ArtEvaluation.cs

@@ -66,6 +66,7 @@ namespace TEAMModelOS.SDK.Models.Cosmos.Common
         public int? publish { get; set; } = 0;
         public int? publish { get; set; } = 0;
         public List<ArtSubject> subjects { get; set; } = new List<ArtSubject>();
         public List<ArtSubject> subjects { get; set; } = new List<ArtSubject>();
         public PeriodSimple period { get; set; }
         public PeriodSimple period { get; set; }
+        public string periodType { get; set; }
     }
     }
     public class Tasks {
     public class Tasks {
         public string id { get; set; }
         public string id { get; set; }

+ 63 - 63
TEAMModelOS/ClientApp/public/lang/en-US.js

@@ -1110,7 +1110,7 @@ const LANG_EN_US = {
         classStuErr: 'Failure to obtain class list',
         classStuErr: 'Failure to obtain class list',
         unGroup: 'Ungrouped student',
         unGroup: 'Ungrouped student',
         setGroupName: 'Please set the group name',
         setGroupName: 'Please set the group name',
-        filterExpList:'Expiry List',
+        filterExpList: 'Expiry List',
 
 
         //NewCusMgt.vue
         //NewCusMgt.vue
         schdTable: 'Schedule Mode',
         schdTable: 'Schedule Mode',
@@ -3564,23 +3564,23 @@ const LANG_EN_US = {
         addSubjectType2: 'Select an existing subject',
         addSubjectType2: 'Select an existing subject',
         addSubjectType3: 'Existing subject',
         addSubjectType3: 'Existing subject',
         addSubjectType4: 'Please select the subject to be added',
         addSubjectType4: 'Please select the subject to be added',
-        pdtyp1:'Pre-school',
-        pdtyp2:'Primary School',
-        pdtyp3:'Junior High School',
-        pdtyp4:'High School',
-        pdtyp5:'Vocational High School',
-        pdtyp6:'College',
-        pdtyp7:'University',
-        pdtyp8:'Special Education',
-        pdtyp9:'Education Department',
-        pdtyp10:'电教部门',
-        pdtyp11:'成人中专',
-        pdtyp12:'成人高教',
-        pdtyp13:'碩士研究生',
-        pdtyp14:'博士研究生',
-        pdtyp15:'企業',
-        pdtyp16:'设置学段类型',
-        pdtyp17:'学段类型',
+        pdtyp1: 'Pre-school',
+        pdtyp2: 'Primary School',
+        pdtyp3: 'Junior High School',
+        pdtyp4: 'High School',
+        pdtyp5: 'Vocational High School',
+        pdtyp6: 'College',
+        pdtyp7: 'University',
+        pdtyp8: 'Special Education',
+        pdtyp9: 'Education Department',
+        pdfyp10: 'ICT Education Department',
+        pdtyp11: 'Community College',
+        pdfyp12: 'Community University',
+        pdfyp13: 'Master Program',
+        pdfyp14: 'PhD Program',
+        pdfyp15: 'Enterprise',
+        pdfyp16: 'Set the type of segment',
+        pdtyp17: 'School segment type',
 
 
         // ClassroomSetting.vue
         // ClassroomSetting.vue
         classroomList: 'Classroom List',
         classroomList: 'Classroom List',
@@ -3701,7 +3701,7 @@ const LANG_EN_US = {
         irsRep: 'Duplicate IRS number',
         irsRep: 'Duplicate IRS number',
         noRep: 'Duplicate seat number',
         noRep: 'Duplicate seat number',
         getTeachersErr: 'Failed to get teacher list',
         getTeachersErr: 'Failed to get teacher list',
-        gdFreeze:'Classes that have graduated cannot be deleted or modified',
+        gdFreeze: 'Classes that have graduated cannot be deleted or modified',
 
 
         //ClassMgt.vue
         //ClassMgt.vue
         className: 'Name',
         className: 'Name',
@@ -5464,8 +5464,8 @@ const LANG_EN_US = {
             trainCheck: 'Study Evaluation',
             trainCheck: 'Study Evaluation',
             activity: 'Activity Platform',
             activity: 'Activity Platform',
             trainSystem: 'Research Platform',
             trainSystem: 'Research Platform',
-            artExam:'Evaluation activity',
-            artExam1:'Evaluation and assessment',
+            artExam: 'Evaluation activity',
+            artExam1: 'Evaluation and assessment',
         },
         },
         compt: {
         compt: {
             cusWare: 'Teaching Material',
             cusWare: 'Teaching Material',
@@ -5642,8 +5642,8 @@ const LANG_EN_US = {
     },
     },
     // 教师管理
     // 教师管理
     teachContent: {
     teachContent: {
-        ext1:'Please keep the suffix and source file suffix',
-        ext2:'consistent!',
+        ext1: 'Please keep the suffix and source file suffix',
+        ext2: 'consistent!',
         recent: 'Recent',
         recent: 'Recent',
         recentTips: 'Temporary cache of up to 20 recently uploaded resources.The cache will be cleared when you exit the account or change computers.',
         recentTips: 'Temporary cache of up to 20 recently uploaded resources.The cache will be cleared when you exit the account or change computers.',
         filterRes: 'HiTeach',
         filterRes: 'HiTeach',
@@ -6975,46 +6975,46 @@ const LANG_EN_US = {
         rate: 'Ratio'
         rate: 'Ratio'
     },
     },
     // 艺术评价模块
     // 艺术评价模块
-    ae:{
-        ae0:'Assessment',
-        ae1:'Homework',
-        ae2:'Name',
-        ae3:'Please enter the name of the art assessment',
-        ae4:'Subject',
-        ae5:'Please enter the subject of the art assessment',
-        ae6:'Class',
-        ae7:'Time',
-        ae8:'Please set the assessment time',
-        ae9:'Assessment Index',
-        ae10:'Music',
-        ae11:'Fine Art',
-        ae12:'Art assessment start successfully',
-        ae13:'Failed to start art assessment',
-        ae14:'Failed to copy exam file',
-        ae15:'Failed to query the participant ',
-        ae16:'Assessment Exam File:',
-        ae17:'Re-elect',
-        ae18:'Please select the assessment exam file',
-        ae19:'Answering Method:',
-        ae20:'Default Sorting',
-        ae21:'Random Answering',
-        ae22:'Select the art assessment exam file',
-        ae23:'Exam File Source:',
-        ae24:'TEAM Model',
-        ae25:'This School',
-        ae26:'Back to Exam File List',
-        ae27:'Parameter Abnormal',
-        ae28:'Art Assessment',
-        ae29:'Not submitted',
-        ae30:'No district-level art assessment index',
-        ae31:'Delete art assessment',
-        ae32:'Are you sure you want to delete ',
-        ae33:'Deleted successfully',
-        ae34:'Failed to delete',
-        ae35:'Failed to obtain class list',
-        ae36:'Submit Time',
-        ae37:'Homework Description:',
-        ae38:'Please enter the homework description...',
+    ae: {
+        ae0: 'Assessment',
+        ae1: 'Homework',
+        ae2: 'Name',
+        ae3: 'Please enter the name of the art assessment',
+        ae4: 'Subject',
+        ae5: 'Please enter the subject of the art assessment',
+        ae6: 'Class',
+        ae7: 'Time',
+        ae8: 'Please set the assessment time',
+        ae9: 'Assessment Index',
+        ae10: 'Music',
+        ae11: 'Fine Art',
+        ae12: 'Art assessment start successfully',
+        ae13: 'Failed to start art assessment',
+        ae14: 'Failed to copy exam file',
+        ae15: 'Failed to query the participant ',
+        ae16: 'Assessment Exam File:',
+        ae17: 'Re-elect',
+        ae18: 'Please select the assessment exam file',
+        ae19: 'Answering Method:',
+        ae20: 'Default Sorting',
+        ae21: 'Random Answering',
+        ae22: 'Select the art assessment exam file',
+        ae23: 'Exam File Source:',
+        ae24: 'TEAM Model',
+        ae25: 'This School',
+        ae26: 'Back to Exam File List',
+        ae27: 'Parameter Abnormal',
+        ae28: 'Art Assessment',
+        ae29: 'Not submitted',
+        ae30: 'No district-level art assessment index',
+        ae31: 'Delete art assessment',
+        ae32: 'Are you sure you want to delete ',
+        ae33: 'Deleted successfully',
+        ae34: 'Failed to delete',
+        ae35: 'Failed to obtain class list',
+        ae36: 'Submit Time',
+        ae37: 'Homework Description:',
+        ae38: 'Please enter the homework description...',
         ae39: 'Please complete the detailed setting of the assessment index',
         ae39: 'Please complete the detailed setting of the assessment index',
         ae40: 'Please complete',
         ae40: 'Please complete',
         ae41: 'Detailed settings',
         ae41: 'Detailed settings',

+ 5 - 5
TEAMModelOS/ClientApp/public/lang/zh-TW.js

@@ -3577,14 +3577,14 @@ const LANG_ZH_TW = {
         pdtyp7:'大學',
         pdtyp7:'大學',
         pdtyp8:'特殊教育',
         pdtyp8:'特殊教育',
         pdtyp9:'教育局',
         pdtyp9:'教育局',
-        pdtyp10:'电教部门',
-        pdtyp11:'成人中专',
-        pdtyp12:'成人高教',
+        pdtyp10:'資教部門',
+        pdtyp11:'社區專科',
+        pdtyp12:'社區大學',
         pdtyp13:'碩士研究生',
         pdtyp13:'碩士研究生',
         pdtyp14:'博士研究生',
         pdtyp14:'博士研究生',
         pdtyp15:'企業',
         pdtyp15:'企業',
-        pdtyp16:'设置学段类型',
-        pdtyp17:'学段类型',
+        pdtyp16:'設置學段類型',
+        pdtyp17:'學段類型',
 
 
         // ClassroomSetting.vue
         // ClassroomSetting.vue
         classroomList: '教室清單',
         classroomList: '教室清單',

+ 30 - 3
TEAMModelOS/ClientApp/src/components/research-dashboard/BaseTechBar.vue

@@ -16,6 +16,7 @@ export default {
         city: ['互动教学', '合作学习', '差异教学', '精准教学'],
         city: ['互动教学', '合作学习', '差异教学', '精准教学'],
         legend: data.legend,
         legend: data.legend,
         data: data.data,
         data: data.data,
+        total: data.total,
       };
       };
       var colors = ['#F56679', '#4C98FB', '#8CDF6C', '#9D50E0'];
       var colors = ['#F56679', '#4C98FB', '#8CDF6C', '#9D50E0'];
       let option = {
       let option = {
@@ -87,7 +88,7 @@ export default {
         option.series.push({
         option.series.push({
           name: echartsData.legend[i],
           name: echartsData.legend[i],
           type: 'bar',
           type: 'bar',
-          stack: '总数',
+          stack: 'x',
           barWidth: '35',
           barWidth: '35',
           label: {
           label: {
             show: false,
             show: false,
@@ -98,7 +99,7 @@ export default {
             barBorderRadius: 50,
             barBorderRadius: 50,
             normal: {
             normal: {
               label: {
               label: {
-                show: true, //开启显示
+                show: false, //开启显示
                 position: 'top', //在上方显示
                 position: 'top', //在上方显示
                 textStyle: {
                 textStyle: {
                   //数值样式
                   //数值样式
@@ -111,6 +112,25 @@ export default {
           },
           },
         });
         });
       }
       }
+      option.series.push({
+        name: '总计',
+        type: 'bar',
+        stack: '',
+        barWidth: 35,
+        data: echartsData.total,
+        label: {
+          normal: {
+            show: true,
+            position: 'top',
+            color: '#fff'
+          },
+        },
+        z: -1,
+        //不同系列的柱间距离,为百分比,如果想要两个系列的柱子重叠,可以设置 barGap 为 '-100%'。
+        barGap: '-100%',
+      })
+
+
       myChart.clear()
       myChart.clear()
       myChart.setOption(option)
       myChart.setOption(option)
       window.addEventListener('resize', function () {
       window.addEventListener('resize', function () {
@@ -125,8 +145,15 @@ export default {
       legend: pieJson.teachingCount.map(i => i.name),
       legend: pieJson.teachingCount.map(i => i.name),
       data: pieJson.teachingCount.map(i => {
       data: pieJson.teachingCount.map(i => {
         return [i.clientInteractionCount, i.collateTaskCount, i.pushCount, i.examCount]
         return [i.clientInteractionCount, i.collateTaskCount, i.pushCount, i.examCount]
-      })
+      }),
+      total: [
+        pieJson.teachingCount.reduce((a, b) => a + b.clientInteractionCount, 0),
+        pieJson.teachingCount.reduce((a, b) => a + b.collateTaskCount, 0),
+        pieJson.teachingCount.reduce((a, b) => a + b.pushCount, 0),
+        pieJson.teachingCount.reduce((a, b) => a + b.examCount, 0),
+      ]
     }
     }
+    console.error(echartJson)
     this.doRender(echartJson)
     this.doRender(echartJson)
   },
   },
   computed: {
   computed: {

+ 82 - 1
TEAMModelOS/ClientApp/src/static/Global.js

@@ -27,6 +27,86 @@ const ART_PERIOD_TYPES = {
 	"edu-bureau": "教育局",
 	"edu-bureau": "教育局",
 	"elecedu-dept": "电教部门",
 	"elecedu-dept": "电教部门",
 }
 }
+const PERIOD_TYPE_LIST = () => {
+	const isChina = localStorage.getItem('srvAdr') === "China"
+	return [
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp1'),
+			value: 'pre',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp2'),
+			value: 'primary',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp3'),
+			value: 'junior',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp4'),
+			value: 'senior',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp5'),
+			value: 'secondary',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp6'),
+			value: 'college',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp7'),
+			value: 'university',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp8'),
+			value: 'special',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp9'),
+			value: 'edu-bureau',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp10'),
+			value: 'elecedu-dept',
+			isShow: true
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp11'),
+			value: 'adult-secondary',
+			isShow: isChina
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp12'),
+			value: 'adult-higher',
+			isShow: isChina
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp13'),
+			value: 'master',
+			isShow: isChina
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp14'),
+			value: 'doctor',
+			isShow: isChina
+		},
+		{
+			label: i18n.t('schoolBaseInfo.pdtyp15'),
+			value: 'enterprise',
+			isShow: isChina
+		}
+	]
+}
 /* 需要监听关闭和刷新的路由名单 */
 /* 需要监听关闭和刷新的路由名单 */
 const WATCH_ROUTE_CLOSE = ['newPrivateExercise', 'newSchoolExercise', 'newSchoolPaper', 'newPrivatePaper']
 const WATCH_ROUTE_CLOSE = ['newPrivateExercise', 'newSchoolExercise', 'newSchoolPaper', 'newPrivatePaper']
 //单位对应域名
 //单位对应域名
@@ -466,7 +546,8 @@ const GLOBAL = {
 	ART_PERIOD_TYPES,
 	ART_PERIOD_TYPES,
 	WATCH_ROUTE_CLOSE,
 	WATCH_ROUTE_CLOSE,
 	HI_TEACH_EVENT,
 	HI_TEACH_EVENT,
-	PROD_CODE_MAP
+	PROD_CODE_MAP,
+	PERIOD_TYPE_LIST
 }
 }
 
 
 const install = (Vue, options) => {
 const install = (Vue, options) => {

+ 18 - 2
TEAMModelOS/ClientApp/src/view/artexam/Create.vue

@@ -44,6 +44,11 @@
                     <FormItem :label="$t('ae.ae7')" prop="time" style="margin-top: 30px">
                     <FormItem :label="$t('ae.ae7')" prop="time" style="margin-top: 30px">
                         <DatePicker v-model="artInfo.time" transfer type="datetimerange" placement="bottom-start" :placeholder="$t('ae.ae8')" @on-change="handleSetTime" style="width: 100%"></DatePicker>
                         <DatePicker v-model="artInfo.time" transfer type="datetimerange" placement="bottom-start" :placeholder="$t('ae.ae8')" @on-change="handleSetTime" style="width: 100%"></DatePicker>
                     </FormItem>
                     </FormItem>
+                    <FormItem label="学段" prop="periodType" style="margin-top: 30px" v-if="isArea">
+                        <Select v-model="artInfo.periodType" placeholder="请选择施测适用学段">
+                            <Option v-for="item in pdTypeList" :value="item.value" :key="item.value">{{ item.label }}</Option>
+                        </Select>
+                    </FormItem>
                     <FormItem label="学校" style="margin-top: 30px" v-if="isArea">
                     <FormItem label="学校" style="margin-top: 30px" v-if="isArea">
                         <Select v-model="artInfo.schools" style="" multiple placeholder="请选择施测学校,默认所有学校">
                         <Select v-model="artInfo.schools" style="" multiple placeholder="请选择施测学校,默认所有学校">
                             <Option v-for="item in schoolList" :value="item.id" :key="item.id">{{ item.name }}</Option>
                             <Option v-for="item in schoolList" :value="item.id" :key="item.id">{{ item.name }}</Option>
@@ -125,8 +130,9 @@ export default {
         };
         };
         let _this = this
         let _this = this
         return {
         return {
-            schoolList: [],
-            examInfoList: [],
+            pdTypeList: this.$GLOBAL.PERIOD_TYPE_LIST(),
+            schoolList:[],
+            examInfoList:[],
             isArea: false,
             isArea: false,
             defaultQuos: ['quota_2'],
             defaultQuos: ['quota_2'],
             subjectList: [
             subjectList: [
@@ -152,6 +158,7 @@ export default {
             step: 0,
             step: 0,
             artInfo: {
             artInfo: {
                 name: "",
                 name: "",
+                periodType:"",
                 startTime: 0,
                 startTime: 0,
                 endTime: 0,
                 endTime: 0,
                 time: [],
                 time: [],
@@ -169,6 +176,13 @@ export default {
                         trigger: "change"
                         trigger: "change"
                     }
                     }
                 ],
                 ],
+                periodType: [
+                    {
+                        required: true,
+                        message: '请选择施测适用学段',
+                        trigger: "change"
+                    }
+                ],
                 subjects: [
                 subjects: [
                     {
                     {
                         required: true,
                         required: true,
@@ -451,6 +465,7 @@ export default {
                 }
                 }
                 let promise
                 let promise
                 if (this.isArea) {
                 if (this.isArea) {
+                    params.periodType = this.artInfo.periodType
                     promise = this.$api.areaArt.saveAreaArt({
                     promise = this.$api.areaArt.saveAreaArt({
                         id: sessionStorage.getItem("areaId"),
                         id: sessionStorage.getItem("areaId"),
                         art: params,
                         art: params,
@@ -462,6 +477,7 @@ export default {
                         id: this.curPeriod.id,
                         id: this.curPeriod.id,
                         name: this.curPeriod.name
                         name: this.curPeriod.name
                     }
                     }
+                    params.periodType = this.curPeriod.periodType
                     promise = this.$api.areaArt.saveArt({
                     promise = this.$api.areaArt.saveArt({
                         art: params
                         art: params
                     })
                     })

+ 2 - 1
TEAMModelOS/ClientApp/src/view/artexam/Mgt.vue

@@ -486,7 +486,8 @@ export default {
         findArtList() {
         findArtList() {
             let params = {
             let params = {
                 code: this.$store.state.userInfo.schoolCode,
                 code: this.$store.state.userInfo.schoolCode,
-                periodId: this.curPeriod.id
+                periodId: this.curPeriod.id,
+                periodType: this.curPeriod.periodType
             }
             }
             this.$api.areaArt.findArtList(params).then(
             this.$api.areaArt.findArtList(params).then(
                 (res) => {
                 (res) => {

+ 11 - 17
TEAMModelOS/ClientApp/src/view/dashboard/fiveEdu/FiveEdu.vue

@@ -193,24 +193,18 @@ export default {
   data() {
   data() {
     return {
     return {
       stuTopArr: new Array(10),
       stuTopArr: new Array(10),
-      targetValue: ['beijing'],
+      targetValue: ['5'],
       targetData: [{
       targetData: [{
-        value: 'beijing',
-        label: '所有年级',
-        children: [
-          {
-            value: 'gugong',
-            label: '五年级'
-          },
-          {
-            value: 'tiantan',
-            label: '六年级'
-          },
-          {
-            value: 'wangfujing',
-            label: '七年级'
-          }
-        ]
+        value: '5',
+        label: '五年级'
+      },
+      {
+        value: '6',
+        label: '六年级'
+      },
+      {
+        value: '7',
+        label: '七年级'
       }],
       }],
       menus: [
       menus: [
         {
         {

+ 4 - 53
TEAMModelOS/ClientApp/src/view/research-center/BaseCleanCond.vue

@@ -9,7 +9,7 @@
         <span slot="close">{{ $t('lessonRecord.close') }}</span>
         <span slot="close">{{ $t('lessonRecord.close') }}</span>
       </i-switch>
       </i-switch>
       <Tooltip :content="$t('lessonRecord.condTip')" :max-width="300" theme="light" placement="right" style="margin-left: 10px">
       <Tooltip :content="$t('lessonRecord.condTip')" :max-width="300" theme="light" placement="right" style="margin-left: 10px">
-        <Icon type="md-information-circle" color="#888" size="16"/>
+        <Icon type="md-information-circle" color="#888" size="16" />
       </Tooltip>
       </Tooltip>
     </div>
     </div>
     <div v-if="openAutoClean" style="margin-top:20px;">
     <div v-if="openAutoClean" style="margin-top:20px;">
@@ -46,26 +46,12 @@ export default {
       expireDays: 7,
       expireDays: 7,
       condArr: [
       condArr: [
         {
         {
-          name: this.$t('lessonRecord.attendCount'),
-          key: 'attendRate',
-          val: 0,
-          unit: 'rate',
-          type: '>='
-        },
-        {
-          name: this.$t('lessonRecord.groupCount'),
-          key: 'groupCount',
+          name: this.$t('lessonRecord.clientInteractionCount'),
+          key: 'clientInteractionCount',
           val: 0,
           val: 0,
           unit: 'count',
           unit: 'count',
           type: '>='
           type: '>='
         },
         },
-        {
-          name: this.$t('lessonRecord.totalPoint'),
-          key: 'totalPoint',
-          val: 0,
-          unit: 'point',
-          type: '>='
-        },
         {
         {
           name: this.$t('lessonRecord.collateTaskCount'),
           name: this.$t('lessonRecord.collateTaskCount'),
           key: 'collateTaskCount',
           key: 'collateTaskCount',
@@ -73,13 +59,6 @@ export default {
           unit: 'count',
           unit: 'count',
           type: '>='
           type: '>='
         },
         },
-        {
-          name: this.$t('lessonRecord.collateCount'),
-          key: 'collateCount',
-          val: 0,
-          unit: 'count',
-          type: '>='
-        },
         {
         {
           name: this.$t('lessonRecord.pushCount'),
           name: this.$t('lessonRecord.pushCount'),
           key: 'pushCount',
           key: 'pushCount',
@@ -87,41 +66,13 @@ export default {
           unit: 'count',
           unit: 'count',
           type: '>='
           type: '>='
         },
         },
-        {
-          name: this.$t('lessonRecord.score'),
-          key: 'totalInteractPoint',
-          val: 0,
-          unit: 'point',
-          type: '>='
-        },
-        {
-          name: this.$t('lessonRecord.interactionCount'),
-          key: 'interactionCount',
-          val: 0,
-          unit: 'count',
-          type: '>='
-        },
-        {
-          name: this.$t('lessonRecord.clientInteractionCount'),
-          key: 'clientInteractionCount',
-          val: 0,
-          unit: 'count',
-          type: '>='
-        },
         {
         {
           name: this.$t('lessonRecord.examQuizCount'),
           name: this.$t('lessonRecord.examQuizCount'),
-          key: 'examQuizCount',
+          key: 'examCount',
           val: 0,
           val: 0,
           unit: 'count',
           unit: 'count',
           type: '>='
           type: '>='
         },
         },
-        {
-          name: this.$t('lessonRecord.examPointRate'),
-          key: 'examPointRate',
-          val: 0,
-          unit: 'rate',
-          type: '>='
-        }
       ]
       ]
     }
     }
   },
   },

+ 104 - 100
TEAMModelOS/ClientApp/src/view/research-center/ResearchMgt.vue

@@ -269,26 +269,12 @@ export default {
       },
       },
       conds: [
       conds: [
         {
         {
-          name: this.$t('lessonRecord.attendCount'),
-          key: 'attendRate',
-          val: 0,
-          unit: 'rate',
-          type: '>='
-        },
-        {
-          name: this.$t('lessonRecord.groupCount'),
-          key: 'groupCount',
+          name: this.$t('lessonRecord.clientInteractionCount'),
+          key: 'clientInteractionCount',
           val: 0,
           val: 0,
           unit: 'count',
           unit: 'count',
           type: '>='
           type: '>='
         },
         },
-        {
-          name: this.$t('lessonRecord.totalPoint'),
-          key: 'totalPoint',
-          val: 0,
-          unit: 'point',
-          type: '>='
-        },
         {
         {
           name: this.$t('lessonRecord.collateTaskCount'),
           name: this.$t('lessonRecord.collateTaskCount'),
           key: 'collateTaskCount',
           key: 'collateTaskCount',
@@ -296,13 +282,6 @@ export default {
           unit: 'count',
           unit: 'count',
           type: '>='
           type: '>='
         },
         },
-        {
-          name: this.$t('lessonRecord.collateCount'),
-          key: 'collateCount',
-          val: 0,
-          unit: 'count',
-          type: '>='
-        },
         {
         {
           name: this.$t('lessonRecord.pushCount'),
           name: this.$t('lessonRecord.pushCount'),
           key: 'pushCount',
           key: 'pushCount',
@@ -311,40 +290,65 @@ export default {
           type: '>='
           type: '>='
         },
         },
         {
         {
-          name: this.$t('lessonRecord.score'),
-          key: 'totalInteractPoint',
-          val: 0,
-          unit: 'point',
-          type: '>='
-        },
-        {
-          name: this.$t('lessonRecord.interactionCount'),
-          key: 'interactionCount',
-          val: 0,
-          unit: 'count',
-          type: '>='
-        },
-        {
-          name: this.$t('lessonRecord.clientInteractionCount'),
-          key: 'clientInteractionCount',
-          val: 0,
-          unit: 'count',
-          type: '>='
-        },
-        {
-          name: this.$t('lessonRecord.examCount'),
+          name: this.$t('lessonRecord.examQuizCount'),
           key: 'examCount',
           key: 'examCount',
           val: 0,
           val: 0,
           unit: 'count',
           unit: 'count',
           type: '>='
           type: '>='
         },
         },
-        {
-          name: this.$t('lessonRecord.examPointRate'),
-          key: 'examPointRate',
-          val: 0,
-          unit: 'rate',
-          type: '>='
-        }
+        // {
+        //   name: this.$t('lessonRecord.attendCount'),
+        //   key: 'attendRate',
+        //   val: 0,
+        //   unit: 'rate',
+        //   type: '>='
+        // },
+        // {
+        //   name: this.$t('lessonRecord.groupCount'),
+        //   key: 'groupCount',
+        //   val: 0,
+        //   unit: 'count',
+        //   type: '>='
+        // },
+        // {
+        //   name: this.$t('lessonRecord.totalPoint'),
+        //   key: 'totalPoint',
+        //   val: 0,
+        //   unit: 'point',
+        //   type: '>='
+        // },
+
+        // {
+        //   name: this.$t('lessonRecord.collateCount'),
+        //   key: 'collateCount',
+        //   val: 0,
+        //   unit: 'count',
+        //   type: '>='
+        // },
+
+        // {
+        //   name: this.$t('lessonRecord.score'),
+        //   key: 'totalInteractPoint',
+        //   val: 0,
+        //   unit: 'point',
+        //   type: '>='
+        // },
+        // {
+        //   name: this.$t('lessonRecord.interactionCount'),
+        //   key: 'interactionCount',
+        //   val: 0,
+        //   unit: 'count',
+        //   type: '>='
+        // },
+
+
+        // {
+        //   name: this.$t('lessonRecord.examPointRate'),
+        //   key: 'examPointRate',
+        //   val: 0,
+        //   unit: 'rate',
+        //   type: '>='
+        // }
       ],
       ],
       timeOptions: {
       timeOptions: {
         shortcuts: [
         shortcuts: [
@@ -431,58 +435,58 @@ export default {
           sortable: true,
           sortable: true,
           ellipsis: true,
           ellipsis: true,
         },
         },
-        {
-          title: vm.$t('lessonRecord.attendCount'),
-          key: 'attendRate',
-          sortable: true,
-          ellipsis: true,
-          render: function (h, params) {
-            return h('span', (Number(params.row.attendRate)).toFixed(2) + '%')
-          },
-        },
-        {
-          title: vm.$t('lessonRecord.groupCount'),
-          key: 'groupCount',
-          sortable: true,
-          ellipsis: true,
-        },
-        {
-          title: vm.$t('lessonRecord.totalPoint'),
-          key: 'totalPoint',
-          sortable: true,
-          ellipsis: true,
-        },
+        // {
+        //   title: vm.$t('lessonRecord.attendCount'),
+        //   key: 'attendRate',
+        //   sortable: true,
+        //   ellipsis: true,
+        //   render: function (h, params) {
+        //     return h('span', (Number(params.row.attendRate)).toFixed(2) + '%')
+        //   },
+        // },
+        // {
+        //   title: vm.$t('lessonRecord.groupCount'),
+        //   key: 'groupCount',
+        //   sortable: true,
+        //   ellipsis: true,
+        // },
+        // {
+        //   title: vm.$t('lessonRecord.totalPoint'),
+        //   key: 'totalPoint',
+        //   sortable: true,
+        //   ellipsis: true,
+        // },
 
 
-        {
-          title: vm.$t('lessonRecord.collateCount'),
-          key: 'collateCount',
-          sortable: true,
-          ellipsis: true,
-        },
+        // {
+        //   title: vm.$t('lessonRecord.collateCount'),
+        //   key: 'collateCount',
+        //   sortable: true,
+        //   ellipsis: true,
+        // },
 
 
-        {
-          title: vm.$t('lessonRecord.score'),
-          key: 'totalInteractPoint',
-          sortable: true,
-          ellipsis: true,
-        },
-        {
-          title: vm.$t('lessonRecord.interactionCount'),
-          key: 'interactionCount',
-          sortable: true,
-          ellipsis: true,
-        },
+        // {
+        //   title: vm.$t('lessonRecord.score'),
+        //   key: 'totalInteractPoint',
+        //   sortable: true,
+        //   ellipsis: true,
+        // },
+        // {
+        //   title: vm.$t('lessonRecord.interactionCount'),
+        //   key: 'interactionCount',
+        //   sortable: true,
+        //   ellipsis: true,
+        // },
 
 
 
 
-        {
-          title: vm.$t('lessonRecord.examPointRate'),
-          key: 'examPointRate',
-          sortable: true,
-          ellipsis: true,
-          render: function (h, params) {
-            return h('span', (Number(params.row.examPointRate)).toFixed(2) + '%')
-          },
-        },
+        // {
+        //   title: vm.$t('lessonRecord.examPointRate'),
+        //   key: 'examPointRate',
+        //   sortable: true,
+        //   ellipsis: true,
+        //   render: function (h, params) {
+        //     return h('span', (Number(params.row.examPointRate)).toFixed(2) + '%')
+        //   },
+        // },
         {
         {
           title: vm.$t('lessonRecord.action'),
           title: vm.$t('lessonRecord.action'),
           slot: 'action',
           slot: 'action',

+ 1 - 77
TEAMModelOS/ClientApp/src/view/schoolmgmt/SystemSetting/SystemSetting.vue

@@ -481,83 +481,7 @@ export default {
         return {
         return {
             pdType:'',
             pdType:'',
             pdTypeStatus: false,
             pdTypeStatus: false,
-            pdTypeList: [
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp1'),
-                    value: 'pre',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp2'),
-                    value: 'primary',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp3'),
-                    value: 'junior',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp4'),
-                    value: 'senior',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp5'),
-                    value: 'secondary',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp6'),
-                    value: 'college',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp7'),
-                    value: 'university',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp8'),
-                    value: 'special',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp9'),
-                    value: 'edu-bureau',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp10'),
-                    value: 'elecedu-dept',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp11'),
-                    value: 'adult-secondary',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp12'),
-                    value: 'adult-higher',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp13'),
-                    value: 'master',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp14'),
-                    value: 'doctor',
-                    isShow: true
-                },
-                {
-                    label: this.$t('schoolBaseInfo.pdtyp15'),
-                    value: 'enterprise',
-                    isShow: true
-                }
-            ],
+            pdTypeList: this.$GLOBAL.PERIOD_TYPE_LIST(),
             btnLoading: false,
             btnLoading: false,
             sltSubjects: [],
             sltSubjects: [],
             addSubjectType: '0',
             addSubjectType: '0',

Разлика између датотеке није приказан због своје велике величине
+ 89 - 133
TEAMModelOS/Controllers/Common/AreaController.cs


+ 15 - 2
TEAMModelOS/Controllers/Common/ArtController.cs

@@ -497,11 +497,24 @@ namespace TEAMModelOS.Controllers.Common
             try
             try
             {
             {
                 if (!request.TryGetProperty("code", out JsonElement code)) return BadRequest();
                 if (!request.TryGetProperty("code", out JsonElement code)) return BadRequest();
-                var client = _azureCosmos.GetCosmosClient();
+                request.TryGetProperty("periodId", out JsonElement period) ;
+                request.TryGetProperty("periodType", out JsonElement periodType) ;
+                if (string.IsNullOrWhiteSpace($"{period}") && string.IsNullOrWhiteSpace($"{periodType}")) {
+                    return BadRequest();
+                }
+                    var client = _azureCosmos.GetCosmosClient();
                 StringBuilder stringBuilder = new($"select c.id,c.img,c.name,c.classes,c.code,c.type,c.startTime,c.endTime,c.presenter,c.topic,c.address,c.owner,c.progress from c where (c.status<>404 or IS_DEFINED(c.status) = false )");
                 StringBuilder stringBuilder = new($"select c.id,c.img,c.name,c.classes,c.code,c.type,c.startTime,c.endTime,c.presenter,c.topic,c.address,c.owner,c.progress from c where (c.status<>404 or IS_DEFINED(c.status) = false )");
                 string continuationToken = string.Empty;
                 string continuationToken = string.Empty;
                 string token = default;
                 string token = default;
-                if (request.TryGetProperty("periodId", out JsonElement period) && !string.IsNullOrWhiteSpace($"{period}"))
+                if ( !string.IsNullOrWhiteSpace($"{period}") && !string.IsNullOrWhiteSpace($"{periodType}"))
+                {
+                    stringBuilder.Append($" and (c.period.id = '{period}' or c.periodType = '{periodType}')");
+                }
+                if (string.IsNullOrWhiteSpace($"{period}") &&  !string.IsNullOrWhiteSpace($"{periodType}"))
+                {
+                    stringBuilder.Append($" and c.periodType = '{periodType}' ");
+                }
+                if (!string.IsNullOrWhiteSpace($"{period}") && string.IsNullOrWhiteSpace($"{periodType}"))
                 {
                 {
                     stringBuilder.Append($" and c.period.id = '{period}' ");
                     stringBuilder.Append($" and c.period.id = '{period}' ");
                 }
                 }