浏览代码

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

Li 2 年之前
父节点
当前提交
b4952d349c

+ 3 - 0
TEAMModelBI/TEAMModelBI.csproj

@@ -55,6 +55,9 @@
 	    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 	  </Content>
 	</ItemGroup>
+	<ItemGroup>
+	  <Folder Include="wwwroot\" />
+	</ItemGroup>
 	<PropertyGroup>
 		<SpaRoot>ClientApp\</SpaRoot>
 		<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**</DefaultItemExcludes>

+ 1 - 1
TEAMModelOS/ClientApp/public/lang/zh-CN.js

@@ -5589,7 +5589,7 @@ const LANG_ZH_CN = {
             homework: '作业活动',
             acRecord: '活动记录',
             cusMgt: '课程管理',
-            taskList: '任务列表',
+            taskList: '我的任务',
             train: '研修中心',
             trainData: '研修数据',
             abilityPoint: '微能力点',

+ 119 - 118
TEAMModelOS/ClientApp/src/common/BaseLayout.vue

@@ -763,114 +763,7 @@ export default {
     },
     teacherMenu() {
       let data = [
-        // 个人研修
-        {
-          icon: 'iconfont icon-train',
-          name: this.$t('system.menu.train'),
-          router: '',
-          role: 'teacher|admin',
-          permission: '',
-          subName: 'privTrain',
-          // isShow: process.env.NODE_ENV == 'development',
-          isShow: this.$store.state.config.srvAdr == 'China',
-          // isShow: true,
-          child: [{
-            icon: 'iconfont icon-data1',
-            name: this.$t('system.menu.trainCount'),
-            router: '/home/jyHome',
-            tag: '',
-            role: 'teacher|admin',
-            permission: '',
-            menuName: 'jyHome',
-            isShow: true
-          },
-          {
-            icon: 'iconfont icon-online',
-            name: this.$t('system.menu.onlineTrain'),
-            router: '/home/online',
-            tag: '',
-            role: 'teacher|admin',
-            permission: '',
-            menuName: 'online',
-            isShow: true
-          },
-          {
-            icon: 'iconfont icon-offline',
-            name: this.$t('system.menu.scTrain'),
-            router: '/home/offline',
-            tag: '',
-            role: 'teacher|admin',
-            permission: '',
-            menuName: 'offline',
-            isShow: true
-          },
-          {
-            icon: 'iconfont icon-material',
-            name: this.$t('system.menu.appAssassment'),
-            router: '/home/application',
-            tag: '',
-            role: 'teacher|admin',
-            permission: '',
-            menuName: 'application',
-            isShow: true
-          },
-          {
-            icon: 'iconfont icon-course-videos',
-            name: this.$t('system.menu.classRecord'),
-            router: '/home/classMemoir',
-            tag: '',
-            role: 'teacher|admin',
-            permission: '',
-            menuName: 'classmemoir',
-            isShow: true
-          },
-          {
-            icon: 'iconfont icon-discuss',
-            name: this.$t('system.menu.discuss'),
-            router: '/home/discuss',
-            tag: '',
-            role: 'teacher|admin',
-            permission: '',
-            menuName: 'discuss',
-            isShow: true
-          },
-            // 研修的投票和问卷隐藏
-            /* {
-                icon: 'iconfont icon-vote',
-                name: this.$t('system.menu.scVote'),
-                router: '/home/privateVote',
-                tag: '',
-                role: 'admin|teacher',
-                permission: '',
-                child: [],
-                menuName: 'privateVote',
-                isShow: true
-            },
-            {
-                icon: 'iconfont icon-questionnaire',
-                name: this.$t('system.menu.scQu'),
-                router: '/home/privateQuestionnaire',
-                tag: '',
-                role: 'admin|teacher',
-                permission: '',
-                child: [],
-                menuName: 'privateQuestionnaire',
-                isShow: true
-            }, */
-          ]
-        },
-        // 我的班级
-        {
-          icon: 'iconfont icon-class-self',
-          name: this.$t('system.menu.myClass'),
-          router: '/home/classmgt',
-          tag: '',
-          role: 'teacher',
-          permission: '',
-          child: [],
-          menuName: 'classmgt',
-          isShow: this.$store.state.userInfo.hasSchool && this.isHeadmaster && this.IES5Menu
-        },
+
         // 我的课程
         {
           icon: 'iconfont icon-course-self',
@@ -886,18 +779,17 @@ export default {
           isShow: this.IES5Menu,
           info: this.$t('tip.myCus')
         },
-        // 苏格拉底
+        // 我的班级
         {
-          icon: 'iconfont icon-course-videos',
-          name: this.$t('system.menu.toSokrates'),
-          router: '#',
+          icon: 'iconfont icon-class-self',
+          name: this.$t('system.menu.myClass'),
+          router: '/home/classmgt',
           tag: '',
-          role: 'admin|teacher',
-          child: [],
+          role: 'teacher',
           permission: '',
-          menuName: 'privSokrate',
-          isShow: this.IES5Menu,
-          to: 'privSokrate'
+          child: [],
+          menuName: 'classmgt',
+          isShow: this.$store.state.userInfo.hasSchool && this.isHeadmaster && this.IES5Menu
         },
         // 我的资源
         {
@@ -1025,7 +917,116 @@ export default {
           menuName: 'taskList',
           isShow: this.$store.state.userInfo.hasSchool && this.IES5Menu,
           info: this.$t('tip.task')
-        }
+        },
+        // 个人研修
+        {
+          icon: 'iconfont icon-train',
+          name: this.$t('system.menu.train'),
+          router: '',
+          role: 'teacher|admin',
+          permission: '',
+          subName: 'privTrain',
+          // isShow: process.env.NODE_ENV == 'development',
+          isShow: this.$store.state.config.srvAdr == 'China',
+          // isShow: true,
+          child: [{
+            icon: 'iconfont icon-data1',
+            name: this.$t('system.menu.trainCount'),
+            router: '/home/jyHome',
+            tag: '',
+            role: 'teacher|admin',
+            permission: '',
+            menuName: 'jyHome',
+            isShow: true
+          },
+          {
+            icon: 'iconfont icon-online',
+            name: this.$t('system.menu.onlineTrain'),
+            router: '/home/online',
+            tag: '',
+            role: 'teacher|admin',
+            permission: '',
+            menuName: 'online',
+            isShow: true
+          },
+          {
+            icon: 'iconfont icon-offline',
+            name: this.$t('system.menu.scTrain'),
+            router: '/home/offline',
+            tag: '',
+            role: 'teacher|admin',
+            permission: '',
+            menuName: 'offline',
+            isShow: true
+          },
+          {
+            icon: 'iconfont icon-material',
+            name: this.$t('system.menu.appAssassment'),
+            router: '/home/application',
+            tag: '',
+            role: 'teacher|admin',
+            permission: '',
+            menuName: 'application',
+            isShow: true
+          },
+          {
+            icon: 'iconfont icon-course-videos',
+            name: this.$t('system.menu.classRecord'),
+            router: '/home/classMemoir',
+            tag: '',
+            role: 'teacher|admin',
+            permission: '',
+            menuName: 'classmemoir',
+            isShow: true
+          },
+          {
+            icon: 'iconfont icon-discuss',
+            name: this.$t('system.menu.discuss'),
+            router: '/home/discuss',
+            tag: '',
+            role: 'teacher|admin',
+            permission: '',
+            menuName: 'discuss',
+            isShow: true
+          },
+            // 研修的投票和问卷隐藏
+            /* {
+                icon: 'iconfont icon-vote',
+                name: this.$t('system.menu.scVote'),
+                router: '/home/privateVote',
+                tag: '',
+                role: 'admin|teacher',
+                permission: '',
+                child: [],
+                menuName: 'privateVote',
+                isShow: true
+            },
+            {
+                icon: 'iconfont icon-questionnaire',
+                name: this.$t('system.menu.scQu'),
+                router: '/home/privateQuestionnaire',
+                tag: '',
+                role: 'admin|teacher',
+                permission: '',
+                child: [],
+                menuName: 'privateQuestionnaire',
+                isShow: true
+            }, */
+          ]
+        },
+        // 苏格拉底
+        {
+          icon: 'iconfont icon-course-videos',
+          name: this.$t('system.menu.toSokrates'),
+          router: '#',
+          tag: '',
+          role: 'admin|teacher',
+          child: [],
+          permission: '',
+          menuName: 'privSokrate',
+          isShow: this.IES5Menu,
+          to: 'privSokrate'
+        },
       ]
       return data
     }

+ 6 - 1
TEAMModelOS/ClientApp/src/router/routes.js

@@ -1539,7 +1539,7 @@ export const routes = [{
 {
     name: 'area',
     path: '/area',
-    redirect: '/area/areaMgmt',
+    redirect: '/area/areaIndex',
     component: () => import('@/view/areaMgmt/AreaBase.vue'),
     children: [
         //政策文件
@@ -1646,6 +1646,11 @@ export const routes = [{
                 activeName: 'areaMgmt'
             }
         },
+        {
+            path: 'areaIndex',
+            name: 'areaIndex',
+            component: () => import('@/view/areaMgmt/AreaIndex.vue'),
+        },
         // 学校总览
         {
             path: 'schoolMgmt',

+ 1 - 1
TEAMModelOS/ClientApp/src/view/areaMgmt/AreaBase.vue

@@ -180,7 +180,7 @@ export default {
       })
     },
     toHome() {
-      this.$router.push({ path: '/area/areaMgmt' })
+      this.$router.push({ path: '/area/areaIndex' })
     },
     toSettings() {
       this.$router.push({ path: '/home/settings' })

+ 14 - 0
TEAMModelOS/ClientApp/src/view/areaMgmt/AreaIndex.vue

@@ -0,0 +1,14 @@
+<template>
+  <div class="area-index">
+    AreaIndex
+  </div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+</style>

+ 74 - 51
TEAMModelOS/ClientApp/src/view/areaMgmt/AreaLayout.vue

@@ -257,55 +257,17 @@ export default {
     // 教师专业成长
     teacherMenu() {
       return [
-        {
-          icon: 'iconfont icon-activityS',
-          name: this.$t('area.base.allAc'),
-          router: '/area/TrainAreaMgt',
-          tag: '',
-          role: '',
-          permission: '',
-          menuName: 'TrainAreaMgt',
-          child: [],
-          isShow: !this.$jsFn.checkJinNiu() && !this.$jsFn.checkTrain()
-        },
-        // 苏格拉底
-        {
-          icon: 'iconfont icon-course-videos',
-          name: this.$t('system.menu.toSokrates'),
-          router: '#',
-          tag: '',
-          role: '',
-          child: [],
-          permission: '',
-          menuName: 'privSokrate',
-          isShow: !this.$jsFn.checkJinNiu() && !this.$jsFn.checkTrain(),
-          to: 'privSokrate'
-        },
-        // 活动系统
-        {
-          icon: 'iconfont icon-myNote',
-          name: this.$t('system.menu.activity'),
-          router: '#',
-          tag: '',
-          role: 'admin|teacher',
-          child: [],
-          permission: '',
-          menuName: 'activity',
-          isShow: !this.$jsFn.checkJinNiu() && !this.$jsFn.checkTrain(),
-          to: 'activity'
-        },
-        // 资源平台
-        {
-          icon: 'iconfont icon-app',
-          name: this.$t('system.menu.platform'),
-          router: '/area/mgtPlatform',
-          tag: '',
-          role: '',
-          permission: '',
-          menuName: 'mgtPlatform',
-          child: [],
-          isShow: !this.$jsFn.checkJinNiu() && !this.$jsFn.checkTrain()
-        },
+        // {
+        //   icon: 'iconfont icon-activityS',
+        //   name: this.$t('area.base.allAc'),
+        //   router: '/area/TrainAreaMgt',
+        //   tag: '',
+        //   role: '',
+        //   permission: '',
+        //   menuName: 'TrainAreaMgt',
+        //   child: [],
+        //   isShow: !this.$jsFn.checkJinNiu() && !this.$jsFn.checkTrain()
+        // },
         // 研修平台
         {
           icon: 'iconfont icon-basic-setting',
@@ -318,7 +280,29 @@ export default {
           menuName: 'trainCenter',
           child: [
             {
-              icon: 'iconfont icon-basic-setting',
+              icon: 'iconfont icon-dashboard-change',
+              name: this.$t('td.td86'),
+              router: '/area/areaMgmt',
+              tag: '',
+              role: 'admin|teacher|expert',
+              permission: '',
+              menuName: 'areaMgmt',
+              child: [],
+              isShow: this.$store.state.config.srvAdr == 'China'
+            },
+            {
+              icon: 'iconfont icon-ketanghudonghangwei',
+              name: this.$t('home.trainLabel3'),
+              router: '/area/TrainAreaMgt',
+              tag: '',
+              role: 'admin|teacher|expert',
+              permission: '',
+              menuName: 'TrainAreaMgt',
+              child: [],
+              isShow: this.$store.state.config.srvAdr == 'China'
+            },
+            {
+              icon: 'iconfont icon-app',
               name: this.$t('area.base.setting'),
               router: '/area/areaSetting',
               tag: '',
@@ -374,7 +358,46 @@ export default {
             }
           ],
           isShow: this.$store.state.config.srvAdr == 'China'
-        }
+        },
+        // 苏格拉底
+        {
+          icon: 'iconfont icon-course-videos',
+          name: this.$t('system.menu.toSokrates'),
+          router: '#',
+          tag: '',
+          role: '',
+          child: [],
+          permission: '',
+          menuName: 'privSokrate',
+          isShow: !this.$jsFn.checkJinNiu() && !this.$jsFn.checkTrain(),
+          to: 'privSokrate'
+        },
+        // 活动系统
+        {
+          icon: 'iconfont icon-myNote',
+          name: this.$t('system.menu.activity'),
+          router: '#',
+          tag: '',
+          role: 'admin|teacher',
+          child: [],
+          permission: '',
+          menuName: 'activity',
+          isShow: !this.$jsFn.checkJinNiu() && !this.$jsFn.checkTrain(),
+          to: 'activity'
+        },
+        // 资源平台
+        {
+          icon: 'iconfont icon-app',
+          name: this.$t('system.menu.platform'),
+          router: '/area/mgtPlatform',
+          tag: '',
+          role: '',
+          permission: '',
+          menuName: 'mgtPlatform',
+          child: [],
+          isShow: !this.$jsFn.checkJinNiu() && !this.$jsFn.checkTrain()
+        },
+
       ]
     },
     studentMenu() {

+ 18 - 17
TEAMModelOS/Controllers/Both/ShareController.cs

@@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.Options;
+using OpenXmlPowerTools;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -139,6 +140,7 @@ namespace TEAMModelOS.Controllers
                                     return BadRequest();
                                 }
                                 (Syllabus syllabus, List<Share> shares) = DoAuth(request, syllabusD);
+                                string tmdid = "";
                                 foreach (var x in shares)
                                 {
                                     await client.GetContainer(Constant.TEAMModelOS, "Teacher").UpsertItemAsync<Share>(x, new PartitionKey($"{x.code}"));
@@ -149,17 +151,17 @@ namespace TEAMModelOS.Controllers
                                     {
                                         continue;
                                     }
-                                    string tmdid = x.code.Replace("Share-", "").Replace($"{x.type}-", "");
-                                   
-                                   
-                                    if (x.type.Equals("coedit")) {
-                                        School school = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(request.school, new Azure.Cosmos.PartitionKey("Base"));
-                                        Teacher targetTeacher = await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).ReadItemAsync<Teacher>($"{tmdid}", new PartitionKey($"Base"));
-                                        _coreAPIHttpService.PushNotify(new List<IdNameCode> { new IdNameCode { id = targetTeacher.id, name = targetTeacher.name, code = targetTeacher.lang } }, $"{x.type}_syllabus", Constant.NotifyType_IES5_Contect,
-                                                     new Dictionary<string, object> {
-                                                         { "tmdname", x.issuerName }, { "tmdid", x.issuer }, { "schoolId",school.id}, { "schoolName",school.name},{ "volumeId", x.volumeId }, { "syllabusId", x.id }, { "volumeName", x.volumeName }, { "syllabusName", x.syllabusName } }
-                                                     , _option.Location, _configuration, _dingDing, _environment.ContentRootPath);
-                                    }
+                                    tmdid = x.code.Replace("Share-", "").Replace($"{x.type}-", "");
+                                    
+                                }
+                                if (request.type.Equals("coedit"))
+                                {
+                                    School school = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<School>(request.school, new Azure.Cosmos.PartitionKey("Base"));
+                                    Teacher targetTeacher = await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).ReadItemAsync<Teacher>($"{tmdid}", new PartitionKey($"Base"));
+                                    _coreAPIHttpService.PushNotify(new List<IdNameCode> { new IdNameCode { id = targetTeacher.id, name = targetTeacher.name, code = targetTeacher.lang } }, $"{request.type}_syllabus", Constant.NotifyType_IES5_Contect,
+                                                 new Dictionary<string, object> {
+                                                         { "tmdname", request.issuerName }, { "tmdid", request.issuer }, { "schoolId",school.id}, { "schoolName",school.name},{ "volumeId", request.volumeId }, { "syllabusId", quest.syllabusId }, { "volumeName", request.volumeName }, { "syllabusName", quest.syllabusName } }
+                                                 , _option.Location, _configuration, _dingDing, _environment.ContentRootPath);
                                 }
                                 await client.GetContainer(Constant.TEAMModelOS, "School").UpsertItemAsync<Syllabus>(syllabus, new PartitionKey($"Syllabus-{request.school}"));
                             }
@@ -215,6 +217,7 @@ namespace TEAMModelOS.Controllers
                             else if (request.opt.Equals("add") || request.opt.Equals("edit"))
                             {
                                 (Syllabus vlm, List<Share> shares) = DoAuth(request, syllabusD);
+                                string tmdid = "";
                                 foreach (var x in shares)
                                 {
                                     await client.GetContainer(Constant.TEAMModelOS, "Teacher").UpsertItemAsync<Share>(x, new PartitionKey($"{x.code}"));
@@ -225,13 +228,11 @@ namespace TEAMModelOS.Controllers
                                     {
                                         continue;
                                     }
-                                    string tmdid = x.code.Replace("Share-", "").Replace($"{x.type}-", "");
-                                    
-                                    Teacher targetTeacher = await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).ReadItemAsync<Teacher>($"{tmdid}", new PartitionKey($"Base"));
-                                    _coreAPIHttpService.PushNotify(new List<IdNameCode> { new IdNameCode { id = targetTeacher.id, name = targetTeacher.name, code = targetTeacher.lang } }, $"{x.type}_syllabus", Constant.NotifyType_IES5_Contect,
-                                                 new Dictionary<string, object> { { "tmdname", x.issuerName } , { "tmdid", x.issuer },  { "volumeId", x.volumeId }, { "syllabusId", x.id }, { "volumeName", x.volumeName }, { "syllabusName", x.syllabusName } }, _option.Location, _configuration, _dingDing, _environment.ContentRootPath);
-
+                                    tmdid = x.code.Replace("Share-", "").Replace($"{x.type}-", "");
                                 }
+                                Teacher targetTeacher = await client.GetContainer(Constant.TEAMModelOS, Constant.Teacher).ReadItemAsync<Teacher>($"{tmdid}", new PartitionKey($"Base"));
+                                _coreAPIHttpService.PushNotify(new List<IdNameCode> { new IdNameCode { id = targetTeacher.id, name = targetTeacher.name, code = targetTeacher.lang } }, $"{request.type}_syllabus", Constant.NotifyType_IES5_Contect,
+                                new Dictionary<string, object> { { "tmdname", request.issuerName }, { "tmdid", request.issuer }, { "volumeId", request.volumeId }, { "syllabusId", quest.syllabusId }, { "volumeName", request.volumeName }, { "syllabusName", quest.syllabusName } }, _option.Location, _configuration, _dingDing, _environment.ContentRootPath);
                                 await client.GetContainer(Constant.TEAMModelOS, "Teacher").UpsertItemAsync<Syllabus>(syllabusD, new PartitionKey($"Syllabus-{request.issuer}"));
                             }
                         }

+ 1 - 0
TEAMModelOS/Controllers/OpenApi/Business/BizCustomizeController.cs

@@ -425,6 +425,7 @@ namespace TEAMModelOS.Controllers
             StudentArtResult studentArtResult = new();
             var cosmosClient = _azureCosmos.GetCosmosClient();
             var ids = oAnswer.thirdAnswerId.Split("::");
+            await   _dingDing.SendBotMsg($"智音数据推送数据已接受\n参数:{jsonElement.ToJsonString()}", GroupNames.成都开发測試群組);
             if (ids.Length == 3)
             {
                 string artId = ids[0];