Pārlūkot izejas kodu

Merge branch 'develop5.0-tmd' of http://106.12.23.251:10000/TEAMMODEL/TEAMModelOS into develop5.0-tmd

zhouj1203@hotmail.com 3 gadi atpakaļ
vecāks
revīzija
997e31f7ac
100 mainītis faili ar 1580 papildinājumiem un 418 dzēšanām
  1. 72 17
      TEAMModeBI/Controllers/LoginController.cs
  2. BIN
      TEAMModeBI/Lib/topsdk-net-core.dll
  3. 10 0
      TEAMModeBI/TEAMModeBI.csproj
  4. 5 0
      TEAMModeBI/appsettings.Development.json
  5. 1 0
      TEAMModelFunction/TriggerSurvey.cs
  6. 37 0
      TEAMModelOS.SDK/Models/Cosmos/BI/DingDingUser.cs
  7. 0 2
      TEAMModelOS.SDK/Models/Cosmos/School/ExamInfo.cs
  8. 26 1
      TEAMModelOS.SDK/Models/Service/TriggerStuActivity.cs
  9. 0 6
      TEAMModelOS.SDK/TEAMModelOS.SDK.csproj
  10. 24 6
      TEAMModelOS/ClientApp/public/theme/dark-theme.css
  11. 5 1
      TEAMModelOS/ClientApp/src/api/learnActivity.js
  12. 1 1
      TEAMModelOS/ClientApp/src/api/schoolUser.js
  13. 44 9
      TEAMModelOS/ClientApp/src/common/BaseClassSelect.vue
  14. 1 0
      TEAMModelOS/ClientApp/src/common/BaseClassSelectPri.vue
  15. 14 14
      TEAMModelOS/ClientApp/src/common/BaseLayout.vue
  16. 3 3
      TEAMModelOS/ClientApp/src/common/BasePdSelect.vue
  17. 1 1
      TEAMModelOS/ClientApp/src/common/BaseUpload.vue
  18. 8 4
      TEAMModelOS/ClientApp/src/common/UploadModal.vue
  19. 1 1
      TEAMModelOS/ClientApp/src/components/coursemgt/StudentList.less
  20. 3 3
      TEAMModelOS/ClientApp/src/components/coursemgt/StudentList.vue
  21. 5 5
      TEAMModelOS/ClientApp/src/components/evaluation/ExerciseList.less
  22. 50 12
      TEAMModelOS/ClientApp/src/components/questionnaire/BaseQnForm.vue
  23. 1 1
      TEAMModelOS/ClientApp/src/components/questionnaire/BaseQuestionnaire.less
  24. 7 6
      TEAMModelOS/ClientApp/src/components/selflearn/ChooseContent.less
  25. 12 12
      TEAMModelOS/ClientApp/src/components/selflearn/NewChooseContent.vue
  26. 11 9
      TEAMModelOS/ClientApp/src/components/syllabus/DragTree.less
  27. 1 1
      TEAMModelOS/ClientApp/src/components/syllabus/DragTree.vue
  28. 1 1
      TEAMModelOS/ClientApp/src/components/syllabus/InviteTeacher.less
  29. 4 4
      TEAMModelOS/ClientApp/src/components/syllabus/InviteTeacher.vue
  30. 49 17
      TEAMModelOS/ClientApp/src/components/vote/BaseVoteForm.vue
  31. 1 1
      TEAMModelOS/ClientApp/src/css/common-style.less
  32. 7 5
      TEAMModelOS/ClientApp/src/css/custom-animate.less
  33. 2 0
      TEAMModelOS/ClientApp/src/locale/lang/en-US/answerSheet.js
  34. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/en-US/classMgmt.js
  35. 2 1
      TEAMModelOS/ClientApp/src/locale/lang/en-US/courseManage.js
  36. 25 9
      TEAMModelOS/ClientApp/src/locale/lang/en-US/cusMgt.js
  37. 18 8
      TEAMModelOS/ClientApp/src/locale/lang/en-US/evaluation.js
  38. 13 1
      TEAMModelOS/ClientApp/src/locale/lang/en-US/home.js
  39. 4 0
      TEAMModelOS/ClientApp/src/locale/lang/en-US/index.js
  40. 183 0
      TEAMModelOS/ClientApp/src/locale/lang/en-US/jyzx.js
  41. 9 1
      TEAMModelOS/ClientApp/src/locale/lang/en-US/knowledge.js
  42. 37 25
      TEAMModelOS/ClientApp/src/locale/lang/en-US/learnActivity.js
  43. 1 1
      TEAMModelOS/ClientApp/src/locale/lang/en-US/login.js
  44. 4 4
      TEAMModelOS/ClientApp/src/locale/lang/en-US/notice.js
  45. 36 0
      TEAMModelOS/ClientApp/src/locale/lang/en-US/notify.js
  46. 31 18
      TEAMModelOS/ClientApp/src/locale/lang/en-US/schoolBaseInfo.js
  47. 19 19
      TEAMModelOS/ClientApp/src/locale/lang/en-US/selflearn.js
  48. 1 1
      TEAMModelOS/ClientApp/src/locale/lang/en-US/serviceDriveAuth.js
  49. 47 40
      TEAMModelOS/ClientApp/src/locale/lang/en-US/settings.js
  50. 7 4
      TEAMModelOS/ClientApp/src/locale/lang/en-US/stuAccount.js
  51. 20 20
      TEAMModelOS/ClientApp/src/locale/lang/en-US/studentWeb.js
  52. 3 0
      TEAMModelOS/ClientApp/src/locale/lang/en-US/syllabus.js
  53. 14 13
      TEAMModelOS/ClientApp/src/locale/lang/en-US/system.js
  54. 0 1
      TEAMModelOS/ClientApp/src/locale/lang/en-US/talMgmt.js
  55. 11 11
      TEAMModelOS/ClientApp/src/locale/lang/en-US/task.js
  56. 7 3
      TEAMModelOS/ClientApp/src/locale/lang/en-US/teachContent.js
  57. 8 4
      TEAMModelOS/ClientApp/src/locale/lang/en-US/teachermgmt.js
  58. 2 3
      TEAMModelOS/ClientApp/src/locale/lang/en-US/tip.js
  59. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/en-US/totalAnalysis.js
  60. 1 1
      TEAMModelOS/ClientApp/src/locale/lang/en-US/unit.js
  61. 1 1
      TEAMModelOS/ClientApp/src/locale/lang/en-US/user.js
  62. 14 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/cusMgt.js
  63. 8 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/home.js
  64. 4 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/index.js
  65. 183 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/jyzx.js
  66. 13 2
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/learnActivity.js
  67. 36 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/notify.js
  68. 13 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/schoolBaseInfo.js
  69. 34 32
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/stuAccount.js
  70. 5 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/teachContent.js
  71. 3 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/classMgmt.js
  72. 2 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/courseManage.js
  73. 15 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/cusMgt.js
  74. 9 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/home.js
  75. 7 4
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/index.js
  76. 183 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/jyzx.js
  77. 1 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/knowledge.js
  78. 14 2
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/learnActivity.js
  79. 36 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/notify.js
  80. 13 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/schoolBaseInfo.js
  81. 1 3
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/serviceDriveAuth.js
  82. 1 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/settings.js
  83. 2 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/stuAccount.js
  84. 3 3
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/studentWeb.js
  85. 1 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/system.js
  86. 5 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/teachContent.js
  87. 4 4
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/teachermgmt.js
  88. 1 2
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/tip.js
  89. 1 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/totalAnalysis.js
  90. 9 0
      TEAMModelOS/ClientApp/src/router/routes.js
  91. 1 1
      TEAMModelOS/ClientApp/src/view/Home.vue
  92. 12 8
      TEAMModelOS/ClientApp/src/view/classmgt/ManageClass.vue
  93. 2 0
      TEAMModelOS/ClientApp/src/view/evaluation/bank/TestPaperList.less
  94. 6 1
      TEAMModelOS/ClientApp/src/view/evaluation/bank/index.less
  95. 4 4
      TEAMModelOS/ClientApp/src/view/evaluation/bank/index.vue
  96. 1 1
      TEAMModelOS/ClientApp/src/view/evaluation/components/BaseDiffPie.vue
  97. 14 1
      TEAMModelOS/ClientApp/src/view/evaluation/components/BaseExerciseList.vue
  98. 3 3
      TEAMModelOS/ClientApp/src/view/evaluation/components/BaseImport.vue
  99. 1 1
      TEAMModelOS/ClientApp/src/view/evaluation/components/BaseObjectivePie.vue
  100. 0 0
      TEAMModelOS/ClientApp/src/view/evaluation/components/BasePointPie.vue

+ 72 - 17
TEAMModeBI/Controllers/LoginController.cs

@@ -1,6 +1,10 @@
 using Azure.Cosmos;
 using Azure.Cosmos;
+using DingTalk.Api;
+using DingTalk.Api.Request;
+using DingTalk.Api.Response;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Configuration;
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
@@ -17,30 +21,81 @@ namespace TEAMModeBI.Controllers
     [ApiController]
     [ApiController]
     public class LoginController : ControllerBase
     public class LoginController : ControllerBase
     {
     {
-        private readonly AzureCosmosFactory _azureCosmos;
-        public LoginController(AzureCosmosFactory azureCosmos)
+        private readonly IConfiguration _configuration;
+        public LoginController(IConfiguration configuration)
         {
         {
-            _azureCosmos = azureCosmos;
-           
+            _configuration = configuration;     
         }
         }
 
 
-        /// <summary>
-        /// 修改教师信息
-        /// </summary>
-        /// <param name="request"></param>
-        /// <returns></returns>
+       /// <summary>
+       /// 钉钉扫描登录
+       /// </summary>
+       /// <param name="loginTmpCode"></param>
+       /// <returns></returns>
         [ProducesDefaultResponseType]
         [ProducesDefaultResponseType]
-        [HttpPost("dingding")]
-        public async Task<IActionResult> SetTeacherInfo(JsonElement request) {
-            var client = _azureCosmos.GetCosmosClient();
-            if (!request.TryGetProperty("code", out JsonElement _code))
+        [HttpGet("dingding")]
+        public IActionResult DingDingLogin(string loginTmpCode) 
+        {
+            string appKey = _configuration["appKey"];
+            string appSecret = _configuration["appSecret"];
+            string getuserinfo_bycode = _configuration["getuserinfo_bycode"];
+            //判断参数是否为空
+            if (string.IsNullOrEmpty(loginTmpCode))
+            {
+                return BadRequest("temp code error");
+            }
+            //获取access_token
+            DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
+            OapiGettokenRequest request = new OapiGettokenRequest();
+            request.Appkey = appKey;
+            request.Appsecret = appSecret;
+            request.SetHttpMethod("Get");
+            OapiGettokenResponse response = client.Execute(request);
+            if (response.IsError)
             {
             {
                 return BadRequest();
                 return BadRequest();
             }
             }
-
-
-            Teacher teacher = await client.GetContainer(Constant.TEAMModelOS, "Teacher").ReadItemAsync<Teacher>($"{_code}", new PartitionKey("Base"));
-            return Ok(new { teacher = teacher });
+            string access_token = response.AccessToken;
+            //获取临时授权码 获取授权用户的个人信息
+            DefaultDingTalkClient client1 = new DefaultDingTalkClient("https://oapi.dingtalk.com/sns/getuserinfo_bycode");
+            OapiSnsGetuserinfoBycodeRequest bycodeRequest = new OapiSnsGetuserinfoBycodeRequest()
+            {
+                //通过扫描二维码,跳转到指定的Url后,向Url中追加Code临时授权码
+                TmpAuthCode = loginTmpCode
+            };
+            OapiSnsGetuserinfoBycodeResponse bycodeResponse = client1.Execute(bycodeRequest, appKey, appSecret);
+            if (bycodeResponse.IsError)
+            {
+                return BadRequest();
+            }
+            //根据unionid获取userid
+            string unionid = bycodeResponse.UserInfo.Unionid;
+            DefaultDingTalkClient clientDingTalkClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/getbyunionid");
+            OapiUserGetbyunionidRequest byunionidRequest = new OapiUserGetbyunionidRequest()
+            {
+                Unionid = unionid
+            };
+            OapiUserGetbyunionidResponse byunionidResponse = clientDingTalkClient.Execute(byunionidRequest, access_token);
+            if (byunionidResponse.IsError)
+            {
+                return BadRequest();
+            }
+            string userid = byunionidResponse.Result.Userid;
+            //根据userId获取用户信息
+            DefaultDingTalkClient clientDingTalkClient2 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get");
+            OapiV2UserGetRequest getRequest = new OapiV2UserGetRequest()
+            {
+                Userid = userid,
+                Language="zh_CN"
+            };
+            getRequest.SetHttpMethod("Get");
+            OapiV2UserGetResponse getResponse = clientDingTalkClient2.Execute(getRequest, access_token);
+            if (getResponse.IsError) 
+            {
+                return BadRequest();
+            }
+            return Ok(getResponse);
         }
         }
+
     }
     }
 }
 }

BIN
TEAMModeBI/Lib/topsdk-net-core.dll


+ 10 - 0
TEAMModeBI/TEAMModeBI.csproj

@@ -25,6 +25,16 @@
     <ProjectReference Include="..\TEAMModelOS.SDK\TEAMModelOS.SDK.csproj" />
     <ProjectReference Include="..\TEAMModelOS.SDK\TEAMModelOS.SDK.csproj" />
   </ItemGroup>
   </ItemGroup>
 
 
+  <ItemGroup>
+    <Folder Include="Lib\" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="topsdk-net-core">
+      <HintPath>Lib\topsdk-net-core.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+
   <Target Name="DebugEnsureNodeEnv" BeforeTargets="Build" Condition=" '$(Configuration)' == 'Debug' And !Exists('$(SpaRoot)node_modules') ">
   <Target Name="DebugEnsureNodeEnv" BeforeTargets="Build" Condition=" '$(Configuration)' == 'Debug' And !Exists('$(SpaRoot)node_modules') ">
     <!-- Ensure Node.js is installed -->
     <!-- Ensure Node.js is installed -->
     <Exec Command="node --version" ContinueOnError="true">
     <Exec Command="node --version" ContinueOnError="true">

+ 5 - 0
TEAMModeBI/appsettings.Development.json

@@ -7,6 +7,11 @@
     }
     }
   },
   },
   "AllowedHosts": "*",
   "AllowedHosts": "*",
+  "DingDingAuth": {
+    "appKey": "dingrucgsnt8p13rfbgd",
+    "appSecret": "Gyx_N57yZslhQOAhAPlvmCwOp_qTm1DScKbd5OoOE0URAW4eViYA2Sk_ZxKb-8WG",
+    "getuserinfo_bycode": "https://oapi.dingtalk.com/sns/getuserinfo_bycode?accessKey=xxx&timestamp=xxx&signature=xxx"
+  },
   "Option": {
   "Option": {
     "Location": "China-Dep",
     "Location": "China-Dep",
     "LocationNum": "1",
     "LocationNum": "1",

+ 1 - 0
TEAMModelFunction/TriggerSurvey.cs

@@ -132,6 +132,7 @@ namespace TEAMModelFunction
                                     });
                                     });
                                 });
                                 });
                             }
                             }
+                           
                             await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
                             await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
                             //向学生或醍摩豆账号发起通知
                             //向学生或醍摩豆账号发起通知
                             #region
                             #region

+ 37 - 0
TEAMModelOS.SDK/Models/Cosmos/BI/DingDingUser.cs

@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace TEAMModelOS.SDK.Models.Cosmos.BI
+{
+   public class DingDingUser:CosmosEntity
+    {
+        public string name { get; set; }
+        public string picture { get; set; }
+        public List<School> schools { get; set; }
+        public class School
+        {
+            public string schoolId { get; set; }
+            public string name { get; set; }
+            public string status { get; set; }
+            public long time { get; set; }
+        }
+        public string phone { get; set; }
+        public string tmdid { get; set; }
+        public string stateCode { get; set; }
+        public string jobNumber { get; set; }
+        public string email { get; set; }
+        public string deptPositionListDeptId { get; set; }
+        public string deptPositionListTitle { get; set; }
+        public string hiredDate { get; set; }
+        public bool active { get; set; }
+        public List<rolelist> roleList { get; set; }
+        public class rolelist
+        {
+            public string id { get; set; }
+            public string name { get; set; }
+            public string groupName { get; set; } 
+        }
+
+    }
+}

+ 0 - 2
TEAMModelOS.SDK/Models/Cosmos/School/ExamInfo.cs

@@ -117,8 +117,6 @@ namespace TEAMModelOS.SDK.Models
         public string id { get; set; }
         public string id { get; set; }
         public string name { get; set; }
         public string name { get; set; }
         public int classCount { get; set; }
         public int classCount { get; set; }
-       
-
     }
     }
     public class PaperSimple { 
     public class PaperSimple { 
         public string id { get; set; }
         public string id { get; set; }

+ 26 - 1
TEAMModelOS.SDK/Models/Service/TriggerStuActivity.cs

@@ -15,7 +15,7 @@ using TEAMModelOS.SDK.Models.Cosmos.Common;
 using TEAMModelOS.SDK.Models.Service;
 using TEAMModelOS.SDK.Models.Service;
 using HTEXLib.COMM.Helpers;
 using HTEXLib.COMM.Helpers;
 
 
-namespace TEAMModelFunction
+namespace TEAMModelOS.SDK
 {
 {
     public class TriggerStuActivity
     public class TriggerStuActivity
     {
     {
@@ -208,6 +208,10 @@ namespace TEAMModelFunction
                     {
                     {
                         tmdids.AddRange(x.tmids);
                         tmdids.AddRange(x.tmids);
                     }
                     }
+                    if (x.teachers.IsNotEmpty())
+                    {
+                        tmdids.AddRange(x.teachers);
+                    }
                     classes.Remove(x.id);
                     classes.Remove(x.id);
                 }
                 }
                 foreach (var x in tchLists)
                 foreach (var x in tchLists)
@@ -233,6 +237,17 @@ namespace TEAMModelFunction
                     await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Student").GetItemQueryIterator<TmdInfo>(queryText: queryslt, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Base") }))
                     await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Student").GetItemQueryIterator<TmdInfo>(queryText: queryslt, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Base") }))
                     {
                     {
                         infos.Add(item);
                         infos.Add(item);
+                        tmdids.Remove(item.id);
+                    }
+                    if (tmdids.IsNotEmpty()) {
+                        inids = new List<string>();
+                        tmdids.ForEach(x => { inids.Add($"'{x}'"); });
+                        insql = string.Join(",", inids);
+                        queryslt = $"SELECT  value(c) FROM c where c.id in ({insql})";
+                        await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Teacher").GetItemQueryIterator<TmdInfo>(queryText: queryslt, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Base") }))
+                        {
+                            infos.Add(item);
+                        }
                     }
                     }
                     tmdinfos.AddRange(infos);
                     tmdinfos.AddRange(infos);
                 }
                 }
@@ -282,6 +297,16 @@ namespace TEAMModelFunction
                             }
                             }
                         });
                         });
                     }
                     }
+                    if (x.teachers.IsNotEmpty())
+                    {
+                        x.teachers.ForEach(y => {
+                            var tmdinfo = tmdinfos.Where(z => z.id.Equals(y)).FirstOrDefault();
+                            if (tmdinfo != null)
+                            {
+                                classListInfo.tmdInfos.Add(tmdinfo);
+                            }
+                        });
+                    }
                     classInfo.Add(classListInfo);
                     classInfo.Add(classListInfo);
                 });
                 });
                 tchLists.ForEach(x => {
                 tchLists.ForEach(x => {

+ 0 - 6
TEAMModelOS.SDK/TEAMModelOS.SDK.csproj

@@ -33,10 +33,4 @@
     <PackageReference Include="Microsoft.Azure.Cosmos.Table" Version="2.0.0-preview" />
     <PackageReference Include="Microsoft.Azure.Cosmos.Table" Version="2.0.0-preview" />
     <PackageReference Include="System.Net.Http.Json" Version="5.0.0" />
     <PackageReference Include="System.Net.Http.Json" Version="5.0.0" />
   </ItemGroup>
   </ItemGroup>
-
-
-
-  <ItemGroup>
-    <Folder Include="Models\Cosmos\Bi\" />
-  </ItemGroup>
 </Project>
 </Project>

+ 24 - 6
TEAMModelOS/ClientApp/public/theme/dark-theme.css

@@ -1,21 +1,39 @@
 :root {
 :root {
     --header-bg: #1E1F21;
     --header-bg: #1E1F21;
     --side-bg: #1E1F21;
     --side-bg: #1E1F21;
-    --body-bg: #2B2B2E;
-    --border-color: #606060; /*边框颜色*/
     --primary-color: #1cc0f3; /*主题色*/
     --primary-color: #1cc0f3; /*主题色*/
     --font-size-large: 16px; /*大号字体*/
     --font-size-large: 16px; /*大号字体*/
     --font-size-normal: 14px; /*中号字体*/
     --font-size-normal: 14px; /*中号字体*/
     --font-size-small: 12px; /*小号字体*/
     --font-size-small: 12px; /*小号字体*/
     --font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; /*字体*/
     --font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; /*字体*/
-    --primary-text-color: #fff; /*文本主颜色*/
-    --label-text-color: #a5a5a5; /*标签颜色*/
-    --hover-text-color: #2db7f5; /*hover颜色*/
-    --active-item-start: #1E1E1E; /*选中状态渐变*/
     --active-item-center: #4E4E4E;
     --active-item-center: #4E4E4E;
     --active-item-end: #6E6E6E;
     --active-item-end: #6E6E6E;
     --top-height: 45px; /*列表头部高度*/
     --top-height: 45px; /*列表头部高度*/
     --box-padding-left: 15px; /*区域padding-left*/
     --box-padding-left: 15px; /*区域padding-left*/
+
+    /* ========================= 修改 ===========================*/
+    --body-bg: #FDFDFD; /* 主背景色 */
+
+    --primary-text-color: #303030; /* 文本主颜色 */
+    --second-text-color: #757575; /* 文本副颜色 */
+
+    --border-color: #f1f1f1; /*边框颜色*/
+    
+    --label-text-color: #a5a5a5; /*标签颜色*/
+
+    --hover-text-color: #E1EFF6; /*hover颜色*/
+    --active-item-start: #E1EFF6; /*选中状态*/
+
+    --normal-icon-color: #40A8F0; /* Icon基本颜色 */
+
+    --tabs-bottom-color: #006ee6; /* tab切换,底部颜色,左边时,padding-left = 10px */
+
+    --card-shadow: #ececec; /* 卡片阴影 */
+
+    --input-bg-color: #f5f5f5; /* 输入框背景色 */
+
+    --assist-color-light: #70B1E7; /* 辅助颜色 */
+    --assist-color-dark: #80B2C9; /* 辅助颜色 */
 }
 }
 
 
 
 

+ 5 - 1
TEAMModelOS/ClientApp/src/api/learnActivity.js

@@ -311,6 +311,10 @@ export default {
     //查询活动统计和进行中的活动
     //查询活动统计和进行中的活动
     ActivityCount: function (data) {
     ActivityCount: function (data) {
         return post('/teacher/comment/tch-activity-count', data)
         return post('/teacher/comment/tch-activity-count', data)
-    }
+    },
+	//查询教研组名单
+	findResearchList: function (data) {
+	    return post('/tchlist/find-list-members', data)
+	},
 
 
 }
 }

+ 1 - 1
TEAMModelOS/ClientApp/src/api/schoolUser.js

@@ -28,6 +28,6 @@ export default {
     },
     },
     // 查询教研组
     // 查询教研组
     getResearchGroup: function (data) {
     getResearchGroup: function (data) {
-        return post('/stulist/get-research-list', data)
+        return post('/tchlist/get-research-list', data)
     },
     },
 }
 }

+ 44 - 9
TEAMModelOS/ClientApp/src/common/BaseClassSelect.vue

@@ -1,14 +1,21 @@
 <template>
 <template>
 	<div class="base-class-select dark-el-cascader">
 	<div class="base-class-select dark-el-cascader">
-		<el-cascader v-model="defaultArr" ref="demoCascader" :key="modelKey" :props="props" :options="csOptions" @change="treeChange" :show-all-levels="false" clearable popper-class="myCascader"
+		<RadioGroup v-model="targetType" @on-change="onTargetTypeChange" style="margin-bottom: 10px;">
+		    <Radio label="research">{{ $t('teachermgmt.page.text3') }}</Radio>
+		    <Radio label="student">{{ $t('courseManage.classroom.studentList')}}</Radio>
+		</RadioGroup>
+		<el-cascader v-if="targetType === 'student'" v-model="defaultArr" ref="demoCascader" :key="modelKey" :props="props" :options="csOptions" @change="treeChange" :show-all-levels="false" clearable popper-class="myCascader"
 			filterable></el-cascader>
 			filterable></el-cascader>
+		<Select v-model="groupArr" multiple v-if="targetType === 'research'" @on-change="onGroupChange">
+			<Option v-for="(item, index) in groupList" :value="item.id" :key="index">{{ item.name }}</Option>
+		</Select>	
 	</div>
 	</div>
 </template>
 </template>
 
 
 <script>
 <script>
 	export default {
 	export default {
 		props:{
 		props:{
-			scope:{
+			type:{
 				type:String,
 				type:String,
 				default:'school'
 				default:'school'
 			},
 			},
@@ -19,6 +26,9 @@
 		},
 		},
 		data() {
 		data() {
 			return {
 			return {
+				groupArr:[],
+				groupList:[],
+				targetType:'research',
 				defaultArr:[],
 				defaultArr:[],
 				evaluationInfo: {
 				evaluationInfo: {
 				    scope: 'school'
 				    scope: 'school'
@@ -40,8 +50,28 @@
 		},
 		},
 		created() {
 		created() {
 			this.findStuList()
 			this.findStuList()
+			this.findResearchList()
 		},
 		},
 		methods: {
 		methods: {
+			/* 查找学校检验组信息 */
+			findResearchList(){
+				this.$api.schoolUser.getResearchGroup({
+					code:this.$store.state.userInfo.schoolCode,
+					scope:'school'
+				}).then(res => {
+					this.groupList = res.stuList
+				})
+			},
+			/* 选择教研组发生变化 */
+			onGroupChange(){
+				this.$emit('onChange', this.groupArr)
+			},
+			/* 发布对象流程发生变化 */
+			onTargetTypeChange(val){
+				this.defaultArr = []
+				this.groupArr = []
+				this.targetType = val
+			},
 			changeLabel(val) {
 			changeLabel(val) {
 			  // 是否与上次的类型相同
 			  // 是否与上次的类型相同
 			  let changeFlag = false
 			  let changeFlag = false
@@ -78,12 +108,12 @@
 					let schoolClasses = this.$store.state.user.schoolProfile.school_classes
 					let schoolClasses = this.$store.state.user.schoolProfile.school_classes
 					data = [{
 					data = [{
 							id: 'class',
 							id: 'class',
-							name: '行政班',
+							name: this.$t('stuAccount.adminClass'),
 							children: []
 							children: []
 						},
 						},
 						{
 						{
 							id: 'stulist',
 							id: 'stulist',
-							name: '教学班',
+							name: this.$t('stuAccount.teachClass'),
 							children: []
 							children: []
 						}
 						}
 					]
 					]
@@ -102,7 +132,7 @@
 						curPd.grades.forEach((item, index) => {
 						curPd.grades.forEach((item, index) => {
 							let dataItem = {
 							let dataItem = {
 								id: index, //年级使用index
 								id: index, //年级使用index
-								name: `${item}(${curYear - index})`,
+								name: `${item}(${curYear - index}${this.$t('unit.gradeYear')})`,
 								year: curYear - index,
 								year: curYear - index,
 								children: []
 								children: []
 							}
 							}
@@ -203,11 +233,16 @@
 			classes:{
 			classes:{
 				handler(n,o){
 				handler(n,o){
 					if(n.length){
 					if(n.length){
+						this.targetType = this.type
 						setTimeout(() => {
 						setTimeout(() => {
-							this.defaultArr = n
-							this.preCheckList = n
-							this.modelKey++
-						},500)
+							if(this.type === 'research'){
+								this.groupArr = n
+							}else{
+								this.defaultArr = n
+								this.preCheckList = n
+								this.modelKey++
+							}
+						},200)
 					}
 					}
 				},
 				},
 				immediate:true,
 				immediate:true,

+ 1 - 0
TEAMModelOS/ClientApp/src/common/BaseClassSelectPri.vue

@@ -124,6 +124,7 @@ export default {
 		classes:{
 		classes:{
 			handler(n,o){
 			handler(n,o){
 				if(n.length){
 				if(n.length){
+					console.log('个人班级接收',n);
 					setTimeout(() => {
 					setTimeout(() => {
 						this.defaultArr = n
 						this.defaultArr = n
 						this.preCheckList = n
 						this.preCheckList = n

+ 14 - 14
TEAMModelOS/ClientApp/src/common/BaseLayout.vue

@@ -575,32 +575,32 @@ export default {
                         {
                         {
                             icon: 'iconfont icon-test',
                             icon: 'iconfont icon-test',
                             name: this.$t('system.menu.trainCount'),
                             name: this.$t('system.menu.trainCount'),
-                            router: '',
+                            router: '/home/jyHome',
                             tag: '',
                             tag: '',
                             role: 'teacher|admin',
                             role: 'teacher|admin',
                             permission: '',
                             permission: '',
-                            menuName: '',
-                            isShow: false
+                            menuName: 'jyHome',
+                            isShow: true
                         },
                         },
                         {
                         {
                             icon: 'iconfont icon-test',
                             icon: 'iconfont icon-test',
                             name: this.$t('system.menu.onlineTrain'),
                             name: this.$t('system.menu.onlineTrain'),
-                            router: '',
+                            router: '/home/online',
                             tag: '',
                             tag: '',
                             role: 'teacher|admin',
                             role: 'teacher|admin',
                             permission: '',
                             permission: '',
-                            menuName: '',
-                            isShow: false
+                            menuName: 'online',
+                            isShow: true
                         },
                         },
                         {
                         {
                             icon: 'iconfont icon-test',
                             icon: 'iconfont icon-test',
                             name: this.$t('system.menu.scTrain'),
                             name: this.$t('system.menu.scTrain'),
-                            router: '',
+                            router: '/home/offline',
                             tag: '',
                             tag: '',
                             role: 'teacher|admin',
                             role: 'teacher|admin',
                             permission: '',
                             permission: '',
-                            menuName: '',
-                            isShow: false
+                            menuName: 'offline',
+                            isShow: true
                         },
                         },
                         {
                         {
                             icon: 'iconfont icon-test',
                             icon: 'iconfont icon-test',
@@ -625,16 +625,16 @@ export default {
                         {
                         {
                             icon: 'iconfont icon-test',
                             icon: 'iconfont icon-test',
                             name: this.$t('system.menu.discuss'),
                             name: this.$t('system.menu.discuss'),
-                            router: '',
+                            router: '/home/discuss',
                             tag: '',
                             tag: '',
                             role: 'teacher|admin',
                             role: 'teacher|admin',
                             permission: '',
                             permission: '',
-                            menuName: '',
-                            isShow: false
+                            menuName: 'discuss',
+                            isShow: true
                         },
                         },
 						{
 						{
 							icon: 'iconfont icon-vote',
 							icon: 'iconfont icon-vote',
-							name: '投票活动',
+                            name: this.$t('system.menu.scVote'),
 							router: '/home/privateVote',
 							router: '/home/privateVote',
 							tag: '',
 							tag: '',
 							role: 'admin|teacher',
 							role: 'admin|teacher',
@@ -645,7 +645,7 @@ export default {
 						},
 						},
 						{
 						{
 							icon: 'iconfont icon-questionnaire',
 							icon: 'iconfont icon-questionnaire',
-							name: '问卷调查',
+                            name: this.$t('system.menu.scQu'),
 							router: '/home/privateQuestionnaire',
 							router: '/home/privateQuestionnaire',
 							tag: '',
 							tag: '',
 							role: 'admin|teacher',
 							role: 'admin|teacher',

+ 3 - 3
TEAMModelOS/ClientApp/src/common/BasePdSelect.vue

@@ -75,12 +75,12 @@ export default {
         font-size: 14px;
         font-size: 14px;
     }
     }
     .ivu-select-dropdown {
     .ivu-select-dropdown {
-        background-color: #2d2d2d;
+        // background-color: #2d2d2d;
         border-radius: 2px;
         border-radius: 2px;
-        border: 1px #464646 solid;
+        // border: 1px #464646 solid;
         .ivu-dropdown-menu {
         .ivu-dropdown-menu {
             li {
             li {
-                color: #ccc;
+                // color: #ccc;
                 font-size: 12px !important;
                 font-size: 12px !important;
                 &:hover {
                 &:hover {
                     color: #2d2d2d;
                     color: #2d2d2d;

+ 1 - 1
TEAMModelOS/ClientApp/src/common/BaseUpload.vue

@@ -3,7 +3,7 @@
 		<Upload multiple type="drag" action="" :before-upload="onBeforeUpload" :show-upload-list="false">
 		<Upload multiple type="drag" action="" :before-upload="onBeforeUpload" :show-upload-list="false">
 			<div style="padding: 40px 0">
 			<div style="padding: 40px 0">
 				<Icon type="ios-cloud-upload" size="100"
 				<Icon type="ios-cloud-upload" size="100"
-					style="color: #848484;margin: 40px 0;"></Icon>
+					style="color: #40A8F0;margin: 40px 0;"></Icon>
 				<p style="color: #ddd">{{ $t("knowledge.import.tip1") }}</p>
 				<p style="color: #ddd">{{ $t("knowledge.import.tip1") }}</p>
 				<p style="color: #ddd" v-if="acceptTypes.length">({{ $t("knowledge.import.tip2") }}:{{ acceptTypes.join(' / ') }})</p>
 				<p style="color: #ddd" v-if="acceptTypes.length">({{ $t("knowledge.import.tip2") }}:{{ acceptTypes.join(' / ') }})</p>
 			</div>
 			</div>

+ 8 - 4
TEAMModelOS/ClientApp/src/common/UploadModal.vue

@@ -1,5 +1,5 @@
 <template>
 <template>
-    <Modal v-model="uploadStatus" :ok-text="textLoading ? $t('updModal.uploading') : isComplete ? $t('updModal.complete'):$t('updModal.comfirmUpd')" :cancel-text="$t('updModal.cancelUpd')" :title="$t('teachContent.btnUpload')" class="upload-modal dark-iview-modal" width="900" :mask-closable="false" :closable="false" @on-ok="modalOk" @on-cancel="modalCancel" :loading="modalLoading">
+    <Modal v-model="uploadStatus" :ok-text="textLoading ? $t('updModal.uploading') : isComplete ? $t('updModal.complete'):$t('updModal.comfirmUpd')" :cancel-text="$t('updModal.cancelUpd')" :title="$t('teachContent.btnUpload')" class="upload-modal" width="900" :mask-closable="false" :closable="false" @on-ok="modalOk" @on-cancel="modalCancel" :loading="modalLoading">
         <div class="upload-file-box">
         <div class="upload-file-box">
             <ResBelong v-if="$store.state.userInfo.hasSchool" @tag-change="getResTags" v-show="routerScope == 'school'" showLabel class="upd-to-pd" :pdId="pdId"></ResBelong>
             <ResBelong v-if="$store.state.userInfo.hasSchool" @tag-change="getResTags" v-show="routerScope == 'school'" showLabel class="upd-to-pd" :pdId="pdId"></ResBelong>
             <Upload type="drag" action="" :show-upload-list="false" multiple :before-upload="customUpload" class="upload-wrap" :disabled="textLoading">
             <Upload type="drag" action="" :show-upload-list="false" multiple :before-upload="customUpload" class="upload-wrap" :disabled="textLoading">
@@ -42,7 +42,7 @@
                             </span>
                             </span>
                             <span>{{item.name}}</span>
                             <span>{{item.name}}</span>
                         </p>
                         </p>
-                        <span class="upload-info-wrap" style="color:white;">
+                        <span class="upload-info-wrap">
                             {{parseInt(item.loadedBytes * 100 / item.size)+'%'}}
                             {{parseInt(item.loadedBytes * 100 / item.size)+'%'}}
                         </span>
                         </span>
                         <span class="upload-info-wrap">
                         <span class="upload-info-wrap">
@@ -586,7 +586,7 @@ export default {
     margin-top: 60px;
     margin-top: 60px;
 }
 }
 .upload-file-item {
 .upload-file-item {
-    color: #909090;
+    color: var(--primary-text-color);
     margin-top: 5px;
     margin-top: 5px;
     padding: 5px 2px 0px 5px;
     padding: 5px 2px 0px 5px;
     display: flex;
     display: flex;
@@ -619,7 +619,7 @@ export default {
 }
 }
 .upload-file-name {
 .upload-file-name {
     display: inline-block;
     display: inline-block;
-    color: #eeeeee;
+    /* color: #eeeeee; */
     line-height: 30px;
     line-height: 30px;
 }
 }
 
 
@@ -668,4 +668,8 @@ export default {
     background-color: initial;
     background-color: initial;
     border-color: #0094ff;
     border-color: #0094ff;
 }
 }
+
+.upload-item-left .ivu-progress-inner{
+    background: #d8d8d8;
+}
 </style>
 </style>

+ 1 - 1
TEAMModelOS/ClientApp/src/components/coursemgt/StudentList.less

@@ -15,7 +15,7 @@
 .student-filter-wrap{
 .student-filter-wrap{
     margin-bottom:10px;
     margin-bottom:10px;
     display: flex;
     display: flex;
-    justify-content: flex-end;
+    // justify-content: flex-end;
     color: #a5a5a5;
     color: #a5a5a5;
 }
 }
 .name-header {
 .name-header {

+ 3 - 3
TEAMModelOS/ClientApp/src/components/coursemgt/StudentList.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
-    <div class="dark-iview-table student-list">
-        <div class="student-filter-wrap dark-iview-select dark-iview-input">
+    <div class="student-list">
+        <div class="student-filter-wrap">
             <span style="margin-top:6px">{{$t('stuAccount.filterLabel')}}</span>
             <span style="margin-top:6px">{{$t('stuAccount.filterLabel')}}</span>
             <!-- 學制Select -->
             <!-- 學制Select -->
             <Select v-model="searchPeriod" style="width:120px;" :placeholder="$t('stuAccount.periodHolder')" @on-change="filterData" :not-found-text="$t('stuAccount.noSchool')">
             <Select v-model="searchPeriod" style="width:120px;" :placeholder="$t('stuAccount.periodHolder')" @on-change="filterData" :not-found-text="$t('stuAccount.noSchool')">
@@ -18,7 +18,7 @@
             <!-- 字串模糊搜尋 -->
             <!-- 字串模糊搜尋 -->
             <Input v-model="searchText" clearable :placeholder="$t('stuAccount.searchHolder')" style="width: 220px;margin-left:20px;" search @on-search="filterData" @on-clear="filterData"></Input>
             <Input v-model="searchText" clearable :placeholder="$t('stuAccount.searchHolder')" style="width: 220px;margin-left:20px;" search @on-search="filterData" @on-clear="filterData"></Input>
         </div>
         </div>
-        <div class="dark-iview-table" style="position:relative">
+        <div style="position:relative">
             <Scroll :on-reach-bottom="scrollLoad" height="600" :distance-to-edge="[15,15]">
             <Scroll :on-reach-bottom="scrollLoad" height="600" :distance-to-edge="[15,15]">
                 <Table ref="stuSelection" :columns="tableColumns" :data="tableShowData" @on-selection-change="getSelectInfo">
                 <Table ref="stuSelection" :columns="tableColumns" :data="tableShowData" @on-selection-change="getSelectInfo">
                     <template slot-scope="{ row,index }" slot="status">
                     <template slot-scope="{ row,index }" slot="status">

+ 5 - 5
TEAMModelOS/ClientApp/src/components/evaluation/ExerciseList.less

@@ -42,11 +42,11 @@
     justify-content: center;
     justify-content: center;
     margin: 20px 0;
     margin: 20px 0;
     color: #fff;
     color: #fff;
-	position: fixed;
-	bottom: 5px;
-	background: #00000096;
-	width: 100%;
-	padding: 10px;
+    position: fixed;
+    bottom: 5px;
+    background: #c7c7c7;
+    width: 100%;
+    padding: 10px;
   }
   }
 }
 }
 .ev-list-operation {
 .ev-list-operation {

+ 50 - 12
TEAMModelOS/ClientApp/src/components/questionnaire/BaseQnForm.vue

@@ -20,7 +20,7 @@
 						:key="index">{{ item.name }}</Option>
 						:key="index">{{ item.name }}</Option>
 				</Select> -->
 				</Select> -->
 				<div v-else>
 				<div v-else>
-					<BaseClassSelect :classes="classTargets" @onChange="onTargetChange" ref="classSelectRef" v-if="getCurScope === 'school' && curQnItem"></BaseClassSelect>
+					<BaseClassSelect :classes="classTargets" :type="targetType" @onChange="onTargetChange" ref="classSelectRef" v-if="getCurScope === 'school' && curQnItem"></BaseClassSelect>
 					<BaseClassSelectPri :classes="classTargets" :scope="classType" @onChange="onTargetChange" ref="classSelectRef" v-if="getCurScope === 'private' && curQnItem"></BaseClassSelectPri>
 					<BaseClassSelectPri :classes="classTargets" :scope="classType" @onChange="onTargetChange" ref="classSelectRef" v-if="getCurScope === 'private' && curQnItem"></BaseClassSelectPri>
 				</div>
 				</div>
 			</FormItem>
 			</FormItem>
@@ -169,10 +169,25 @@
 					    return data && data > date.valueOf() + 86400000
 					    return data && data > date.valueOf() + 86400000
 					}
 					}
 				},
 				},
-				classIds:[]
+				classIds:[],
+				groupList:[],
+				targetType:''
 			}
 			}
 		},
 		},
+		created() {
+			this.findResearchList()
+		},
 		methods: {
 		methods: {
+			/* 查找学校检验组信息 */
+			findResearchList(){
+				this.$api.schoolUser.getResearchGroup({
+					code:this.$store.state.userInfo.schoolCode,
+					scope:'school'
+				}).then(res => {
+					this.groupList = res.stuList
+				})
+			},
+			
 			onClassTypeChange(val) {
 			onClassTypeChange(val) {
 				this.qnForm.classes = []
 				this.qnForm.classes = []
 			},
 			},
@@ -211,12 +226,12 @@
 				return new Promise((resolve, reject) => {
 				return new Promise((resolve, reject) => {
 					this.$refs[name].validate((valid) => {
 					this.$refs[name].validate((valid) => {
 						if (valid && this.getSimpleText(this.qnForm.description) && this.qnForm.classes.length) {
 						if (valid && this.getSimpleText(this.qnForm.description) && this.qnForm.classes.length) {
-							console.log('1111111111')
 							let params = JSON.parse(JSON.stringify(this.defaultParams))
 							let params = JSON.parse(JSON.stringify(this.defaultParams))
 							let target = []
 							let target = []
 							let classSelectScope = this.$refs.classSelectRef.evaluationInfo.scope
 							let classSelectScope = this.$refs.classSelectRef.evaluationInfo.scope
 							let isSchoolClass = this.$refs.classSelectRef.evaluationInfo.scope === 'school' && this.$refs.classSelectRef.privateClassType === 'school'
 							let isSchoolClass = this.$refs.classSelectRef.evaluationInfo.scope === 'school' && this.$refs.classSelectRef.privateClassType === 'school'
 							let isPersonal = this.$route.name === 'personalSurvey' && classSelectScope  === 'private'
 							let isPersonal = this.$route.name === 'personalSurvey' && classSelectScope  === 'private'
+							let isSchool = this.$route.name === 'manageQuestionnaire'
 							params.code = this.getCurCode
 							params.code = this.getCurCode
 							// 如果个人问卷的班级是校本班级 那么也要把scope置为school
 							// 如果个人问卷的班级是校本班级 那么也要把scope置为school
 							params.scope = isPersonal ? 'private' : 'school'
 							params.scope = isPersonal ? 'private' : 'school'
@@ -231,6 +246,10 @@
 							params.creatorId = this.$store.state.userInfo.TEAMModelId
 							params.creatorId = this.$store.state.userInfo.TEAMModelId
 							params.school = params.scope === 'school' ? this.$store.state.userInfo
 							params.school = params.scope === 'school' ? this.$store.state.userInfo
 								.schoolCode : null
 								.schoolCode : null
+								
+							params.tchLists = []
+							params.classes = []
+							params.stuLists = []	
 							// 如果是编辑状态 则直接复制ID 如果是新增 则直接赋值新ID
 							// 如果是编辑状态 则直接复制ID 如果是新增 则直接赋值新ID
 							if (this.isEdit && this.editInfo.id && this.editInfo.code) {
 							if (this.isEdit && this.editInfo.id && this.editInfo.code) {
 								params.id = this.editInfo.id
 								params.id = this.editInfo.id
@@ -238,10 +257,16 @@
 							} else {
 							} else {
 								params.id = this.$tools.guid()
 								params.id = this.$tools.guid()
 							}
 							}
-							if(isSchoolClass){
+							// 如果是校本投票 则需要进一步确定发布对象是教研组还是学生名单
+							if(isSchool && this.$refs.classSelectRef.targetType === 'research'){
+								params.tchLists = this.qnForm.classes
+								params.targetType = 'research'
+							}else if(isSchoolClass){
 								params.classes = this.qnForm.classes
 								params.classes = this.qnForm.classes
+								params.targetType = 'student'
 							}else{
 							}else{
 								params.stuLists = this.qnForm.classes
 								params.stuLists = this.qnForm.classes
+								params.targetType = 'student'
 							}
 							}
 							console.log(params)
 							console.log(params)
 							resolve(params)
 							resolve(params)
@@ -319,27 +344,40 @@
 			 */
 			 */
 			async doRender(item) {
 			async doRender(item) {
 				console.log(item)
 				console.log(item)
-				if(item.id){
-					this.classNameArr = item.classes.length ? await this.getClassNameByIds(item.classes) : await this.getClassNameByIds(item.stuLists)
+				// if(item.id){
+				// 	this.classNameArr = item.classes.length ? await this.getClassNameByIds(item.classes) : await this.getClassNameByIds(item.stuLists)
+				// }
+				if(item.targetType === 'research'){
+					console.log(this.groupList);
+					let groupNameArr = []
+					item.tchLists.forEach(i => {
+						let findObj = this.groupList.find(j => j.id === i)
+						if(findObj){
+							groupNameArr.push(findObj)
+						}
+					})
+					this.classNameArr = groupNameArr
+				}else{
+					this.classNameArr = item.classes.length ? await this.getClassNameByIds(item.classes) : item.stuLists.length ? await this.getClassNameByIds(item.stuLists) : []
 				}
 				}
-				this.classTargets = this.getCurScope === 'private' ? item.targets : item.classes.length ? item.classes : item.stuLists
+				console.log(this.classNameArr);
+				this.classTargets = item.targetType === 'research' ? item.tchLists :  this.getCurScope === 'school' ? item.classes : item.targets
 				this.classType = item.classes.length ? 'school' : 'private'
 				this.classType = item.classes.length ? 'school' : 'private'
+				this.targetType = item.targetType
 				this.qnForm = {
 				this.qnForm = {
 					name: item.name,
 					name: item.name,
-					classes: this.classTargets || [],
+					targets:item.targets,
+					classes: item.targetType === 'research' ? item.tchLists : item.classes.length ? item.classes : item.stuLists,
 					startTime: item.startTime ? new Date(item.startTime) : '',
 					startTime: item.startTime ? new Date(item.startTime) : '',
 					endTime: item.endTime ? new Date(item.endTime) : '',
 					endTime: item.endTime ? new Date(item.endTime) : '',
 					description: item.description,
 					description: item.description,
 					rangeTime: item.endTime ? [item.startTime, item.endTime] : null
 					rangeTime: item.endTime ? [item.startTime, item.endTime] : null
 				}
 				}
+				console.log(this.qnForm)
 				this.isImmediate = false
 				this.isImmediate = false
 				this.currentState = item.state
 				this.currentState = item.state
 				this.$nextTick(() => {
 				this.$nextTick(() => {
 					this.curQnItem = JSON.parse(JSON.stringify(item))
 					this.curQnItem = JSON.parse(JSON.stringify(item))
-					// if (item.classes.length) {
-					// 	let isExist = this.classRooms.filter(i => i.id === item.classes[0])
-					// 	this.classType = isExist ? isExist[0].scope : 'private'
-					// }
 					this.$refs.qnForm.validateField('name')
 					this.$refs.qnForm.validateField('name')
 					this.$refs.qnForm.validateField('classes')
 					this.$refs.qnForm.validateField('classes')
 					this.$refs.qnForm.validateField('description')
 					this.$refs.qnForm.validateField('description')

+ 1 - 1
TEAMModelOS/ClientApp/src/components/questionnaire/BaseQuestionnaire.less

@@ -12,7 +12,7 @@
     height: 100%;
     height: 100%;
 	min-height: 100vh;
 	min-height: 100vh;
     background: #fff;
     background: #fff;
-    padding: 30px 6%;
+    // padding: 30px 6%;
 	padding-bottom: 100px;
 	padding-bottom: 100px;
 	font-family: 'NotoSerif', '微软正黑体', 'Microsoft JhengHei UI', 'Microsoft JhengHei', Sans-serif;
 	font-family: 'NotoSerif', '微软正黑体', 'Microsoft JhengHei UI', 'Microsoft JhengHei', Sans-serif;
 
 

+ 7 - 6
TEAMModelOS/ClientApp/src/components/selflearn/ChooseContent.less

@@ -1,7 +1,7 @@
 @main-bgColor: rgb(40,40,40); //��������ɫ
 @main-bgColor: rgb(40,40,40); //��������ɫ
-@borderColor: #424242;
-@primary-textColor: #fff; //�ı�����ɫ
-@second-textColor: #a5a5a5; //�ı�������ɫ
+@borderColor: var(--border-color);
+@primary-textColor: var(--primary-text-color); //�ı�����ɫ
+@second-textColor: var(--second-text-color); //�ı�������ɫ
 @primary-fontSize: 14px;
 @primary-fontSize: 14px;
 @second-fontSize: 16px;
 @second-fontSize: 16px;
 
 
@@ -27,9 +27,9 @@
     
     
     .content-filter-wrap {
     .content-filter-wrap {
       width: 100%;
       width: 100%;
-      border-bottom: 1px solid #606060;
+      border-bottom: 1px solid @borderColor;
       padding-left: 15px;
       padding-left: 15px;
-      color: white;
+      color: @primary-textColor;
       position: relative;
       position: relative;
 
 
       .content-filter-item {
       .content-filter-item {
@@ -37,7 +37,7 @@
       }
       }
 
 
       .content-filter-label {
       .content-filter-label {
-        color: white;
+        color: @second-textColor;
         display: inline-block;
         display: inline-block;
         width: 90px;
         width: 90px;
       }
       }
@@ -151,4 +151,5 @@
     display: inline-block;
     display: inline-block;
     margin-left:8px;
     margin-left:8px;
     vertical-align: text-bottom;
     vertical-align: text-bottom;
+    color: @primary-textColor;
 }
 }

+ 12 - 12
TEAMModelOS/ClientApp/src/components/selflearn/NewChooseContent.vue

@@ -691,19 +691,19 @@ export default {
 }
 }
 
 
 .choose-content .ivu-tabs-bar {
 .choose-content .ivu-tabs-bar {
-    border-color: #404040;
+    border-color: var(--border-color);
 }
 }
 
 
 .choose-content .ivu-tabs.ivu-tabs-card > .ivu-tabs-bar .ivu-tabs-tab {
 .choose-content .ivu-tabs.ivu-tabs-card > .ivu-tabs-bar .ivu-tabs-tab {
-    border: none;
-    background-color: transparent;
-    color: white;
+    // border: none;
+    // background-color: transparent;
+    // color: white;
     margin-right: 2px;
     margin-right: 2px;
 }
 }
 
 
 .choose-content .ivu-tabs.ivu-tabs-card > .ivu-tabs-bar .ivu-tabs-tab-active {
 .choose-content .ivu-tabs.ivu-tabs-card > .ivu-tabs-bar .ivu-tabs-tab-active {
-    background-color: #606060;
-    color: white;
+    // background-color: #606060;
+    // color: white;
     font-weight: 600;
     font-weight: 600;
 }
 }
 
 
@@ -748,9 +748,9 @@ export default {
 .file-content-wrap .ivu-table td,
 .file-content-wrap .ivu-table td,
 .file-content-wrap .ivu-table th,
 .file-content-wrap .ivu-table th,
 .content-file-list .ivu-table:before {
 .content-file-list .ivu-table:before {
-    background: none;
-    color: white;
-    border-color: #424242;
+    // background: none;
+    // color: white;
+    // border-color: #424242;
 }
 }
 
 
 .file-content-wrap .ivu-table-row-hover .item-tools {
 .file-content-wrap .ivu-table-row-hover .item-tools {
@@ -767,9 +767,9 @@ export default {
 }
 }
 
 
 .content-filter-wrap .ivu-input {
 .content-filter-wrap .ivu-input {
-    background: none;
-    color: white;
-    border-color: #606060;
+    // background: none;
+    // color: white;
+    // border-color: #606060;
     border-radius: 15px;
     border-radius: 15px;
 }
 }
 
 

+ 11 - 9
TEAMModelOS/ClientApp/src/components/syllabus/DragTree.less

@@ -10,14 +10,14 @@
   }
   }
   
   
   .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{
   .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{
-	  background-color: #e6e6e6 !important;
+	  background-color: var(--active-item-start) !important;
   }
   }
   .el-tree-node__content {
   .el-tree-node__content {
     height: 40px;
     height: 40px;
     padding-left: 0 !important;
     padding-left: 0 !important;
     &:hover {
     &:hover {
       height: 40px;
       height: 40px;
-      background: #e6e6e6;
+      background: var(--hover-text-color);
     }
     }
 	
 	
 	.el-tree-node__expand-icon{
 	.el-tree-node__expand-icon{
@@ -28,7 +28,7 @@
   .el-tree-node {
   .el-tree-node {
     &:focus {
     &:focus {
       & > .el-tree-node__content {
       & > .el-tree-node__content {
-        background: #e6e6e6;
+        background: var(--active-item-start);
       }
       }
     }
     }
   }
   }
@@ -66,7 +66,7 @@
 .custom-tree-tools {
 .custom-tree-tools {
   .ivu-icon {
   .ivu-icon {
     margin-right: 20px;
     margin-right: 20px;
-    color: #868686;
+    color: var(--normal-icon-color);
   }
   }
 }
 }
 /* 修改iview Modal样式 */
 /* 修改iview Modal样式 */
@@ -80,15 +80,15 @@
 	}
 	}
 	
 	
 	.ivu-select-single .ivu-select-selection {
 	.ivu-select-single .ivu-select-selection {
-		background: #575757;
-		color: #fbfbfb;
-		border-color: transparent;
+		// background: #575757;
+		// color: #fbfbfb;
+		// border-color: transparent;
 		height: 35px;
 		height: 35px;
 		margin-left: 15px;
 		margin-left: 15px;
 	}
 	}
 	
 	
 	.ivu-select-single .ivu-select-arrow {
 	.ivu-select-single .ivu-select-arrow {
-		color: #fbfbfb;
+		// color: #fbfbfb;
 	}
 	}
 	
 	
 	.ivu-modal-header{
 	.ivu-modal-header{
@@ -97,7 +97,6 @@
   .ivu-modal-content {
   .ivu-modal-content {
     // background: #3c3c3c;
     // background: #3c3c3c;
     overflow: hidden;
     overflow: hidden;
-	// font-weight: bold;
     // color: #fff;
     // color: #fff;
   }
   }
   
   
@@ -122,6 +121,7 @@
   .modal-content {
   .modal-content {
     padding: 0 35px 30px 35px;
     padding: 0 35px 30px 35px;
     .node-title {
     .node-title {
+      // color: #fff;
       margin: 30px 0;
       margin: 30px 0;
       font-size: 14px;
       font-size: 14px;
     }
     }
@@ -132,6 +132,8 @@
 		margin-left: 10px;
 		margin-left: 10px;
 	}
 	}
     .ivu-input {
     .ivu-input {
+      // background: #575757;
+      // border-color: transparent;
       height: 35px;
       height: 35px;
       // color: #fff;
       // color: #fff;
       &::-webkit-input-placeholder {
       &::-webkit-input-placeholder {

+ 1 - 1
TEAMModelOS/ClientApp/src/components/syllabus/DragTree.vue

@@ -11,7 +11,7 @@
 						<Icon type="md-cube" color="#00c38d" :title="$t('syllabus.tree.hasResource')" v-if="data.rnodes && data.rnodes.length" />
 						<Icon type="md-cube" color="#00c38d" :title="$t('syllabus.tree.hasResource')" v-if="data.rnodes && data.rnodes.length" />
 						<Icon type="md-git-compare" color="#00c38d" :title="$t('syllabus.tree.hasCoEdit')" v-if="hasEditAuth(data) && isSchool" />
 						<Icon type="md-git-compare" color="#00c38d" :title="$t('syllabus.tree.hasCoEdit')" v-if="hasEditAuth(data) && isSchool" />
 						<Tooltip placement="right">
 						<Tooltip placement="right">
-							<Icon type="md-information-circle" color="#8a8a8a" size="18" v-if="hasEditAuth(data) && isSchool"/>
+							<Icon type="md-information-circle" color="#b9b9b9" size="18" v-if="hasEditAuth(data) && isSchool"/>
 							<div slot="content">
 							<div slot="content">
 								<p>{{ $t('syllabus.latestId') }}:{{ data.creatorName || '' }}</p>
 								<p>{{ $t('syllabus.latestId') }}:{{ data.creatorName || '' }}</p>
 								<p>{{ $t('syllabus.latestTime') }}:{{ $tools.formatTime(data.updateTime) }}</p>
 								<p>{{ $t('syllabus.latestTime') }}:{{ $tools.formatTime(data.updateTime) }}</p>

+ 1 - 1
TEAMModelOS/ClientApp/src/components/syllabus/InviteTeacher.less

@@ -5,7 +5,7 @@
 @primary-fontSize:16px;
 @primary-fontSize:16px;
 @second-fontSize:14px;
 @second-fontSize:14px;
 @title-fontSize:18px;
 @title-fontSize:18px;
-@themeColor:#00fec1;
+@themeColor:#08bb67;
 
 
 .it-container{
 .it-container{
 	margin: 0 10px;
 	margin: 0 10px;

+ 4 - 4
TEAMModelOS/ClientApp/src/components/syllabus/InviteTeacher.vue

@@ -17,7 +17,7 @@
 			icon="ios-close-circle-outline" @on-click="onCloseSearch" @on-change="onSearchChange"/>
 			icon="ios-close-circle-outline" @on-click="onCloseSearch" @on-change="onSearchChange"/>
 		</div>
 		</div>
 		<div class="teacher-wrap">
 		<div class="teacher-wrap">
-			<Table class="dark-iview-table" :columns="teacherCol" :data="teacherList" height="400" v-if="isSchool">
+			<Table :columns="teacherCol" :data="teacherList" height="400" v-if="isSchool">
 				<template slot-scope="{ row }" slot="name">
 				<template slot-scope="{ row }" slot="name">
 					<div style="display: flex;align-items: center;">
 					<div style="display: flex;align-items: center;">
 						<PersonalPhoto :name="row.name" :picture="row.picture" />
 						<PersonalPhoto :name="row.name" :picture="row.picture" />
@@ -328,10 +328,10 @@
 				line-height: 35px;
 				line-height: 35px;
 			}
 			}
 			.ivu-input{
 			.ivu-input{
-				background-color: #474747;
-				border-color: #515151;
+				// background-color: #474747;
+				// border-color: #515151;
 				font-size: 12px;
 				font-size: 12px;
-				color: #ddd;
+				// color: #ddd;
 				margin: 20px 0;
 				margin: 20px 0;
 				border-radius: 50px;
 				border-radius: 50px;
 				padding-left: 10px;
 				padding-left: 10px;

+ 49 - 17
TEAMModelOS/ClientApp/src/components/vote/BaseVoteForm.vue

@@ -18,7 +18,7 @@
 					<Option v-for="(item,index) in classRooms.filter(i=>i.scope === classType)" :value="item.id" :key="index">{{ item.name }}</Option>
 					<Option v-for="(item,index) in classRooms.filter(i=>i.scope === classType)" :value="item.id" :key="index">{{ item.name }}</Option>
 				</Select> -->
 				</Select> -->
 				<div v-else>
 				<div v-else>
-					<BaseClassSelect :classes="classTargets" @onChange="onTargetChange" ref="classSelectRef" v-if="getCurScope === 'school' && curVoteItem"></BaseClassSelect>
+					<BaseClassSelect :classes="classTargets" :type="targetType" @onChange="onTargetChange" ref="classSelectRef" v-if="getCurScope === 'school' && curVoteItem"></BaseClassSelect>
 					<BaseClassSelectPri :classes="classTargets" :scope="classType" @onChange="onTargetChange" ref="classSelectRef" v-if="getCurScope === 'private' && curVoteItem"></BaseClassSelectPri>
 					<BaseClassSelectPri :classes="classTargets" :scope="classType" @onChange="onTargetChange" ref="classSelectRef" v-if="getCurScope === 'private' && curVoteItem"></BaseClassSelectPri>
 				</div>
 				</div>
 				
 				
@@ -214,7 +214,9 @@
 					    return data && data > date.valueOf() + 86400000
 					    return data && data > date.valueOf() + 86400000
 					}
 					}
 				},
 				},
-				classIds:[]
+				classIds:[],
+				groupList:[],
+				targetType:''
 			}
 			}
 		},
 		},
 		created() {
 		created() {
@@ -223,6 +225,8 @@
 				console.log(res)
 				console.log(res)
 				this.classRooms = res
 				this.classRooms = res
 			})
 			})
+			
+			this.findResearchList()
 		},
 		},
 		methods: {
 		methods: {
 			onClassTypeChange(val) {
 			onClassTypeChange(val) {
@@ -270,11 +274,12 @@
 							let fileName = this.$tools.guid()
 							let fileName = this.$tools.guid()
 							let isReset = this.voteForm.isReset.length > 0
 							let isReset = this.voteForm.isReset.length > 0
 							let isPersonal = this.$route.name === 'personalVote' &&  classSelectScope === 'private'
 							let isPersonal = this.$route.name === 'personalVote' &&  classSelectScope === 'private'
+							let isSchool = this.$route.name === 'manageVote'
+							
 							params.code = this.getCurCode
 							params.code = this.getCurCode
 							params.scope = isPersonal ? 'private' : 'school'
 							params.scope = isPersonal ? 'private' : 'school'
 							params.name = this.voteForm.name
 							params.name = this.voteForm.name
-							params.startTime = !this.isImmediate ? new Date(this.voteForm.startTime)
-								.getTime() : -1
+							params.startTime = !this.isImmediate ? new Date(this.voteForm.startTime).getTime() : -1
 							params.endTime = new Date(this.voteForm.endTime).getTime()
 							params.endTime = new Date(this.voteForm.endTime).getTime()
 							params.description = this.voteForm.description
 							params.description = this.voteForm.description
 							params.targets = this.voteForm.targets
 							params.targets = this.voteForm.targets
@@ -283,19 +288,27 @@
 							params.repeat = this.voteForm.repeat.indexOf('repeat') > -1
 							params.repeat = this.voteForm.repeat.indexOf('repeat') > -1
 							params.options = this.voteOptionsContent
 							params.options = this.voteOptionsContent
 							// 新增参数
 							// 新增参数
-							params.owner = this.$route.name === 'personalVote' ? 'teacher' : 'school'
+							params.owner = isSchool ? 'school' : 'teacher'
 							params.creatorId = this.$store.state.userInfo.TEAMModelId
 							params.creatorId = this.$store.state.userInfo.TEAMModelId
 							params.voteNum = this.voteForm.selectMax
 							params.voteNum = this.voteForm.selectMax
 							params.times = this.voteForm.times
 							params.times = this.voteForm.times
 							params.school = params.scope === 'school' ?  this.$store.state.userInfo.schoolCode : null
 							params.school = params.scope === 'school' ?  this.$store.state.userInfo.schoolCode : null
-							
+							params.tchLists = []
+							params.classes = []
+							params.stuLists = []
 							if (this.isEdit && this.editInfo.id && this.editInfo.code) {
 							if (this.isEdit && this.editInfo.id && this.editInfo.code) {
 								params.id = this.editInfo.id
 								params.id = this.editInfo.id
 							}
 							}
-							if(isSchoolClass){
+							// 如果是校本投票 则需要进一步确定发布对象是教研组还是学生名单
+							if(isSchool && this.$refs.classSelectRef.targetType === 'research'){
+								params.tchLists = this.voteForm.classes
+								params.targetType = 'research'
+							}else if(isSchoolClass){
 								params.classes = this.voteForm.classes
 								params.classes = this.voteForm.classes
+								params.targetType = 'student'
 							}else{
 							}else{
 								params.stuLists = this.voteForm.classes
 								params.stuLists = this.voteForm.classes
+								params.targetType = 'student'
 							}
 							}
 							console.log('提交的投票对象',params)
 							console.log('提交的投票对象',params)
 							/* 保存BLOB以及COSMOS */
 							/* 保存BLOB以及COSMOS */
@@ -529,16 +542,23 @@
 			 * @param item
 			 * @param item
 			 */
 			 */
 			async doRender(item) {
 			async doRender(item) {
-				console.log(item)
-				// if(!this.classRooms.length){
-				// 	this.classRooms = await this.getClassrooms(this.userInfo.TEAMModelId)
-				// }
-				if(item.id){
-					this.classNameArr = item.classes.length ? await this.getClassNameByIds(item.classes) : await this.getClassNameByIds(item.stuLists)
-					// this.classTargets = item.targets
+				console.log('需要渲染的投票对象',item)
+				if(item.targetType === 'research'){
+					console.log(this.groupList);
+					let groupNameArr = []
+					item.tchLists.forEach(i => {
+						let findObj = this.groupList.find(j => j.id === i)
+						if(findObj){
+							groupNameArr.push(findObj)
+						}
+					})
+					this.classNameArr = groupNameArr
+				}else{
+					this.classNameArr = item.classes.length ? await this.getClassNameByIds(item.classes) : item.stuLists.length ? await this.getClassNameByIds(item.stuLists) : []
 				}
 				}
 				this.classType = item.classes.length ? 'school' : 'private'
 				this.classType = item.classes.length ? 'school' : 'private'
-				this.classTargets = item.classes.length ? item.classes : item.stuLists
+				this.classTargets = item.targetType === 'research' ? item.tchLists : this.getCurScope === 'school' ? item.classes : item.targets
+				this.targetType = item.targetType
 				console.log(this.classNameArr)
 				console.log(this.classNameArr)
 				this.voteForm = null
 				this.voteForm = null
 				this.voteOptionsContent = []
 				this.voteOptionsContent = []
@@ -547,7 +567,8 @@
 				this.voteForm = {
 				this.voteForm = {
 					name: item.name,
 					name: item.name,
 					code: item.code,
 					code: item.code,
-					classes: this.classTargets,
+					targets: item.targets,
+					classes: item.targetType === 'research' ? item.tchLists : item.classes.length ? item.classes : item.stuLists,
 					startTime: item.startTime ? new Date(item.startTime) : '',
 					startTime: item.startTime ? new Date(item.startTime) : '',
 					endTime: item.endTime ? new Date(item.endTime) : '',
 					endTime: item.endTime ? new Date(item.endTime) : '',
 					description: item.description,
 					description: item.description,
@@ -600,7 +621,17 @@
 				// }
 				// }
 				console.log(classId);
 				console.log(classId);
 				return this.classNameArr.find(i => i.id === classId) ? this.classNameArr.find(i => i.id === classId).name : this.$t('vote.form.noMatchDataTip')
 				return this.classNameArr.find(i => i.id === classId) ? this.classNameArr.find(i => i.id === classId).name : this.$t('vote.form.noMatchDataTip')
-			}
+			},
+			
+			/* 查找学校检验组信息 */
+			findResearchList(){
+				this.$api.schoolUser.getResearchGroup({
+					code:this.$store.state.userInfo.schoolCode,
+					scope:'school'
+				}).then(res => {
+					this.groupList = res.stuList
+				})
+			},
 		},
 		},
 		mounted() {
 		mounted() {
 			//this.initEditors()
 			//this.initEditors()
@@ -611,6 +642,7 @@
 			this.$editorTools.initSimpleEditor(descriptionEditor,this)
 			this.$editorTools.initSimpleEditor(descriptionEditor,this)
 			descriptionEditor.create()
 			descriptionEditor.create()
 			this.descriptionEditor = descriptionEditor
 			this.descriptionEditor = descriptionEditor
+			
 
 
 			if (this.editItem && this.editItem.name) {
 			if (this.editItem && this.editItem.name) {
 				console.log(this.editItem)
 				console.log(this.editItem)

+ 1 - 1
TEAMModelOS/ClientApp/src/css/common-style.less

@@ -38,7 +38,7 @@
 }
 }
 .common-save-btn .ivu-btn {
 .common-save-btn .ivu-btn {
     border: none;
     border: none;
-    color: white;
+    color: #757575;
     background: none !important;
     background: none !important;
 }
 }
 .common-save-btn {
 .common-save-btn {

+ 7 - 5
TEAMModelOS/ClientApp/src/css/custom-animate.less

@@ -1,5 +1,5 @@
 /*
 /*
-    块状选单active背景动画
+    锟斤拷状选锟斤拷active锟斤拷锟斤拷锟斤拷锟斤拷
 */
 */
 .block-bg{
 .block-bg{
     position:relative;
     position:relative;
@@ -14,7 +14,8 @@
     left: 0;
     left: 0;
     right: 0;
     right: 0;
     pointer-events:none;
     pointer-events:none;
-    background-image: linear-gradient(90deg, rgba(30, 30, 30, 0) 0%, rgba(110, 110, 110, 0.2) 50%, rgba(110, 110, 110, 0.4) 100%);
+    // background-image: linear-gradient(90deg, rgba(30, 30, 30, 0) 0%, rgba(110, 110, 110, 0.2) 50%, rgba(110, 110, 110, 0.4) 100%);
+    background-color: var(--active-item-start);
     transform-origin: center right;
     transform-origin: center right;
     transform: scaleX(0);
     transform: scaleX(0);
 }
 }
@@ -29,7 +30,7 @@
 }
 }
 
 
 /*
 /*
-    文字选单active line动画
+    锟斤拷锟斤拷选锟斤拷active line锟斤拷锟斤拷
 */
 */
 .line-bottom{
 .line-bottom{
     position:relative;
     position:relative;
@@ -44,7 +45,7 @@
     width: 0px;
     width: 0px;
     height: 2px;
     height: 2px;
     left:0px;
     left:0px;
-    background-color: #1CC0F3;
+    background-color: var(--tabs-bottom-color);
 }
 }
 
 
 .line-bottom-active::before {
 .line-bottom-active::before {
@@ -52,5 +53,6 @@
     width: 100%;
     width: 100%;
 }
 }
 .line-bottom-active {
 .line-bottom-active {
-    color: white !important;
+    color: var(--primary-text-color) !important;
+    font-weight: bold;
 }
 }

+ 2 - 0
TEAMModelOS/ClientApp/src/locale/lang/en-US/answerSheet.js

@@ -33,6 +33,8 @@ export default {
 	tip19:'',
 	tip19:'',
 	tip20:'essay',
 	tip20:'essay',
 	tip21:'page',
 	tip21:'page',
+	tip22:'Update Reminder',
+	tip23:'Update of the answer card is detected, printing the answer card will generate new data, do you want to continue printing?',
 	confirm: 'Confirm',
 	confirm: 'Confirm',
 	edit: 'Edit',
 	edit: 'Edit',
 	delete: 'Delete',
 	delete: 'Delete',

+ 2 - 2
TEAMModelOS/ClientApp/src/locale/lang/en-US/classMgmt.js

@@ -70,9 +70,8 @@ export default {
   grade12: '12th Grade',
   grade12: '12th Grade',
   smartClass: 'Smarter Classroom',
   smartClass: 'Smarter Classroom',
   sokratesClass: 'Observation Classroom',
   sokratesClass: 'Observation Classroom',
-  unauthorization: 'unauthorized',
+  selfpace: 'SelfPace Test',
   blankPageAdd: 'Open File',
   blankPageAdd: 'Open File',
-  selfpace: 'Q&A',
   pptImport: '.pptx',
   pptImport: '.pptx',
   powerclick: 'PowerClick',
   powerclick: 'PowerClick',
   hteOpen: '.hte',
   hteOpen: '.hte',
@@ -87,6 +86,7 @@ export default {
 
 
   today: 'Today',
   today: 'Today',
   lastweek: '7 days ago',
   lastweek: '7 days ago',
+  unauthorization: 'unauthorized',
   text1: 'GE Classroom(s)',
   text1: 'GE Classroom(s)',
   text2: 'S/N Expiration',
   text2: 'S/N Expiration',
   text3: 'Total',
   text3: 'Total',

+ 2 - 1
TEAMModelOS/ClientApp/src/locale/lang/en-US/courseManage.js

@@ -57,7 +57,8 @@ export default {
         classroomName: 'Classroom Name',
         classroomName: 'Classroom Name',
         classroomAttr: 'Classroom Attribute',
         classroomAttr: 'Classroom Attribute',
         classroomType: 'Classroom Type',
         classroomType: 'Classroom Type',
-        classroomTeacher: 'Instructor',
+        classroomTeacher: 'Class Teacher',
+        classroomTeacher1: 'Instructor',
         classroomNotice: 'Remarks',
         classroomNotice: 'Remarks',
         deleteStudent: 'Delete the selected student',
         deleteStudent: 'Delete the selected student',
         deleteStuBtn: 'Delete',
         deleteStuBtn: 'Delete',

+ 25 - 9
TEAMModelOS/ClientApp/src/locale/lang/en-US/cusMgt.js

@@ -7,7 +7,7 @@ export default {
     editCus:'Edit Course',
     editCus:'Edit Course',
     noTeacher:'None yet',
     noTeacher:'None yet',
     cusName:'Course Name',
     cusName:'Course Name',
-    nameHolder:'Please enter course name',
+    cNameHolder:'Please enter course name',
     cusCode:'Course ID',
     cusCode:'Course ID',
     codeHolder:'Please enter course ID',
     codeHolder:'Please enter course ID',
     cusDesc:'課程描述',
     cusDesc:'課程描述',
@@ -109,9 +109,9 @@ export default {
     qrCodeText:'Invitation Code:',
     qrCodeText:'Invitation Code:',
     inviteUrl:'Invitation Link:',
     inviteUrl:'Invitation Link:',
     copyUrl:'Copy Link',
     copyUrl:'Copy Link',
-    createTips1:'溫馨提示:您(已加入學校)可以挑選學校學生加入課程或讓學生通過輸入課程邀請碼、掃描課程二維碼、課程鏈接方式主動加入課程。 ',
-    createTips2:'溫馨提示:您(暫未加入學校)可讓學生通過輸入課程邀請碼、掃描課程二維碼、課程鏈接方式主動加入課程。 ',
-    renameListTitle:'修改名稱',
+    createTips1:'Note: You (have joined a school) can select students from your school to join the course, or allow students to join the course by entering the course invitation code, scanning the course QR code, or using the invitation link.',
+    createTips2:'Note: You (not yet a member of a school) can allow students to join the course by entering the course invitation code, scanning the course QR code, or using the invitation link.',
+    renameListTitle:'Edit List Name',
     //ManageClass.vue
     //ManageClass.vue
     classLabel:'Class:',
     classLabel:'Class:',
     stuCount:'Student Number: ',
     stuCount:'Student Number: ',
@@ -148,6 +148,14 @@ export default {
     groupUnit:'Group',
     groupUnit:'Group',
     stuNameList:'Student List',
     stuNameList:'Student List',
     saveGroup:'Save',
     saveGroup:'Save',
+    setAvatar:'设置头像',
+    stuNameLabel:'姓名:',
+    reupload:'重新上传',
+    uploadAvatar:'上传头像',
+    uploadTips:'请上传头像',
+    setOk:'设置成功',
+    setErr:'设置失败',
+    uploadErr:'头像上传失败',
     
     
     //NewCusMgt.vue
     //NewCusMgt.vue
     schdTable:'Schedule Mode',
     schdTable:'Schedule Mode',
@@ -159,6 +167,10 @@ export default {
     cusTime:'Course Schedule',
     cusTime:'Course Schedule',
     saveLabel:'Save changes',
     saveLabel:'Save changes',
     addStuList:'Add List',
     addStuList:'Add List',
+    addListType:'方式',
+    addListType1:'新建名单',
+    addListType2:'选择已有名单',
+    listLabel:'名单',
     removeList:'Remove List',
     removeList:'Remove List',
     addrLabel:'Classroom:',
     addrLabel:'Classroom:',
     nameLabel:'Class List:',
     nameLabel:'Class List:',
@@ -178,7 +190,7 @@ export default {
     createList:'Create Self-customized List',
     createList:'Create Self-customized List',
     name:'Name: ',
     name:'Name: ',
     nameHolder:'Please enter list name...',
     nameHolder:'Please enter list name...',
-    pdHolder:'請設置學段',
+    pdHolder:'Please set the school system',
     timeSetTitle:'Schedule Settings',
     timeSetTitle:'Schedule Settings',
     job:'Title',
     job:'Title',
     teaName:'Name',
     teaName:'Name',
@@ -199,6 +211,8 @@ export default {
     remvTeaTitle:'Remove Instructor',
     remvTeaTitle:'Remove Instructor',
     remvTeaContent:'Are you sure to remove ',
     remvTeaContent:'Are you sure to remove ',
     gradeLabel:'Grade',
     gradeLabel:'Grade',
+    cusNoRepeat:'课程编码重复',
+    cusNameRepeat:'课程名称重复',
 
 
     //MgtStuList.vue
     //MgtStuList.vue
     nameList:'Name list',
     nameList:'Name list',
@@ -235,6 +249,8 @@ export default {
     cusTable:'Class Schedule',
     cusTable:'Class Schedule',
     importLabel:'Import Class Schedule',
     importLabel:'Import Class Schedule',
     cusMode:'Course Mode',
     cusMode:'Course Mode',
+    roomLabel:'Classroom',
+    roomType:'Type:',
 
 
     //ClassTable.vue
     //ClassTable.vue
     noAddTea:'No instructor has been added to the current course',
     noAddTea:'No instructor has been added to the current course',
@@ -253,8 +269,8 @@ export default {
     nameListType:'Type',
     nameListType:'Type',
     scClass:'School Class',
     scClass:'School Class',
     customNameList:'Self-customized List',
     customNameList:'Self-customized List',
-    teaTimeWraning:'該教師此時段已有課程安排',
-    classTimeWarning:'該班級此時段已有課程安排',
+    teaTimeWraning:'The teacher already has courses scheduled for this time period',
+    classTimeWarning:'The class already has courses scheduled for this time period',
 
 
     // JoinClass.vue
     // JoinClass.vue
     join:{
     join:{
@@ -271,7 +287,7 @@ export default {
         hasJoin:'you have joined successfully! ',
         hasJoin:'you have joined successfully! ',
         getErr:'Failed to read user information',
         getErr:'Failed to read user information',
         parseErr:'Failed to parse login information',
         parseErr:'Failed to parse login information',
-        cusLabel:'課程:',
-        toTeammodel:'即刻前往醍摩豆雲平台>>>'
+        cusLabel:'Course:',
+        toTeammodel:'Go to TEAM Model Cloud now!>>>'
     }
     }
 }
 }

+ 18 - 8
TEAMModelOS/ClientApp/src/locale/lang/en-US/evaluation.js

@@ -1,5 +1,5 @@
 export default {
 export default {
-	completeTip:'请先完善當前學段的科目、年级及学期数据!',
+	completeTip:'Please complete the subject, grade and semester data for the current school system first!',
 	editor:{
 	editor:{
 		uploadVideo:'Upload Local Video',
 		uploadVideo:'Upload Local Video',
 		uploadAudio:'Upload Local Audio',
 		uploadAudio:'Upload Local Audio',
@@ -32,6 +32,7 @@ export default {
 		createTime:'Create Time',
 		createTime:'Create Time',
 		useCount:'Number Of Uses'
 		useCount:'Number Of Uses'
 	},
 	},
+	typeScoreTip:'Using this allocation method, the original allocation will be reset! Do you want to continue?',
 	single:'Single Answer',
 	single:'Single Answer',
 	multiple:'Multiple Answers',
 	multiple:'Multiple Answers',
 	judge:'True-false',
 	judge:'True-false',
@@ -143,6 +144,7 @@ export default {
 		noOptionTip:'Incorrect information in the question stem or options. Please delete or re-import the correct document!'
 		noOptionTip:'Incorrect information in the question stem or options. Please delete or re-import the correct document!'
 	},
 	},
 	paperList:{
 	paperList:{
+		scoreTable:'Exam File Point Allocation',
 		usePeriod:'Applicable School System',
 		usePeriod:'Applicable School System',
 		useGrade:'Applicable Grade',
 		useGrade:'Applicable Grade',
 		itemCount:'Question Number',
 		itemCount:'Question Number',
@@ -177,7 +179,8 @@ export default {
 		saveItemsFailTip:'Exam file data save failed!',
 		saveItemsFailTip:'Exam file data save failed!',
 		emptyNameTip:'The name of the exam file cannot be empty!',
 		emptyNameTip:'The name of the exam file cannot be empty!',
 		noSpaceTip:'Storage space is full!',
 		noSpaceTip:'Storage space is full!',
-		noItemTip:'No test question selected!',
+		noItemTip: 'No test question selected!',
+		regTip: 'The exam file name cannot contain special characters!',
 		isExistPaperTip:'Exam file with the same name already exist in the exam file bank, do you want to overwrite it?',
 		isExistPaperTip:'Exam file with the same name already exist in the exam file bank, do you want to overwrite it?',
 		cancelSaveTip:'Cancel saving exam file!',
 		cancelSaveTip:'Cancel saving exam file!',
 		hasNoScoreTip:'There are questions that are not allocated points, please allocate points and then save!',
 		hasNoScoreTip:'There are questions that are not allocated points, please allocate points and then save!',
@@ -190,6 +193,8 @@ export default {
 		paperAnalysis:'Exam File Analysis',
 		paperAnalysis:'Exam File Analysis',
 		setPaperScore:'Set exam file total points',
 		setPaperScore:'Set exam file total points',
 		goAnswerSheet:'Print Answer Card',
 		goAnswerSheet:'Print Answer Card',
+		createSheet:'Generate Answer Card',
+		reCreateSheet:'Regenerate',
 		choosePaper:'Select exam file',
 		choosePaper:'Select exam file',
 		choosed:'Selected',
 		choosed:'Selected',
 		searchPaper:'Enter exam file name to search...'
 		searchPaper:'Enter exam file name to search...'
@@ -230,7 +235,12 @@ export default {
 		tip2:"'s allocated points",
 		tip2:"'s allocated points",
 		tip3:' are not enough',
 		tip3:' are not enough',
 		tip4:' are too many',
 		tip4:' are too many',
-		tip5:'please check and retry!'
+		tip5:'please check and retry!',
+		tip6:'Switching the designing method will clear the currently selected question, do you want to continue?',
+		tip7:'The current exam file is detected to have unlisted questions in the question bank, do you want to sync to the question bank?',
+		tip8:'Synchronize to question bank',
+		tip9:'Do not synchronize',
+		tip10:'The number of eligible questions in the question bank is less than the number you expected, do you want to continue?'
 	},
 	},
 	points:{
 	points:{
 		addPoint:'Create Key Concept',
 		addPoint:'Create Key Concept',
@@ -246,12 +256,12 @@ export default {
 		numMax2:'key concept'
 		numMax2:'key concept'
 	},
 	},
 	echarts:{
 	echarts:{
-		pointPie:'Key Concept Distribution Graph',
-		typePie:'Question Type Distribution Graph',
-		diffPie:'Difficulty Distribution Graph',
-		objectivePie:'Subjective/Objective Question Distribution Graph'
+		pointPie:'Key Concept Distribution',
+		typePie:'Question Type Distribution',
+		diffPie:'Difficulty Distribution',
+		objectivePie:'Subjective/Objective Question Distribution'
 	},
 	},
-	getEmptyItems:"Can't obtain test questions",
+	getEmptyItems:"No data yet",
 	child:'Question',
 	child:'Question',
 	typePieTitle:'Question Type Distribution Graph',
 	typePieTitle:'Question Type Distribution Graph',
 	reImport:'Re-import',
 	reImport:'Re-import',

+ 13 - 1
TEAMModelOS/ClientApp/src/locale/lang/en-US/home.js

@@ -40,6 +40,18 @@ export default{
     course:'Course:',
     course:'Course:',
     className:'Class:',
     className:'Class:',
     tmwNoCus:'No classes scheduled for tomorrow',
     tmwNoCus:'No classes scheduled for tomorrow',
+    noRecord:'No lesson records yet',
+    noGoing:'No ongoing activity for the time being',
+    noNotice:'No announcement yet',
+    noInfo:'No message yet',
     schoolLabel:'School',
     schoolLabel:'School',
-    privateLabel:'Private'
+    privateLabel:'Private',
+    mon:'Mon',
+    tues:'Tues',
+    wed:'Wed',
+    thur:'Thur',
+    fri:'Fri',
+    sat:'Sat',
+    sun:'Sun'
+
 }
 }

+ 4 - 0
TEAMModelOS/ClientApp/src/locale/lang/en-US/index.js

@@ -38,6 +38,8 @@ import notice from './notice'
 import answerSheet from './answerSheet'
 import answerSheet from './answerSheet'
 import tip from './tip'
 import tip from './tip'
 import selflearn from './selflearn'
 import selflearn from './selflearn'
+import notify from './notify'
+import jyzx from './jyzx';
 export default {
 export default {
   schoolBaseInfo,
   schoolBaseInfo,
   classMgmt,
   classMgmt,
@@ -79,6 +81,8 @@ export default {
   answerSheet,
   answerSheet,
   tip,
   tip,
   selflearn,
   selflearn,
+  notify,
+  jyzx,
   test: '测试',
   test: '测试',
   formConfigP: {
   formConfigP: {
     input: 'Please Enter ',
     input: 'Please Enter ',

+ 183 - 0
TEAMModelOS/ClientApp/src/locale/lang/en-US/jyzx.js

@@ -0,0 +1,183 @@
+export default{
+    common: {
+        theme: "话题",
+        content: "内容",
+        reply: "回复",
+        comment: "评论回复",
+        report: "举报",
+        sure: "确定",
+        cancel: "取消",
+        delete: "删除",
+        complete: "已完成",
+        loadTime: "上传时间",
+        action: "操作",
+        seeEvaluate: "查看评价",
+        school: "校",
+        area: "区",
+        typeSch: "校级",
+        typeArea: "区级",
+        point: "能力点",
+        pointName: "能力点名称",
+        dimension: "维度",
+        message: "请选择举报类型:",
+        success1: "回复成功",
+        success2: "举报成功",
+        success3: "删除成功",
+        error: "删除失败",
+    },
+    // 线上研修
+    online: {
+        checkedPoint: "已选能力点",
+        addPoint: "增加能力点",
+        compulsory: "必修",
+        elective: "选修",
+        studyTime: "学时",
+        chapter: "章节",
+        resources: "有关联资源",
+        relResources: "关联资源",
+        relTopic: "关联话题",
+        study: "您已学习:",
+        time: "/20学时",
+        tips: "必修能力点已为您默认勾选!点击确定后就可开始学习",
+        type: "状态",
+        no: "标号",
+        environment: "所属环境",
+        message1: "增加能力点成功",
+        message2: "已学完本章节",
+        message3: "该能力点已学完",
+        placeholder1: "发起新的话题",
+        release: "发布",
+        relSucess: "话题发布成功",
+    },
+    // 校本研修
+    offline: {
+        activity: "研修活动",
+        info: "详细信息",
+        creator: "创建者",
+        noPeople: "无",
+        joinNum: "参与人数",
+        actTime: "活动时间",
+        target: "学习对象",
+        basicInfo: "基础信息",
+        studyTar: "研修目标",
+        address: "培训地点",
+        speaker: "主讲人",
+        type: "类型",
+        studyTime: "学时",
+        homework: "作业",
+        hwName: "作业名称",
+        hwDes: "作业描述",
+        hwUpload: "上传作业",
+        againLoad: "重新上传",
+        question: "问卷",
+        queName: "问卷名称",
+        queDes: "问卷描述",
+        queAnswer: "作答问卷",
+        feedback: "问卷反馈",
+        answered: "已作答",
+        exam: "评测",
+        examName: "评测名称",
+        examDes: "评测描述",
+        examAnswer: "作答评测",
+        answerExam: "评测作答",
+        right: "答对",
+        error: "答错",
+        topic: "题",
+        success1: "保存成功",
+        success2: "上传成功",
+        error1: "保存失败",
+        error1: "上传失败",
+        message1: "问卷未填写完,请继续填写",
+        message2: "评测未作答完,请继续作答",
+        placeholder1: "输入您的回答内容...",
+    },
+    // 应用考核
+    application: {
+        list: "成果列表",
+        discuss: "成果互评",
+        disNum: "互评次数",
+        disByMe: "自评结果",
+        disBySchool: "校评结果",
+        spotCheck: "专家抽查",
+        testByMe: "自我检测结果",
+        fine: "优秀",
+        qualified: "合格",
+        unqualified: "不合格",
+        noEvaluate: "未评价",
+        pass: "通过",
+        noPass: "未通过",
+        load: "上传文件",
+        againTest: "重新检测",
+        meTest: "自我检测",
+        score: "前往评分",
+        againScore: "重新评分",
+        evaName: "评价人",
+        evaType: "评测类型",
+        evaResult: "评价结果",
+        evaContent: "评价内容",
+        evaTime: "评价时间",
+        evaSchool: "校评",
+        evaOther: "互评",
+        evaMe: "自评",
+        admin: "管理员",
+        teacher: "老师",
+        noCheck: "未抽查",
+        teacherName: "教师姓名",
+    },
+    // 课堂实录
+    classRecord: {
+        myRecod: "我的课堂实录",
+        groupRecord: "同组课堂实录",
+        loadOK: "确认上传",
+        videoName: "视频名称",
+        fileSize: "文件大小",
+        loadDes: "选择或者拖拽文件到该区域进行上传",
+        loadAuth: "上传作者",
+        size: "大小",
+        see: "查看课程及评价",
+        evaName: "评价人",
+        evaType: "评测类型",
+        evaResult: "评价结果",
+        evaContent: "评价内容",
+        evaTime: "评价时间",
+        message1: "您确实要删除这条视频吗?",
+        message2: "上传失败",
+        message3: "上传成功",
+        message4: "删除成功",
+        message5: "删除失败",
+        message6: "暂无同组课堂实录",
+    },
+    // 讨论中心
+    discuss: {
+        addTopic: "新增话题",
+        topicType: "话题类型",
+        normal: "普通话题",
+        point: "能力点话题",
+        allTopic: "所有话题",
+        myTopic: "我的话题",
+        replyMe: "回复我的",
+        placeholder1: "请输入关键字",
+        placeholder2: "新的话题",
+        placeholder3: "请选择",
+        placeholder4: "请输入正文",
+        success1: "发表成功",
+        error1: "发表失败",
+        message1: "切换至我的话题",
+        message2: "切换至回复我的",
+    },
+    // 活动
+    activity: {
+        des: "描述",
+        voteArea: "投票区",
+        haveVoteNum: "可投票数",
+        submit: "提交投票",
+        startTime: "发起时间",
+        numExce: "投票数已超出",
+        incomplete: "未完成",
+        success1: "投票成功",
+        success2: "提交成功!",
+        message1: "您还未投票",
+        message2: "存在未作答的题目!",
+        message3: "已作答的问卷无法修改!",
+    },
+}

+ 9 - 1
TEAMModelOS/ClientApp/src/locale/lang/en-US/knowledge.js

@@ -8,6 +8,7 @@ export default {
     block: 'Key Concept Set',
     block: 'Key Concept Set',
     knowledgeP: 'Please enter the name of the key concept',
     knowledgeP: 'Please enter the name of the key concept',
     knowledgeWarning: 'Key concept name cannot be empty!',
     knowledgeWarning: 'Key concept name cannot be empty!',
+    knowledgeRepeat:'The same name key concept already exists, please do not add it repeatedly.',
     newBlock: 'Add key concept set',
     newBlock: 'Add key concept set',
     addBlock: 'Add key concept set',
     addBlock: 'Add key concept set',
     inputBlock: 'Enter key concept set name',
     inputBlock: 'Enter key concept set name',
@@ -55,5 +56,12 @@ export default {
     content9: '',
     content9: '',
     moveFail: 'Failed to remove',
     moveFail: 'Failed to remove',
     saveSuccess: 'Save data successfully!',
     saveSuccess: 'Save data successfully!',
-    saveFail: 'Failed to save data!'
+    saveFail: 'Failed to save data!',
+    import: {
+        title: 'Batch Import Key Concepts',
+        sucTip: 'File parsed successfully!',
+        tip1: 'Select or drag files to this area for uploading',
+        tip2: 'Supported Format',
+        tip3: 'Confirm Upload'
+    }
 }
 }

+ 37 - 25
TEAMModelOS/ClientApp/src/locale/lang/en-US/learnActivity.js

@@ -27,7 +27,7 @@ export default {
         mockOk: 'Simulate successfully',
         mockOk: 'Simulate successfully',
         mockErr: 'Failed to simulate',
         mockErr: 'Failed to simulate',
         stopTitle: 'End Assessment',
         stopTitle: 'End Assessment',
-        stopContent: 'Are you sure to end? Students will not be able to continue answering.',
+        stopContent: 'Are you sure to end? Students will not be able to continue answering ',
         stopOk: 'The assessment has ended!',
         stopOk: 'The assessment has ended!',
         deleteTitle: 'Delete Assessment',
         deleteTitle: 'Delete Assessment',
         deleteContent: 'Are you sure to delete ',
         deleteContent: 'Are you sure to delete ',
@@ -89,7 +89,7 @@ export default {
         paperWarning1: 'No exam files yet, please pick or import them!',
         paperWarning1: 'No exam files yet, please pick or import them!',
         pdWarning: 'Please add assessment subject!',
         pdWarning: 'Please add assessment subject!',
         publishOk: 'The assessment was created successfully!',
         publishOk: 'The assessment was created successfully!',
-        togglePeriod: 'Switch academic system',
+        togglePeriod: 'Switch school system',
         togglePdTip1: 'You have added',
         togglePdTip1: 'You have added',
         togglePdTip2: 'subject. Switching the school system now will clear the selected subjects. Do you confirm the switch?',
         togglePdTip2: 'subject. Switching the school system now will clear the selected subjects. Do you confirm the switch?',
         toggleOkText: 'Switch',
         toggleOkText: 'Switch',
@@ -97,7 +97,7 @@ export default {
         delPdContent: 'Are you sure to delete?',
         delPdContent: 'Are you sure to delete?',
         delOk: 'Delete successfully',
         delOk: 'Delete successfully',
         pdTips: 'Please select the school system!',
         pdTips: 'Please select the school system!',
-        defaultPaper: '(Please pick or import exam files)',
+        defaultPaper: '(Please pick exam files)',
     },
     },
     // ManualPaper.vue
     // ManualPaper.vue
     manual: {
     manual: {
@@ -121,7 +121,7 @@ export default {
     score: {
     score: {
         stuName: 'Student Name:',
         stuName: 'Student Name:',
         score: 'Total Score:',
         score: 'Total Score:',
-        scoreUnit: ' Point',
+        scoreUnit: ' Point(s)',
         saveScore: 'Save Given Points',
         saveScore: 'Save Given Points',
         showAns: 'Show Answer',
         showAns: 'Show Answer',
         hideAns: 'Hide Answer',
         hideAns: 'Hide Answer',
@@ -135,7 +135,7 @@ export default {
         stuAns: '【Student Response】',
         stuAns: '【Student Response】',
         mark: 'Annotate',
         mark: 'Annotate',
         quAns: '【Answer】',
         quAns: '【Answer】',
-        question:'【题  目】',
+        question:'【Question】',
         noAnswer: 'No answer set',
         noAnswer: 'No answer set',
         anaLabel: '【Explanation】',
         anaLabel: '【Explanation】',
         noAna: 'No explanation yet',
         noAna: 'No explanation yet',
@@ -151,17 +151,17 @@ export default {
         isZeroTips: 'It is already zero point',
         isZeroTips: 'It is already zero point',
         saveScoreOk: 'Results saved successfully!',
         saveScoreOk: 'Results saved successfully!',
         saveSocreErr: 'Failed to save results!',
         saveSocreErr: 'Failed to save results!',
-        zero: 'Zero',
-        one: 'One',
-        two: 'Two',
-        three: 'Three',
-        four: 'Four',
-        five: 'Five',
-        six: 'Six',
-        seven: 'Seven',
-        eight: 'Eight',
-        nine: 'Nine',
-        ten: 'Ten',
+        zero: '0.',
+        one: '1.',
+        two: '2.',
+        three: '3.',
+        four: '4.',
+        five: '5.',
+        six: '6.',
+        seven: '7.',
+        eight: '8.',
+        nine: '9.',
+        ten: '10.',
         hundred: 'Hundred',
         hundred: 'Hundred',
         thousand: 'Thousand',
         thousand: 'Thousand',
         tenThd: 'Ten thousand',
         tenThd: 'Ten thousand',
@@ -189,8 +189,18 @@ export default {
         stStuWarning: 'Please select a student first!',
         stStuWarning: 'Please select a student first!',
         lastQu: 'Previous Question',
         lastQu: 'Previous Question',
         nextQu: 'Next Question',
         nextQu: 'Next Question',
+        view: 'View',
         requesting: 'Data request in progress, please wait ...',
         requesting: 'Data request in progress, please wait ...',
-        dataError: 'Data request abnormal, please refresh the page and try again'
+        dataError: 'Data request abnormal, please refresh the page and try again',
+        byStuMark:'按人批阅',
+        byQuMark:'按题批阅',
+        noStuAnswer:'学生暂未作答',
+        toggleQu:'切换题目',
+        viewMark:'查看批注',
+        markLabel:'批注',
+        saveScoreTitle:'保存分数',
+        saveScoreContent:'您修改的分数尚未保存,是否需要保存?',
+
     },
     },
 
 
     //SimpleAnalysis.vue
     //SimpleAnalysis.vue
@@ -308,6 +318,8 @@ export default {
         selectTeaTips:'請設置當前題塊的閱卷老師',
         selectTeaTips:'請設置當前題塊的閱卷老師',
         lastQu:'題目尚未完全分配',
         lastQu:'題目尚未完全分配',
         reapQu:'題目劃塊設置存在重復題目',
         reapQu:'題目劃塊設置存在重復題目',
+        objectiveLabel:'(客)',
+        alreadyLabel:'(已)',
         //ByqU.vue & ByStu.vue
         //ByqU.vue & ByStu.vue
         quit: '退出閱卷',
         quit: '退出閱卷',
         examName: '考試名稱:',
         examName: '考試名稱:',
@@ -319,14 +331,14 @@ export default {
         curQu: '當前題號:',
         curQu: '當前題號:',
         quProg: '題目進度',
         quProg: '題目進度',
         exception: '異常申報',
         exception: '異常申報',
-        move: '移動',
-        text: '文字',
-        brush: '畫筆',
-        arrow: '箭頭',
-        oval: '橢圓',
-        rect: '方框',
-        seal: '印章',
-        clear: '清除批註',
+        move: 'Move',
+        text: 'Text',
+        brush: 'Pen',
+        arrow: 'Arrow',
+        oval: 'Ellipse',
+        rect: 'Quadrilateral',
+        seal: 'Stamp',
+        clear: 'Clear Annotation',
         marked: '已閱',
         marked: '已閱',
         unmark: '未閱',
         unmark: '未閱',
         fullScore: '滿分',
         fullScore: '滿分',

+ 1 - 1
TEAMModelOS/ClientApp/src/locale/lang/en-US/login.js

@@ -82,5 +82,5 @@ export default {
     stuCli:'For Student',
     stuCli:'For Student',
     beian1:'',
     beian1:'',
     beian2:'',
     beian2:'',
-    copyright:'2021 HABOOK Group Team Model'
+    copyright:'2021 HABOOK Group TEAM Model'
 }
 }

+ 4 - 4
TEAMModelOS/ClientApp/src/locale/lang/en-US/notice.js

@@ -4,12 +4,12 @@ export default {
 	type2:'Invitation Notification',
 	type2:'Invitation Notification',
 	type3:'Removal Notification',
 	type3:'Removal Notification',
 	type4:'Syllabus Notification',
 	type4:'Syllabus Notification',
-	tip1:'Apply to join',
-	tip2:'You are invited to join',
-	tip3:'Your request to join has been granted',
+	tip1:'applies to join',
+	tip2:'has invited you to join',
+	tip3:'has granted your request to join',
 	tip4:'has accepted the invitation to join',
 	tip4:'has accepted the invitation to join',
 	tip5:"",
 	tip5:"",
-	tip6:'You have been removed',
+	tip6:'has removed you',
 	tip7:'You are invited to co-edit the school syllabus',
 	tip7:'You are invited to co-edit the school syllabus',
 	tip8:'shared a syllabus with you'
 	tip8:'shared a syllabus with you'
 }
 }

+ 36 - 0
TEAMModelOS/ClientApp/src/locale/lang/en-US/notify.js

@@ -0,0 +1,36 @@
+export default {
+    createTitle:'创建学校公告',
+    title:'标题',
+    titleHolder:'请输入标题',
+    notifyTime:'时间',
+    notifyContent:'内容',
+    saveText:'保存公告',
+    publishText:'发布公告',
+    cancelEdit:'取消编辑',
+    cancelPublish:'取消发布',
+    timeTips:'请设置公告时间',
+    contentTips:'请输入公告内容',
+    titleTips:'请输入公告标题',
+    reserveContent:'是否保留此次编辑?',
+    reserveOk:'保留',
+    reserveCancel:'不保留',
+    fullInfoTips:'请完善公告信息!',
+    search:'搜索',
+    draft:'草稿箱',
+    toCreate:'创建公告',
+    pending:'待发布',
+    going:'公告中',
+    finish:'已公告',
+    ntTime:'公告时间:',
+    delete:'删除',
+    view:'查看',
+    edit:'编辑',
+    noNotify:'暂无公告',
+    notifyDetail:'公告详情',
+    delNotifyTitle:'删除公告',
+    delNotifyContent:'是否确认删除',
+    ok:'是',
+    no:'否',
+    delOk:'删除成功',
+    delErr:'删除失败'
+}

+ 31 - 18
TEAMModelOS/ClientApp/src/locale/lang/en-US/schoolBaseInfo.js

@@ -63,7 +63,7 @@ export default {
   setCampus: 'Please set your campus',
   setCampus: 'Please set your campus',
   smHolder: 'Set semester...',
   smHolder: 'Set semester...',
   subjectHolder: 'Set subject...',
   subjectHolder: 'Set subject...',
-  profsHolder: '設置專業...',
+  profsHolder: 'Set subject...',
   noSubject: 'No subject yet',
   noSubject: 'No subject yet',
   anaLabel: 'Learning Status Settings',
   anaLabel: 'Learning Status Settings',
   exTypeLabel: 'Test Type:',
   exTypeLabel: 'Test Type:',
@@ -99,6 +99,18 @@ export default {
   semesterName: 'Name',
   semesterName: 'Name',
   semStartAt: 'Started on',
   semStartAt: 'Started on',
   admission: 'Enrollment Semester',
   admission: 'Enrollment Semester',
+  setStartSem:'请设置入学期',
+  semTimeTips:'请设置学期开始日期',
+  semNameTips:'学期名称不能为空',
+  semStartTips:'请设置是否为入学期',
+  gradeNameTips:'请设置年级名称',
+  examNameTips:'请设置考试类型',
+  profNameTips:'请设置专业名称',
+  anaNameTips:'请完善学情设置',
+  campNameTips:'请输入校区名称',
+  subjectNameTips:'请输入学科/专业名称',
+  delTimeTitle:'删除时段',
+  delTimeContent:'是否确认删除当前时段?',
 
 
   // ClassroomSetting.vue
   // ClassroomSetting.vue
   classroomList: 'Classroom List',
   classroomList: 'Classroom List',
@@ -117,7 +129,7 @@ export default {
   schoolPlan: 'School floor plan and classroom location settings',
   schoolPlan: 'School floor plan and classroom location settings',
   uploadPlan: 'Upload Floor Plan',
   uploadPlan: 'Upload Floor Plan',
   hiteachList: 'HiTeach Serial Number List',
   hiteachList: 'HiTeach Serial Number List',
-  codeSearchHolder: 'Please enter keywords to search',
+  codeSearchHolder: 'Search',
   classroomCodeHolder: 'eg: 1',
   classroomCodeHolder: 'eg: 1',
   classroomNameHolder: 'eg: 101',
   classroomNameHolder: 'eg: 101',
   headmasterHolder: 'Can search by name...',
   headmasterHolder: 'Can search by name...',
@@ -152,7 +164,7 @@ export default {
   tmdClass: 'TEAM Model Smarter Classroom',
   tmdClass: 'TEAM Model Smarter Classroom',
   normalClass: 'General Classroom',
   normalClass: 'General Classroom',
   roomType1: 'Regular Classroom',
   roomType1: 'Regular Classroom',
-  roomType2: 'Specialist Classroom',
+  roomType2: 'Dedicated Subject Classroom',
   tab1: 'Basic Information',
   tab1: 'Basic Information',
   tab2: 'Student List',
   tab2: 'Student List',
   tab3: 'Location Settings',
   tab3: 'Location Settings',
@@ -173,7 +185,7 @@ export default {
   classNoErr1: 'Class ID can only contain numbers!',
   classNoErr1: 'Class ID can only contain numbers!',
   roomNoErr: 'The classroom ID cannot be empty!',
   roomNoErr: 'The classroom ID cannot be empty!',
   roomNoErr1: 'Classroom ID can only be numbers or letters!',
   roomNoErr1: 'Classroom ID can only be numbers or letters!',
-  roomNoErr2: 'Classroom ID repeat',
+  roomNoErr2: 'This Classroom ID repeated',
   classAttr1: 'Regular Classroom(with fixed students)',
   classAttr1: 'Regular Classroom(with fixed students)',
   classAttr2: 'Dedicated Subject Classroom (without fixed students)',
   classAttr2: 'Dedicated Subject Classroom (without fixed students)',
   nameWarning: 'Please enter the name',
   nameWarning: 'Please enter the name',
@@ -202,20 +214,21 @@ export default {
   addErr: 'Failed to add',
   addErr: 'Failed to add',
   cusTabel: 'Class Schedule',
   cusTabel: 'Class Schedule',
   setCusTable: 'Set Class Schedule',
   setCusTable: 'Set Class Schedule',
+  fullRoomInfo:'请先完善教室信息!',
 
 
   //ClassMgt.vue
   //ClassMgt.vue
-  className: 'Name',
-  yearGrade: 'Academic Year/Grade',
-  untimed: 'It is not time for enrollment yet',
-  graduated: 'Graduated',
-  classLabel: 'Class ID',
-  profession: 'Professional Subject',
-  noProfession: 'No professional subject set yet',
-  all: 'All',
-  noSet: 'Not set',
-  newClass: 'Create Class',
-  gradeWarning1: '请设置学级/年级',
-  classRep: '班级重复',
-  updOk: '修改成功',
-  updErr: '修改失败'
+  className:'Name',
+  yearGrade:'Grade/Academic Year',
+  untimed:'It is not time for enrollment yet',
+  graduated:'Graduated',
+  classLabel:'Class ID',
+  profession:'Professional Subject',
+  noProfession:'No professional subject set yet',
+  all:'All',
+  noSet:'Not set',
+  newClass:'Create Class',
+  gradeWarning1: 'Please set grade/academic year',
+  classRep: 'Same class name already exists',
+  updOk:'Modified successfully',
+  updErr:'Failed to modify'
 }
 }

+ 19 - 19
TEAMModelOS/ClientApp/src/locale/lang/en-US/selflearn.js

@@ -1,23 +1,23 @@
 export default{
 export default{
     choose:{
     choose:{
-        syllabus:'课纲',
-        syllubusRange:'课纲范围:',
-        privateSy:'个人课纲',
-        schoolSy:'校本课纲',
-        periodLabel:'学段:',
-        subjectLabel:'学科:',
-        book:'册别',
-        resoureCount:'内容资源数',
-        pointCount:'知识点数',
-        nodeCount:'节点数',
-        noData:'暂无数据',
-        contentLabel:'内容',
-        contentRange:'资源范围:',
-        privateContent:'个人资源',
-        schoolContent:'校本资源',
-        type:'类型:',
-        searchHolder:'搜索',
-        quLabel:'题库',
-        testLabel:'试卷库',
+        syllabus:'Syllabus',
+        syllubusRange:'Syllabus Source:',
+        privateSy:'Personal Syllabus',
+        schoolSy:'School Syllabus',
+        periodLabel:'School System:',
+        subjectLabel:'Subject:',
+        book:'Book',
+        resoureCount:'Content Resource Number',
+        pointCount:'Key Concept Number',
+        nodeCount:'Topic Number',
+        noData:'No data yet',
+        contentLabel:'Resource',
+        contentRange:'Resource Source:',
+        privateContent:'Personal Resource',
+        schoolContent:'School Resource',
+        type:'Type:',
+        searchHolder:'Search',
+        quLabel:'Question Bank',
+        testLabel:'Exam Files',
     }
     }
 }
 }

+ 1 - 1
TEAMModelOS/ClientApp/src/locale/lang/en-US/serviceDriveAuth.js

@@ -64,7 +64,7 @@ export default {
   '基本 1GB 永久授權': 'Basic 1GB permanent authorization',
   '基本 1GB 永久授權': 'Basic 1GB permanent authorization',
   '到期後將變更為IES基本空間,超出基本空間值將被收回': 'After the expiration, it will be changed to the IES basic space and the value beyond the basic space will be withdrawn.',
   '到期後將變更為IES基本空間,超出基本空間值將被收回': 'After the expiration, it will be changed to the IES basic space and the value beyond the basic space will be withdrawn.',
   購買記錄: 'Purchase Record',
   購買記錄: 'Purchase Record',
-  醍摩豆智慧教學服務空間: 'Team Model Smarter Teaching Service Space',
+  醍摩豆智慧教學服務空間: 'TEAM Model Smarter Teaching Service Space',
   訂單日期: 'Order Date: ',
   訂單日期: 'Order Date: ',
   到期日: 'Expiry Date:',
   到期日: 'Expiry Date:',
   添購其他服務: 'Add Other Services',
   添購其他服務: 'Add Other Services',

+ 47 - 40
TEAMModelOS/ClientApp/src/locale/lang/en-US/settings.js

@@ -22,24 +22,30 @@ export default {
 	activityNum: 'Activity Number',
 	activityNum: 'Activity Number',
 	joinStatus: 'Request to join',
 	joinStatus: 'Request to join',
 	requestStatus: 'Received the invitation to join',
 	requestStatus: 'Received the invitation to join',
+	setDefault:'Set as default school',
 	goSchool: 'Go to school',
 	goSchool: 'Go to school',
 	agreeJoin: 'Agree to join',
 	agreeJoin: 'Agree to join',
 	cancelAdd: 'Decline to join',
 	cancelAdd: 'Decline to join',
-	undoJoin: 'Withdrawal request',
+	undoJoin: 'Withdraw request',
 	requestJoin: 'Request to join',
 	requestJoin: 'Request to join',
 	inputSearch: 'Enter the name of the school you want to search for',
 	inputSearch: 'Enter the name of the school you want to search for',
 	hasManager: 'The school has system administrator',
 	hasManager: 'The school has system administrator',
 	hasBaseModule: 'Management Module',
 	hasBaseModule: 'Management Module',
 	modalTip1: 'Notice',
 	modalTip1: 'Notice',
-	modalTip2: "This action will cause you to leave your current school's IES 5 platform and go to",
-	modalTip3: 'Any unsaved information on the current page will be lost, do you agree to this action?',
+	modalTip2: "This action will cause you to leave your current school's IES 5 and go to",
+	modalTip3: 'Any unsaved information on this page will be lost, do you agree to continue?',
+	modalTip7:'Confirm to set',
+	modalTip8:'as your default school?',
 	columnName: 'School Name',
 	columnName: 'School Name',
 	columnArea: 'Areal',
 	columnArea: 'Areal',
 	columnId: 'School Short Code',
 	columnId: 'School Short Code',
 	columnTool: 'Operations',
 	columnTool: 'Operations',
 	modalTip4: 'Friendly Reminder',
 	modalTip4: 'Friendly Reminder',
 	modalTip5: 'Confirm joining ',
 	modalTip5: 'Confirm joining ',
-	modalTip6: 'Confirm cancellation of joining',
+	modalTip6: 'Confirm cancellation of joining ',
+	joinTip1:'Thank you for choosing your school',
+	joinTip2:'After applying, your school name will be displayed the next time you log in!',
+	joinTip3:'Note: The application must be reviewed by the administrator of the school you are applying to before you can officially access the resources provided by the school.',
 	submitSucTips: 'Submitted successfully',
 	submitSucTips: 'Submitted successfully',
 	submitFailTips: 'Failed to operate',
 	submitFailTips: 'Failed to operate',
 	joinSucTips: 'Join successfully!',
 	joinSucTips: 'Join successfully!',
@@ -48,51 +54,52 @@ export default {
 	status3: 'Applying',
 	status3: 'Applying',
 	searchTip: 'Please enter <span>school name</span> or <span>school code</span> to search',
 	searchTip: 'Please enter <span>school name</span> or <span>school code</span> to search',
 	searchNone: '* If you do not find the school you are looking for, you can click below to request to create your school',
 	searchNone: '* If you do not find the school you are looking for, you can click below to request to create your school',
+	searchPoper: 'If your school has a human icon, your application will be reviewed and approved by an administrator to become a member of the school. If your school does not have an administrator, your school and the "applying" status will be displayed after you apply and re-login.',
 	applyBtn: 'Apply to create a school',
 	applyBtn: 'Apply to create a school',
 	openList: 'Open Platform List',
 	openList: 'Open Platform List',
 	openInfo: 'Platform Information',
 	openInfo: 'Platform Information',
-	openName: '应用名称',
-	opName: "开放平台应用",
-	token: 'ApiToken',
-	des: '描述',
-	openStatus: '状态',
-	enable: '启用',
-	disable: '禁用',
-	webhook: "通知接口配置",
-	authorization: "接口密钥",
-	domainName: "域名",
-	subNews: "订阅通知接口",
-	apiType1: "数据写入接口",
-	apiType2: "数据读取接口",
-	apiName: '接口名称',
-	apiAddress: '接口地址',
-	apiMethod: '请求方法',
-	apiParams: '参数示例',
-	newName: "通知名称",
-	openKeep: '保存平台',
-	edit: "编辑应用",
-	unedit: '取消编辑',
-	delModal1: "您确定删除",
-	delModal2: "吗?",
-	delModal3: "删除成功",
-	delModal4: "删除失败",
-	delModal5: "已取消删除",
-	keepModal1: "保存成功",
-	keepModal2: "保存失败",
-	refreshModal1: "刷新成功",
-	refreshModal2: "刷新失败",
-	refreshModal3: "刷新后,原有的金钥会失效,您确定要刷新吗?",
-	refreshModal4: "已取消刷新",
+	openName: '應用名稱',
+    opName: "開放平台應用",
+    token: 'ApiToken',
+    des: '描述',
+    openStatus: '狀態',
+    enable: '啟用',
+    disable: '禁用',
+    webhook: "通知接口配寘",
+    authorization: "接口金鑰",
+    domainName: "域名",
+	subNews: "訂閱通知接口",
+	apiType1: "數據寫入接口",
+	apiType2: "數據讀取接口",
+    apiName: '接口名稱',
+    apiAddress: '接口地址',
+    apiMethod: '請求方法',
+    apiParams: '參數示例',
+    newName: "通知名稱",
+    openKeep: '儲存平臺',
+    edit: "編輯應用",
+    unedit: '取消編輯',
+    delModal1: '您確定刪除',
+    delModal2: '嗎?',
+    delModal3: '刪除成功',
+    delModal4: '刪除失敗',
+    delModal5: '已取消刪除',
+    keepModal1: '儲存成功',
+    keepModal2: '儲存失敗',
+    refreshModal1: '更新成功',
+    refreshModal2: '更新失敗',
+    refreshModal3: '更新後,原有的金鑰會失效,您確定要更新嗎?',
+    refreshModal4: '已取消更新',
 	copyModal1: "Copy successfully",
 	copyModal1: "Copy successfully",
 	copyModal2: "Failed to copy",
 	copyModal2: "Failed to copy",
-	openModal1: "应用列表获取失败",
-	openModal2: "api列表获取失败",
+	openModal1: '應用列表取得失敗',
+    openModal2: 'api列表取得失敗',
 	applyForm: {
 	applyForm: {
 		title: 'Apply to create an AI Smarter School',
 		title: 'Apply to create an AI Smarter School',
 		name: 'Full Name of School/Institution',
 		name: 'Full Name of School/Institution',
 		id: 'School/Institution Short Code',
 		id: 'School/Institution Short Code',
 		orgCode:'School/Institution VAT number',
 		orgCode:'School/Institution VAT number',
-		period:'School/Institution School Syctem',
+		period:'School/Institution School System',
 		code: 'School/Institution ID',
 		code: 'School/Institution ID',
 		address: 'School/Institution Address',
 		address: 'School/Institution Address',
 		manager: 'Person in charge of School/Institution',
 		manager: 'Person in charge of School/Institution',
@@ -105,7 +112,7 @@ export default {
 		place4: 'You can fill in your remark information',
 		place4: 'You can fill in your remark information',
 		place5: 'Please enter the name of the person in charge',
 		place5: 'Please enter the name of the person in charge',
 		place6: 'Please select the area where the school is located',
 		place6: 'Please select the area where the school is located',
-		place7: 'Please enter the VAT number or other government-issued organization uniform number',
+		place7: 'Please enter the VAT number or other government-issued organization uniform No.',
 		submit: 'Submit Application',
 		submit: 'Submit Application',
 		submitSuc: 'Application has been successfully submitted!',
 		submitSuc: 'Application has been successfully submitted!',
 		errTip1: 'Please select the correct area!',
 		errTip1: 'Please select the correct area!',

+ 7 - 4
TEAMModelOS/ClientApp/src/locale/lang/en-US/stuAccount.js

@@ -17,7 +17,7 @@ export default {
   addStu: 'Add Student',
   addStu: 'Add Student',
   editInfo: 'Edit Information',
   editInfo: 'Edit Information',
   delStu: 'Delete Student',
   delStu: 'Delete Student',
-  searchHolder: 'Enter keywords to search',
+  searchHolder: 'Search',
   periodHolder: 'Select School System',
   periodHolder: 'Select School System',
   gradeHolder: 'Select Grade',
   gradeHolder: 'Select Grade',
   classroomHolder: 'Select Class',
   classroomHolder: 'Select Class',
@@ -40,7 +40,8 @@ export default {
   adminClass:'Admin Class',
   adminClass:'Admin Class',
   teachClass:'Customized Class',
   teachClass:'Customized Class',
   stuMgt:'Student Management',
   stuMgt:'Student Management',
-
+  filterNoClass:'筛选未关联班级学生',
+  
   // AddStudent.vue
   // AddStudent.vue
   accountInfo: 'Account Information',
   accountInfo: 'Account Information',
   accountHolder: 'Please enter account information',
   accountHolder: 'Please enter account information',
@@ -99,8 +100,10 @@ export default {
   setNoErr:"Error: Seat number has been repeated within the school",
   setNoErr:"Error: Seat number has been repeated within the school",
   downloadText:'(Download List Sample)',
   downloadText:'(Download List Sample)',
   idRepErr:'Account already exists, will overwrite the original account',
   idRepErr:'Account already exists, will overwrite the original account',
-  stuYearErr:'學生學級數據錯誤',
-  classYearErr:'班級年級錯誤',
+  stuYearErr:"Student's academic year Data is incorrect",
+  classYearErr:"Class's grade level is incorrect",
+ 
+  importOk: '導入成功',
 
 
   // Authorization.vue
   // Authorization.vue
   authTitle: 'Service Authorization Management',
   authTitle: 'Service Authorization Management',

+ 20 - 20
TEAMModelOS/ClientApp/src/locale/lang/en-US/studentWeb.js

@@ -5,7 +5,7 @@ export default {
         setting: 'Personal Settings',
         setting: 'Personal Settings',
         logout: 'Log out',
         logout: 'Log out',
         joinClass: 'Join Course',
         joinClass: 'Join Course',
-        classPla: "Please enter the course invitation code",
+        classPla: "Ex: 541376",
         exam: 'Assessment',
         exam: 'Assessment',
         vote: 'Poll',
         vote: 'Poll',
         survey: 'Survey'
         survey: 'Survey'
@@ -22,7 +22,7 @@ export default {
         privateSurvey: 'Personal Survey',
         privateSurvey: 'Personal Survey',
         search: 'Please enter the query content...',
         search: 'Please enter the query content...',
         notice: 'This feature is not yet available, stay tuned!',
         notice: 'This feature is not yet available, stay tuned!',
-        develop: "开发中",
+        develop: "Features are under development, stay tuned!",
     },
     },
     type: {
     type: {
         home: "Home",
         home: "Home",
@@ -63,7 +63,7 @@ export default {
     },
     },
     'settingView-title': 'Personal Settings',
     'settingView-title': 'Personal Settings',
     'teammodel-account-management': {
     'teammodel-account-management': {
-        'page-title': 'Team Model Account Management',
+        'page-title': 'TEAM Model Account Management',
         name: 'Name',
         name: 'Name',
         account: 'Account',
         account: 'Account',
         password: 'Password',
         password: 'Password',
@@ -91,7 +91,7 @@ export default {
     defaultClassTime: 'Wednesday 13:30-16:30 (Sections 7-9)',
     defaultClassTime: 'Wednesday 13:30-16:30 (Sections 7-9)',
     defaultClassPlace: 'F504 classroom in the fifth teaching building',
     defaultClassPlace: 'F504 classroom in the fifth teaching building',
     todaydeadlineList: 'Today deadline event reminder',
     todaydeadlineList: 'Today deadline event reminder',
-    endsToday: "今日",
+    endsToday: "Today",
     endsTodayTime: 'ends today at 23:59',
     endsTodayTime: 'ends today at 23:59',
     addCourse: "Enter the course invitation code to join it",
     addCourse: "Enter the course invitation code to join it",
     courseType: {
     courseType: {
@@ -252,16 +252,16 @@ export default {
         option: 'Options',
         option: 'Options',
         haveNum: "Number of votes available",
         haveNum: "Number of votes available",
         excessNum: "Exceeded the number of votes available",
         excessNum: "Exceeded the number of votes available",
-        delTitle: "投票已被删除,是否删除此条记录?",
-        delOk: "删除",
-        delCancel: "取消",
-        delSuccess: "删除成功",
+        delTitle: "The poll has been deleted, do you want to delete this record?",
+        delOk: "Delete",
+        delCancel: "Cancel",
+        delSuccess: "Deleted successfully",
         type: {
         type: {
-            once: "单次",
-            day: "每日",
-            week: "每周",
-            month: "每月",
-            year: "每年",
+            once: "Once",
+            day: "Daily",
+            week: "Weely",
+            month: "Monthly",
+            year: "Yearly",
         },
         },
     },
     },
     homework: {
     homework: {
@@ -335,11 +335,11 @@ export default {
             exitQuizhintDes: 'the current answer will not be saved, and the assessment will need to be retaken next time.',
             exitQuizhintDes: 'the current answer will not be saved, and the assessment will need to be retaken next time.',
             cancel: 'Cancel',
             cancel: 'Cancel',
             ok: 'OK',
             ok: 'OK',
-            submitQuizhint: 'Reminder for submission of answers',
+            submitQuizhint: 'Reminder',
             submitQuizhintDes1: 'The system has detected that you have completed all questions. Are you sure to submit your answers? ',
             submitQuizhintDes1: 'The system has detected that you have completed all questions. Are you sure to submit your answers? ',
             check: 'No, need to check again',
             check: 'No, need to check again',
             conAnswer0: 'Currently you have',
             conAnswer0: 'Currently you have',
-            conAnswer1: 'question(s) not answered (check the answer card for detail)',
+            conAnswer1: ' question(s) not answered (check the answer card for detail)',
             conAnswer2: ', please complete the question first! ',
             conAnswer2: ', please complete the question first! ',
             conAnswer: 'Continue to answer',
             conAnswer: 'Continue to answer',
             okSubmit: 'Confirm to submit answers',
             okSubmit: 'Confirm to submit answers',
@@ -481,7 +481,7 @@ export default {
     defaultClass: 'Scheduled Course',
     defaultClass: 'Scheduled Course',
     tempClass: 'Temporary Course',
     tempClass: 'Temporary Course',
     courseContent: {
     courseContent: {
-        noCourse: "暂无课程",
+        noCourse: "No course yet",
         baseInfo: 'Basic Information',
         baseInfo: 'Basic Information',
         description: 'Course Overview',
         description: 'Course Overview',
         classmates: 'Classmates list',
         classmates: 'Classmates list',
@@ -501,10 +501,10 @@ export default {
         no1: "Group",
         no1: "Group",
         no2: "",
         no2: "",
         noGroup: "Not grouped yet",
         noGroup: "Not grouped yet",
-        noTeacher: "暂无老师",
-        noTime: "暂未安排时间",
-        noRoom: "暂无教室",
-        courseCode: "课程二维码",
+        noTeacher: "No instructor yet",
+        noTime: "Not yet scheduled",
+        noRoom: "Not yet set",
+        courseCode: "Course QR Code",
         me: "me",
         me: "me",
     },
     },
     'calendar-title': 'Calendar-Second semester of 2020 school year',
     'calendar-title': 'Calendar-Second semester of 2020 school year',

+ 3 - 0
TEAMModelOS/ClientApp/src/locale/lang/en-US/syllabus.js

@@ -62,6 +62,7 @@ export default{
 	doSuc:'Operate successfully',
 	doSuc:'Operate successfully',
 	saveFailTip:'Failed to save',
 	saveFailTip:'Failed to save',
 	isExistVolume:'The same book name already exists',
 	isExistVolume:'The same book name already exists',
+	unSaveTip:'You have not saved the changes, are you sure to leave?',
     tree:{
     tree:{
 		hasResource:'Related Resource',
 		hasResource:'Related Resource',
 		hasCoEdit:'With co-editing authorization',
 		hasCoEdit:'With co-editing authorization',
@@ -74,6 +75,8 @@ export default{
 		addTitle:'Add Topic',
 		addTitle:'Add Topic',
 		parent:'Created Under',
 		parent:'Created Under',
 		nodeName:'Topic Name',
 		nodeName:'Topic Name',
+		addChapterTitle:'Add Topic',
+		chapterName:'Topic Name',
 		place1:'Please enter topic name...',
 		place1:'Please enter topic name...',
 		confirm:'Confirm',
 		confirm:'Confirm',
 		removeTitle:'Delete Topic',
 		removeTitle:'Delete Topic',

+ 14 - 13
TEAMModelOS/ClientApp/src/locale/lang/en-US/system.js

@@ -3,12 +3,12 @@ export default {
     title:'TEAM Model Cloud',
     title:'TEAM Model Cloud',
     loading:'Loading',
     loading:'Loading',
     authErr:'Insufficient authorization!',
     authErr:'Insufficient authorization!',
-    development:'Features are under development',
+    development:'Features are under development, stay tuned!',
     menu:{
     menu:{
         school:'School',
         school:'School',
         private:'Personal',
         private:'Personal',
         noSchool1:'The school has not purchased the service yet',
         noSchool1:'The school has not purchased the service yet',
-        noSchool2:'Not a member of the school yet',
+        noSchool2:'Not a member of a school yet',
         copyright:'©2021 HABOOK Group',
         copyright:'©2021 HABOOK Group',
         schoolMgt:'Management',
         schoolMgt:'Management',
         schoolRes:'Resource',
         schoolRes:'Resource',
@@ -18,6 +18,7 @@ export default {
         classMgt:'Classroom',
         classMgt:'Classroom',
         cusSetting:'Course Settings',
         cusSetting:'Course Settings',
         cusPlanMgt:'Scheduling Management',
         cusPlanMgt:'Scheduling Management',
+        schoolNotify: 'Announcement',
         authMgt:'Authorization',
         authMgt:'Authorization',
         preview:'Preview',
         preview:'Preview',
         scSyllabus:'Syllabus',
         scSyllabus:'Syllabus',
@@ -47,17 +48,17 @@ export default {
         acRecord: 'Activity Record',
         acRecord: 'Activity Record',
         cusMgt:'Course',
         cusMgt:'Course',
         taskList:'Task List',
         taskList:'Task List',
-        train:'研修中心',
-        trainData:'研修數據',
-        abilityPoint:'微能力點',
-        scTrain:'校本研修',
-        appAbility:'應用能力',
-        classRecord:'課堂實錄',
-        resourceCenter:'資源中心',
-        trainCount:'研修統計',
-        onlineTrain:'線上研修',
-        appAssassment:'應用考核',
-        discuss:'討論中心'
+        train:'Seminar Center',
+        trainData:'Seminar Data',
+        abilityPoint:'Micro Capability Points',
+        scTrain:'School Seminar',
+        appAbility:'Application Capabilities',
+        classRecord:'Lesson Recordings',
+        resourceCenter:'Resource Center',
+        trainCount:'Seminar Statistics',
+        onlineTrain:'Online Seminar',
+        appAssassment:'Application Appraisal',
+        discuss:'Discussion Center'
     },
     },
     compt: {
     compt: {
         cusWare: 'Teaching Material',
         cusWare: 'Teaching Material',

+ 0 - 1
TEAMModelOS/ClientApp/src/locale/lang/en-US/talMgmt.js

@@ -49,7 +49,6 @@ export default {
     text48: 'Re-Check Quiz',
     text48: 'Re-Check Quiz',
     text49: 'Common Used Tech Distribution',
     text49: 'Common Used Tech Distribution',
     text50: 'Total',
     text50: 'Total',
-    text51: 'English',
     text52: 'Language',
     text52: 'Language',
     text53: 'English',
     text53: 'English',
     text54: 'Math',
     text54: 'Math',

+ 11 - 11
TEAMModelOS/ClientApp/src/locale/lang/en-US/task.js

@@ -5,22 +5,22 @@ export default {
     markStatus3:'Has ended',    
     markStatus3:'Has ended',    
     markMode1:'Mark by question',    
     markMode1:'Mark by question',    
     markMode2:'Mark by people',    
     markMode2:'Mark by people',    
-    mLabel1:'人數',    
+    mLabel1:'No. Of People',
     mLabel2:'已閱',    
     mLabel2:'已閱',    
     mLabel3:'未閱',    
     mLabel3:'未閱',    
     mLabel4:'In progress',    
     mLabel4:'In progress',    
     mLabel5:'Question Number',    
     mLabel5:'Question Number',    
-    mLabel6:'人數',    
+    mLabel6:'No. Of People',
     markProg:'Marking Progress',    
     markProg:'Marking Progress',    
     mark:'批閱',
     mark:'批閱',
-    objectiveQu:'客观题已由系统自动完成评分。',
-    lastLabel1:'剩',
-    lastLabel2:'人未,',
-    continue:'继续阅卷',
-    totalLabel1:'阅卷总量',
+    objectiveQu:'客觀題已由系統自動完成評分。 ',
+    lastLabel1:'剩',
+    lastLabel2:'人未,',
+    continue:'繼續閱卷',
+    totalLabel1:'閱卷總量',
     totalLabel2:'人,',
     totalLabel2:'人,',
-    start:'开始阅卷',
-    noUnmark:'暂无未阅学生',
-    noMarking:'暂无进行中学生',
-    noMarked:'暂无已阅学生',
+    start:'開始閱卷',
+    noUnmark:'暫無未閱學生',
+    noMarking:'暫無進行中學生',
+    noMarked:'暫無已閱學生',
 }
 }

+ 7 - 3
TEAMModelOS/ClientApp/src/locale/lang/en-US/teachContent.js

@@ -55,10 +55,14 @@ export default {
   specialChart: 'Cannot contain special characters',
   specialChart: 'Cannot contain special characters',
   noData: 'No data yet',
   noData: 'No data yet',
   applyPd: 'Applicable School System:',
   applyPd: 'Applicable School System:',
-  applySub: 'Applicable Subject:',
-  applyGrade: 'Applicable Grade:',
+  applySub: 'Subject:',
+  applyGrade: 'Grade:',
   public: 'Public Resources',
   public: 'Public Resources',
   startDown: 'Start Downloading',
   startDown: 'Start Downloading',
   videoTips:'Friendly reminder: Only MP4 format is supported for online video playing! ',
   videoTips:'Friendly reminder: Only MP4 format is supported for online video playing! ',
-  spaceTips: 'School Available Space = Total School Space - Space Allocated To Teachers'
+  spaceTips: 'School Available Space = Total School Space - Space Allocated To Teachers',
+  common:'通用',
+  renameTitle:'重命名',
+  fileName:'文件名:'
+  
 }
 }

+ 8 - 4
TEAMModelOS/ClientApp/src/locale/lang/en-US/teachermgmt.js

@@ -4,7 +4,7 @@ export default {
         text2: 'Add New Teacher',
         text2: 'Add New Teacher',
         text3: '教研组',
         text3: '教研组',
     },
     },
-    blurryFilter: 'Please enter keywords or account information...',
+    blurryFilter: 'Please enter ID or Name to search',
     mulitSet: 'Batch Authorization Management',
     mulitSet: 'Batch Authorization Management',
     table:{
     table:{
         text1: 'Basic',
         text1: 'Basic',
@@ -17,7 +17,6 @@ export default {
     authSet:{
     authSet:{
         title:'Authorization Settings',
         title:'Authorization Settings',
         subTitle: 'The account you want to change the authorization',
         subTitle: 'The account you want to change the authorization',
-        jobTitle: 'Add Title',
         area1:{
         area1:{
             title:'District, class and school management page',
             title:'District, class and school management page',
             read: 'Allow viewing of district, class and school management pages',
             read: 'Allow viewing of district, class and school management pages',
@@ -58,7 +57,9 @@ export default {
         info17: 'Are you sure to approve',
         info17: 'Are you sure to approve',
         info18: "'s application",
         info18: "'s application",
         info19: "Can't find this teacher's information",
         info19: "Can't find this teacher's information",
-        noIdCol:'導入表格沒有id欄位,請檢查表格數據! '
+        info20: 'This user has already been invited!',
+        info21: 'The invited user has already joined the school!',
+        noIdCol: 'There is no id column in the imported form, please check the form data! '
     },
     },
     job: {
     job: {
         'jobTitle': 'Add Title',
         'jobTitle': 'Add Title',
@@ -149,5 +150,8 @@ export default {
         groundBox:{
         groundBox:{
             inviteAll: 'Send invitation to all'
             inviteAll: 'Send invitation to all'
         }
         }
-    }
+    },
+    saveWarning:'Reminder',
+    warningCnt:'The the current space data is not yet saved. If you leave, the modified data will not be retained!',
+    leaveText:'Exit'
 }
 }

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2 - 3
TEAMModelOS/ClientApp/src/locale/lang/en-US/tip.js


+ 2 - 2
TEAMModelOS/ClientApp/src/locale/lang/en-US/totalAnalysis.js

@@ -13,7 +13,8 @@ export default {
 	noKnowPointTip: 'No key concept data was collected under this subject',
 	noKnowPointTip: 'No key concept data was collected under this subject',
 	lostStu: 'Absentee Number',
 	lostStu: 'Absentee Number',
 	showAnalysis: 'Data Analysis',
 	showAnalysis: 'Data Analysis',
-	allSubjects: 'All Subject',
+    allSubjects: 'All Subject',
+    noData: 'No valid data yet!',
 	allClasses: 'All Class',
 	allClasses: 'All Class',
 	all: 'All',
 	all: 'All',
 	classBaseInfo: 'Class Basic Data',
 	classBaseInfo: 'Class Basic Data',
@@ -36,7 +37,6 @@ export default {
     condition6: 'Mode',
     condition6: 'Mode',
     condition7: 'Subject',
     condition7: 'Subject',
     condition8: 'Academic Year',
     condition8: 'Academic Year',
-
     // totalIndex.vue
     // totalIndex.vue
     ti_title1: 'Basic Data Statistics',
     ti_title1: 'Basic Data Statistics',
     ti_title2: 'Learning Status Analysis',
     ti_title2: 'Learning Status Analysis',

+ 1 - 1
TEAMModelOS/ClientApp/src/locale/lang/en-US/unit.js

@@ -11,6 +11,6 @@ export default {
     text10: ' question(s)',
     text10: ' question(s)',
     text11: 'point(s)',
     text11: 'point(s)',
     text12: 'total',
     text12: 'total',
-	text13:'person',
+    text13:'No. Of People',
     gradeYear:'',
     gradeYear:'',
   }
   }

+ 1 - 1
TEAMModelOS/ClientApp/src/locale/lang/en-US/user.js

@@ -35,7 +35,7 @@ export default{
     confirm:'Confirm',
     confirm:'Confirm',
     cancel:'Cancel',
     cancel:'Cancel',
     toStudent:'Switching to Student',
     toStudent:'Switching to Student',
-    toArea:'前往區級平台',
+    toArea:'Go To District Platform',
     schoolMgt:'School Management',
     schoolMgt:'School Management',
     systemSet:'System Settings',
     systemSet:'System Settings',
 }
 }

+ 14 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/cusMgt.js

@@ -148,6 +148,14 @@ export default {
     groupUnit:'组',
     groupUnit:'组',
     stuNameList:'学生名单',
     stuNameList:'学生名单',
     saveGroup:'保存分组',
     saveGroup:'保存分组',
+    setAvatar:'设置头像',
+    stuNameLabel:'姓名:',
+    reupload:'重新上传',
+    uploadAvatar:'上传头像',
+    uploadTips:'请上传头像',
+    setOk:'设置成功',
+    setErr:'设置失败',
+    uploadErr:'头像上传失败',
     
     
     //NewCusMgt.vue
     //NewCusMgt.vue
     schdTable:'课表模式',
     schdTable:'课表模式',
@@ -159,6 +167,10 @@ export default {
     cusTime:'课程时段',
     cusTime:'课程时段',
     saveLabel:'保存变更',
     saveLabel:'保存变更',
     addStuList:'添加名单',
     addStuList:'添加名单',
+    addListType:'方式',
+    addListType1:'新建名单',
+    addListType2:'选择已有名单',
+    listLabel:'名单',
     removeList:'移除名单',
     removeList:'移除名单',
     addrLabel:'上课教室:',
     addrLabel:'上课教室:',
     nameLabel:'班级名单:',
     nameLabel:'班级名单:',
@@ -199,6 +211,8 @@ export default {
     remvTeaTitle:'移除授课老师',
     remvTeaTitle:'移除授课老师',
     remvTeaContent:'是否确认移除',
     remvTeaContent:'是否确认移除',
     gradeLabel:'年级',
     gradeLabel:'年级',
+    cusNoRepeat:'课程编码重复',
+    cusNameRepeat:'课程名称重复',
 
 
     //MgtStuList.vue
     //MgtStuList.vue
     nameList:'名单',
     nameList:'名单',

+ 8 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/home.js

@@ -45,5 +45,12 @@ export default{
     noNotice:'暂无公告',
     noNotice:'暂无公告',
     noInfo:'暂无推送',
     noInfo:'暂无推送',
     schoolLabel:'校本',
     schoolLabel:'校本',
-    privateLabel:'个人'
+    privateLabel:'个人',
+    mon:'一',
+    tues:'二',
+    wed:'三',
+    thur:'四',
+    fri:'五',
+    sat:'六',
+    sun:'日'
 }
 }

+ 4 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/index.js

@@ -38,6 +38,8 @@ import notice from './notice'
 import answerSheet from './answerSheet'
 import answerSheet from './answerSheet'
 import tip from './tip'
 import tip from './tip'
 import selflearn from './selflearn'
 import selflearn from './selflearn'
+import notify from './notify'
+import jyzx from './jyzx';
 export default {
 export default {
   schoolBaseInfo,
   schoolBaseInfo,
   classMgmt,
   classMgmt,
@@ -79,6 +81,8 @@ export default {
   answerSheet,
   answerSheet,
   tip,
   tip,
   selflearn,
   selflearn,
+  notify,
+  jyzx,
   test: '测试',
   test: '测试',
   formConfigP: {
   formConfigP: {
     input: '请输入',
     input: '请输入',

+ 183 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/jyzx.js

@@ -0,0 +1,183 @@
+export default{
+    common: {
+        theme: "话题",
+        content: "内容",
+        reply: "回复",
+        comment: "评论回复",
+        report: "举报",
+        sure: "确定",
+        cancel: "取消",
+        delete: "删除",
+        complete: "已完成",
+        loadTime: "上传时间",
+        action: "操作",
+        seeEvaluate: "查看评价",
+        school: "校",
+        area: "区",
+        typeSch: "校级",
+        typeArea: "区级",
+        point: "能力点",
+        pointName: "能力点名称",
+        dimension: "维度",
+        message: "请选择举报类型:",
+        success1: "回复成功",
+        success2: "举报成功",
+        success3: "删除成功",
+        error: "删除失败",
+    },
+    // 线上研修
+    online: {
+        checkedPoint: "已选能力点",
+        addPoint: "增加能力点",
+        compulsory: "必修",
+        elective: "选修",
+        studyTime: "学时",
+        chapter: "章节",
+        resources: "有关联资源",
+        relResources: "关联资源",
+        relTopic: "关联话题",
+        study: "您已学习:",
+        time: "/20学时",
+        tips: "必修能力点已为您默认勾选!点击确定后就可开始学习",
+        type: "状态",
+        no: "标号",
+        environment: "所属环境",
+        message1: "增加能力点成功",
+        message2: "已学完本章节",
+        message3: "该能力点已学完",
+        placeholder1: "发起新的话题",
+        release: "发布",
+        relSucess: "话题发布成功",
+    },
+    // 校本研修
+    offline: {
+        activity: "研修活动",
+        info: "详细信息",
+        creator: "创建者",
+        noPeople: "无",
+        joinNum: "参与人数",
+        actTime: "活动时间",
+        target: "学习对象",
+        basicInfo: "基础信息",
+        studyTar: "研修目标",
+        address: "培训地点",
+        speaker: "主讲人",
+        type: "类型",
+        studyTime: "学时",
+        homework: "作业",
+        hwName: "作业名称",
+        hwDes: "作业描述",
+        hwUpload: "上传作业",
+        againLoad: "重新上传",
+        question: "问卷",
+        queName: "问卷名称",
+        queDes: "问卷描述",
+        queAnswer: "作答问卷",
+        feedback: "问卷反馈",
+        answered: "已作答",
+        exam: "评测",
+        examName: "评测名称",
+        examDes: "评测描述",
+        examAnswer: "作答评测",
+        answerExam: "评测作答",
+        right: "答对",
+        error: "答错",
+        topic: "题",
+        success1: "保存成功",
+        success2: "上传成功",
+        error1: "保存失败",
+        error1: "上传失败",
+        message1: "问卷未填写完,请继续填写",
+        message2: "评测未作答完,请继续作答",
+        placeholder1: "输入您的回答内容...",
+    },
+    // 应用考核
+    application: {
+        list: "成果列表",
+        discuss: "成果互评",
+        disNum: "互评次数",
+        disByMe: "自评结果",
+        disBySchool: "校评结果",
+        spotCheck: "专家抽查",
+        testByMe: "自我检测结果",
+        fine: "优秀",
+        qualified: "合格",
+        unqualified: "不合格",
+        noEvaluate: "未评价",
+        pass: "通过",
+        noPass: "未通过",
+        load: "上传文件",
+        againTest: "重新检测",
+        meTest: "自我检测",
+        score: "前往评分",
+        againScore: "重新评分",
+        evaName: "评价人",
+        evaType: "评测类型",
+        evaResult: "评价结果",
+        evaContent: "评价内容",
+        evaTime: "评价时间",
+        evaSchool: "校评",
+        evaOther: "互评",
+        evaMe: "自评",
+        admin: "管理员",
+        teacher: "老师",
+        noCheck: "未抽查",
+        teacherName: "教师姓名",
+    },
+    // 课堂实录
+    classRecord: {
+        myRecod: "我的课堂实录",
+        groupRecord: "同组课堂实录",
+        loadOK: "确认上传",
+        videoName: "视频名称",
+        fileSize: "文件大小",
+        loadDes: "选择或者拖拽文件到该区域进行上传",
+        loadAuth: "上传作者",
+        size: "大小",
+        see: "查看课程及评价",
+        evaName: "评价人",
+        evaType: "评测类型",
+        evaResult: "评价结果",
+        evaContent: "评价内容",
+        evaTime: "评价时间",
+        message1: "您确实要删除这条视频吗?",
+        message2: "上传失败",
+        message3: "上传成功",
+        message4: "删除成功",
+        message5: "删除失败",
+        message6: "暂无同组课堂实录",
+    },
+    // 讨论中心
+    discuss: {
+        addTopic: "新增话题",
+        topicType: "话题类型",
+        normal: "普通话题",
+        point: "能力点话题",
+        allTopic: "所有话题",
+        myTopic: "我的话题",
+        replyMe: "回复我的",
+        placeholder1: "请输入关键字",
+        placeholder2: "新的话题",
+        placeholder3: "请选择",
+        placeholder4: "请输入正文",
+        success1: "发表成功",
+        error1: "发表失败",
+        message1: "切换至我的话题",
+        message2: "切换至回复我的",
+    },
+    // 活动
+    activity: {
+        des: "描述",
+        voteArea: "投票区",
+        haveVoteNum: "可投票数",
+        submit: "提交投票",
+        startTime: "发起时间",
+        numExce: "投票数已超出",
+        incomplete: "未完成",
+        success1: "投票成功",
+        success2: "提交成功!",
+        message1: "您还未投票",
+        message2: "存在未作答的题目!",
+        message3: "已作答的问卷无法修改!",
+    },
+}

+ 13 - 2
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/learnActivity.js

@@ -97,7 +97,7 @@ export default{
         delPdContent:'是否确认删除',
         delPdContent:'是否确认删除',
         delOk:'删除成功',
         delOk:'删除成功',
         pdTips:'请先选择测试学段!',
         pdTips:'请先选择测试学段!',
-        defaultPaper:'(请先挑选或导入试卷)',
+        defaultPaper:'请先挑选试卷',
     },
     },
     // ManualPaper.vue
     // ManualPaper.vue
     manual:{
     manual:{
@@ -191,7 +191,16 @@ export default{
         nextQu: '下一题',
         nextQu: '下一题',
         view:'查看',
         view:'查看',
         requesting:'数据请求中,请稍后......',
         requesting:'数据请求中,请稍后......',
-        dataError:'数据请求异常,请刷新页面再试'
+        dataError:'数据请求异常,请刷新页面再试',
+        byStuMark:'按人批阅',
+        byQuMark:'按题批阅',
+        noStuAnswer:'学生暂未作答',
+        toggleQu:'切换题目',
+        viewMark:'查看批注',
+        markLabel:'批注',
+        saveScoreTitle:'保存分数',
+        saveScoreContent:'您修改的分数尚未保存,是否需要保存?',
+
     },
     },
 
 
     //SimpleAnalysis.vue
     //SimpleAnalysis.vue
@@ -309,6 +318,8 @@ export default{
         selectTeaTips:'请设置当前题块的阅卷老师',
         selectTeaTips:'请设置当前题块的阅卷老师',
         lastQu:'题目尚未完全分配',
         lastQu:'题目尚未完全分配',
         reapQu:'题目划块设置存在重复题目',
         reapQu:'题目划块设置存在重复题目',
+        objectiveLabel:'(客)',
+        alreadyLabel:'(已)',
         //ByqU.vue & ByStu.vue
         //ByqU.vue & ByStu.vue
         quit:'退出阅卷',
         quit:'退出阅卷',
         examName:'考试名称:',
         examName:'考试名称:',

+ 36 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/notify.js

@@ -0,0 +1,36 @@
+export default {
+    createTitle:'创建学校公告',
+    title:'标题',
+    titleHolder:'请输入标题',
+    notifyTime:'时间',
+    notifyContent:'内容',
+    saveText:'保存公告',
+    publishText:'发布公告',
+    cancelEdit:'取消编辑',
+    cancelPublish:'取消发布',
+    timeTips:'请设置公告时间',
+    contentTips:'请输入公告内容',
+    titleTips:'请输入公告标题',
+    reserveContent:'是否保留此次编辑?',
+    reserveOk:'保留',
+    reserveCancel:'不保留',
+    fullInfoTips:'请完善公告信息!',
+    search:'搜索',
+    draft:'草稿箱',
+    toCreate:'创建公告',
+    pending:'待发布',
+    going:'公告中',
+    finish:'已公告',
+    ntTime:'公告时间:',
+    delete:'删除',
+    view:'查看',
+    edit:'编辑',
+    noNotify:'暂无公告',
+    notifyDetail:'公告详情',
+    delNotifyTitle:'删除公告',
+    delNotifyContent:'是否确认删除',
+    ok:'是',
+    no:'否',
+    delOk:'删除成功',
+    delErr:'删除失败'
+}

+ 13 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/schoolBaseInfo.js

@@ -99,6 +99,18 @@ export default {
   semesterName: '名称',
   semesterName: '名称',
   semStartAt: '开始于',
   semStartAt: '开始于',
   admission: '入学期',
   admission: '入学期',
+  setStartSem:'请设置入学期',
+  semTimeTips:'请设置学期开始日期',
+  semNameTips:'学期名称不能为空',
+  semStartTips:'请设置是否为入学期',
+  gradeNameTips:'请设置年级名称',
+  examNameTips:'请设置考试类型',
+  profNameTips:'请设置专业名称',
+  anaNameTips:'请完善学情设置',
+  campNameTips:'请输入校区名称',
+  subjectNameTips:'请输入学科/专业名称',
+  delTimeTitle:'删除时段',
+  delTimeContent:'是否确认删除当前时段?',
 
 
   // ClassroomSetting.vue
   // ClassroomSetting.vue
   classroomList: '教室列表',
   classroomList: '教室列表',
@@ -202,6 +214,7 @@ export default {
   addErr: '添加失败',
   addErr: '添加失败',
   cusTabel: '课程表',
   cusTabel: '课程表',
   setCusTable: '设置课表',
   setCusTable: '设置课表',
+  fullRoomInfo:'请先完善教室信息!',
 
 
   //ClassMgt.vue
   //ClassMgt.vue
   className: '名称',
   className: '名称',

+ 34 - 32
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/stuAccount.js

@@ -28,18 +28,19 @@ export default {
   tips2Content3: '确认批量删除',
   tips2Content3: '确认批量删除',
   tips2Content4: '个学生',
   tips2Content4: '个学生',
   tips3: '请选择需要删除的学生!',
   tips3: '请选择需要删除的学生!',
-  sltPdFirst:'请先选择学段',
-  sltGdFirst:'请先选择年级',
-  noClass:'此年级暂无班级',
-  noRelClass:'未关联班级',
-  resetPw:'重置密码',
-  semYear:'学年度:',
-  delOk:'删除成功',
-  isBottom:'已经到底了',
-  edit:'修改',
-  adminClass:'行政班',
-  teachClass:'教学班',
-  stuMgt:'学生管理',
+  sltPdFirst: '请先选择学段',
+  sltGdFirst: '请先选择年级',
+  noClass: '此年级暂无班级',
+  noRelClass: '未关联班级',
+  resetPw: '重置密码',
+  semYear: '学年度:',
+  delOk: '删除成功',
+  isBottom: '已经到底了',
+  edit: '修改',
+  adminClass: '行政班',
+  teachClass: '教学班',
+  stuMgt: '学生管理',
+  filterNoClass: '筛选未关联班级学生',
 
 
   // AddStudent.vue
   // AddStudent.vue
   accountInfo: '账号资讯',
   accountInfo: '账号资讯',
@@ -62,9 +63,9 @@ export default {
   chooseNum: '总计:',
   chooseNum: '总计:',
   numUnit: '条',
   numUnit: '条',
   academicYear: '学级',
   academicYear: '学级',
-  noMatch:'暂无匹配数据',
-  stuIdErr:'学生账号不能为空',
-  stuIdErr1:'学生账号只能包含数字',
+  noMatch: '暂无匹配数据',
+  stuIdErr: '学生账号不能为空',
+  stuIdErr1: '学生账号只能包含数字',
 
 
   // ImportStudent.vue
   // ImportStudent.vue
   importTitle: '导入学生名单',
   importTitle: '导入学生名单',
@@ -88,20 +89,21 @@ export default {
   importInfo6: '可导入:',
   importInfo6: '可导入:',
   passwordTips: '未导入密码的学生将默认密码与账号相同',
   passwordTips: '未导入密码的学生将默认密码与账号相同',
   submitList: '建立账号',
   submitList: '建立账号',
-  lackAttr:'Excel栏位有缺:',
-  noSetNo:'沒有座号:',
-  gradeErr:'年级错误:',
-  attrWarning:'警告:Excel 內栏位不完整!',
-  setNoWarning:'警告:Excel 內的座位号重覆!',
-  idWarning:'警告:Excel 內账号重复!',
-  idFormatWarning:'错误:学生账号只能包含数字',
-  gradeWarning:'警告:年级错误',
-  setNoErr:"错误:座位号已在校內重复",
-  downloadText:'(下载名单模板)',
-  idRepErr:'账号已存在,将覆盖原有账号',
-  stuYearErr:'学生学级数据错误',
-  classYearErr:'班级年级错误',
-
+  lackAttr: 'Excel栏位有缺:',
+  noSetNo: '沒有座号:',
+  gradeErr: '年级错误:',
+  attrWarning: '警告:Excel 內栏位不完整!',
+  setNoWarning: '警告:Excel 內的座位号重覆!',
+  idWarning: '警告:Excel 內账号重复!',
+  idFormatWarning: '错误:学生账号只能包含数字',
+  gradeWarning: '警告:年级错误',
+  setNoErr: "错误:座位号已在校內重复",
+  downloadText: '(下载名单模板)',
+  idRepErr: '账号已存在,将覆盖原有账号',
+  stuYearErr: '学生学级数据错误',
+  classYearErr: '班级年级错误',
+  importOk: '导入成功',
+  
   // Authorization.vue
   // Authorization.vue
   authTitle: '服务授权管理',
   authTitle: '服务授权管理',
   authTitle1: 'AClassOne智慧学伴服务授权',
   authTitle1: 'AClassOne智慧学伴服务授权',
@@ -112,7 +114,7 @@ export default {
   authNum: '各学段授权使用状态',
   authNum: '各学段授权使用状态',
 
 
   //StudentList.vue
   //StudentList.vue
-  filterLabel:'筛选条件:',
-  noSchool:'暂未归属学校',
-  isBottom:'已经到底了'
+  filterLabel: '筛选条件:',
+  noSchool: '暂未归属学校',
+  isBottom: '已经到底了'
 }
 }

+ 5 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/teachContent.js

@@ -60,5 +60,9 @@ export default {
   public: '公共资源',
   public: '公共资源',
   startDown: '开始下载',
   startDown: '开始下载',
   videoTips: '温馨提示:视频只支持MP4格式在线播放!',
   videoTips: '温馨提示:视频只支持MP4格式在线播放!',
-  spaceTips: '学校可用空间 = 学校总空间 - 分配给教师的空间'
+  spaceTips: '学校可用空间 = 学校总空间 - 分配给教师的空间',
+  common:'通用',
+  renameTitle:'重命名',
+  fileName:'文件名:'
+
 }
 }

+ 3 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/classMgmt.js

@@ -75,13 +75,15 @@ export default {
     pptImport: '匯入.pptx',
     pptImport: '匯入.pptx',
     powerclick: 'Power Click',
     powerclick: 'Power Click',
     hteOpen: '開啟.hte',
     hteOpen: '開啟.hte',
+    Other: '白板',
+
     ActIrsMode: '互動模式',
     ActIrsMode: '互動模式',
     edit: '編輯模式',
     edit: '編輯模式',
     ActPowerClickMode: 'Power Click',
     ActPowerClickMode: 'Power Click',
     ActSelfPaceMode: '測驗模式',
     ActSelfPaceMode: '測驗模式',
     ActDscMode: '遠距模式',
     ActDscMode: '遠距模式',
     ActElimitedMode: '挑戰賽模式',
     ActElimitedMode: '挑戰賽模式',
-    Other: '白板',
+
     today: '今日',
     today: '今日',
     lastweek: '前七日',
     lastweek: '前七日',
     unauthorization: '未授權',
     unauthorization: '未授權',

+ 2 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/courseManage.js

@@ -57,7 +57,8 @@ export default {
         classroomName: '教室名稱',
         classroomName: '教室名稱',
         classroomAttr: '教室內容',
         classroomAttr: '教室內容',
         classroomType: '教室類型',
         classroomType: '教室類型',
-        classroomTeacher: '授課教師',
+        classroomTeacher: '班導師',
+        classroomTeacher1: '授課教師',
         classroomNotice: '備註',
         classroomNotice: '備註',
         deleteStudent: '刪除所選學生',
         deleteStudent: '刪除所選學生',
         deleteStuBtn: '刪除',
         deleteStuBtn: '刪除',

+ 15 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/cusMgt.js

@@ -99,7 +99,7 @@ export default {
     private:'個人',
     private:'個人',
     school:'學校',     
     school:'學校',     
     noRecord:'暫無課堂記錄',
     noRecord:'暫無課堂記錄',
-    groupTips:'溫馨提示:當前分組信息為編制班分組,任課教師可前往HiTeach端自定義分組。 ',
+    groupTips:'溫馨提示:當前分組為編制班分組,任課教師可前往HiTeach端自定義分組。 ',
     noSchoolStu:'暫未加入學校無法新增學校學生,可以建立自定義名單,學生通過掃碼加入名單!',
     noSchoolStu:'暫未加入學校無法新增學校學生,可以建立自定義名單,學生通過掃碼加入名單!',
     qrCodeLabel:'掃碼加入名單',
     qrCodeLabel:'掃碼加入名單',
     hasDelClass:'(此班已被刪除)',
     hasDelClass:'(此班已被刪除)',
@@ -148,6 +148,14 @@ export default {
     groupUnit: '組',
     groupUnit: '組',
     stuNameList: '學生名單',
     stuNameList: '學生名單',
     saveGroup: '儲存分組',
     saveGroup: '儲存分組',
+    setAvatar:'設置頭像',
+    stuNameLabel:'姓名:',
+    reupload:'重新上傳',
+    uploadAvatar:'上傳頭像',
+    uploadTips:'請上傳頭像',
+    setOk:'設置成功',
+    setErr:'設置失敗',
+    uploadErr:'頭像上傳失敗',
 
 
     //NewCusMgt.vue
     //NewCusMgt.vue
     schdTable: '課表模式',
     schdTable: '課表模式',
@@ -159,6 +167,10 @@ export default {
     cusTime: '課程時段',
     cusTime: '課程時段',
     saveLabel: '儲存變更',
     saveLabel: '儲存變更',
     addStuList: '新增名單',
     addStuList: '新增名單',
+    addListType:'方式',
+    addListType1:'新建名單',
+    addListType2:'選擇已有名單',
+    listLabel:'名單',
     removeList: '移除名單',
     removeList: '移除名單',
     addrLabel:'上課教室:',
     addrLabel:'上課教室:',
     nameLabel:'班級名單:',
     nameLabel:'班級名單:',
@@ -199,6 +211,8 @@ export default {
     remvTeaTitle: '移除授課老師',
     remvTeaTitle: '移除授課老師',
     remvTeaContent: '是否確認移除',
     remvTeaContent: '是否確認移除',
     gradeLabel: '年級',
     gradeLabel: '年級',
+    cusNoRepeat:'課程編碼重複',
+    cusNameRepeat:'課程名稱重複',
 
 
     //MgtStuList.vue
     //MgtStuList.vue
     nameList: '名單',
     nameList: '名單',

+ 9 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/home.js

@@ -45,5 +45,13 @@ export default {
     noNotice:'暫無公告',
     noNotice:'暫無公告',
     noInfo:'暫無推送',
     noInfo:'暫無推送',
     schoolLabel:'校本',
     schoolLabel:'校本',
-    privateLabel:'個人'
+    privateLabel:'個人',
+    mon:'一',
+    tues:'二',
+    wed:'三',
+    thur:'四',
+    fri:'五',
+    sat:'六',
+    sun:'日'
+    
 }
 }

+ 7 - 4
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/index.js

@@ -38,13 +38,14 @@ import notice from './notice'
 import answerSheet from './answerSheet'
 import answerSheet from './answerSheet'
 import tip from './tip'
 import tip from './tip'
 import selflearn from './selflearn'
 import selflearn from './selflearn'
+import notify from './notify'
+import jyzx from './jyzx';
 export default {
 export default {
-  
   schoolBaseInfo,
   schoolBaseInfo,
-  schoolMgmt,
-  totalAnalysis,
-  stuAccount,
   classMgmt,
   classMgmt,
+  stuAccount,
+  totalAnalysis,
+  schoolMgmt,
   talMgmt,
   talMgmt,
   menu,
   menu,
   courseManage,
   courseManage,
@@ -80,6 +81,8 @@ export default {
   answerSheet,
   answerSheet,
   tip,
   tip,
   selflearn,
   selflearn,
+  notify,
+  jyzx,
   test: '測試',
   test: '測試',
   formConfigP: {
   formConfigP: {
     input: '請輸入',
     input: '請輸入',

+ 183 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/jyzx.js

@@ -0,0 +1,183 @@
+export default{
+    common: {
+        theme: "話題",
+        content: "内容",
+        reply: "回復",
+        comment: "評論回復",
+        report: "舉報",
+        sure: "確定",
+        cancel: "取消",
+        delete: "删除",
+        complete: "已完成",
+        loadTime: "上傳時間",
+        action: "操作",
+        seeEvaluate: "查看評價",
+        school: "校",
+        area: "區",
+        typeSch: "校級",
+        typeArea: "區級",
+        point: "能力點",
+        pointName: "能力點名稱",
+        dimension: "維度",
+        message: "請選擇舉報類型:",
+        success1: "回復成功",
+        success2: "舉報成功",
+        success3: "删除成功",
+        error: "删除失敗",
+    },
+    // 线上研修
+    online: {
+        checkedPoint: "已選能力點",
+        addPoint: "增加能力點",
+        compulsory: "必修",
+        elective: "選修",
+        studyTime: "學時",
+        chapter: "章節",
+        resources: "有關聯資源",
+        relResources: "關聯資源",
+        relTopic: "關聯話題",
+        study: "您已學習:",
+        time: "/20學時",
+        tips: "必修能力點已為您默認勾選!點擊確定後就可開始學習",
+        type: "狀態",
+        no: "標號",
+        environment: "所屬環境",
+        message1: "增加能力點成功",
+        message2: "已學完本章節",
+        message3: "該能力點已學完",
+        placeholder1: "發起新的話題",
+        release: "發佈",
+        relSucess: "話題發佈成功",
+    },
+    // 校本研修
+    offline: {
+        activity: "研修活動",
+        info: "詳細資訊",
+        creator: "創建者",
+        noPeople: "無",
+        joinNum: "參與人數",
+        actTime: "活動時間",
+        target: "學習對象",
+        basicInfo: "基礎資訊",
+        studyTar: "研修目標",
+        address: "培訓地點",
+        speaker: "主講人",
+        type: "類型",
+        studyTime: "學時",
+        homework: "作業",
+        hwName: "作業名稱",
+        hwDes: "作業描述",
+        hwUpload: "上傳作業",
+        againLoad: "重新上傳",
+        question: "問卷",
+        queName: "問卷名稱",
+        queDes: "問卷描述",
+        queAnswer: "作答問卷",
+        feedback: "問卷迴響",
+        answered: "已作答",
+        exam: "評測",
+        examName: "評測名稱",
+        examDes: "評測描述",
+        examAnswer: "作答評測",
+        answerExam: "評測作答",
+        right: "答對",
+        error: "答錯",
+        topic: "題",
+        success1: "保存成功",
+        success2: "上傳成功",
+        error1: "保存失敗",
+        error1: "上傳失敗",
+        message1: "問卷未填寫完,請繼續填寫",
+        message2: "評測未作答完,請繼續作答",
+        placeholder1: "輸入您的回答内容...",
+    },
+    // 应用考核
+    application: {
+        list: "成果清單",
+        discuss: "成果互評",
+        disNum: "互評次數",
+        disByMe: "自評結果",
+        disBySchool: "校評結果",
+        spotCheck: "專家抽查",
+        testByMe: "自我檢測結果",
+        fine: "優秀",
+        qualified: "合格",
+        unqualified: "不合格",
+        noEvaluate: "未評估",
+        pass: "通過",
+        noPass: "未通過",
+        load: "上傳文件",
+        againTest: "重新檢測",
+        meTest: "自我檢測",
+        score: "前往評分",
+        againScore: "重新評分",
+        evaName: "評估人",
+        evaType: "評測類型",
+        evaResult: "評價結果",
+        evaContent: "評估內容",
+        evaTime: "評估時間",
+        evaSchool: "校評",
+        evaOther: "互評",
+        evaMe: "自評",
+        admin: "管理員",
+        teacher: "老師",
+        noCheck: "未抽查",
+        teacherName: "教師姓名",
+    },
+    // 课堂实录
+    classRecord: {
+        myRecod: "我的課堂實錄",
+        groupRecord: "同組課堂實錄",
+        loadOK: "確認上傳",
+        videoName: "視頻名稱",
+        fileSize: "文件大小",
+        loadDes: "選擇或者拖拽檔案到該區域進行上傳",
+        loadAuth: "上傳作者",
+        size: "大小",
+        see: "查看課程及評估",
+        evaName: "評估人",
+        evaType: "評測類型",
+        evaResult: "評價結果",
+        evaContent: "評估內容",
+        evaTime: "評估時間",
+        message1: "您確實要删除這條視頻嗎?",
+        message2: "上传失敗",
+        message3: "上传成功",
+        message4: "删除成功",
+        message5: "删除失敗",
+        message6: "暫無同組課堂實錄",
+    },
+    // 讨论中心
+    discuss: {
+        addTopic: "新增話題",
+        topicType: "話題類型",
+        normal: "普通話題",
+        point: "能力點話題",
+        allTopic: "所有話題",
+        myTopic: "我的話題",
+        replyMe: "回復我的",
+        placeholder1: "請輸入關鍵字",
+        placeholder2: "新的話題",
+        placeholder3: "請選擇",
+        placeholder4: "請輸入正文",
+        success1: "發表成功",
+        error1: "發表失敗",
+        message1: "切換至我的話題",
+        message2: "切換至回復我的",
+    },
+    // 活动
+    activity: {
+        des: "描述",
+        voteArea: "投票區",
+        haveVoteNum: "可投票數",
+        submit: "提交投票",
+        startTime: "發起時間",
+        numExce: "投票數已超出",
+        incomplete: "未完成",
+        success1: "投票成功",
+        success2: "提交成功!",
+        message1: "您還未投票",
+        message2: "存在未作答的題目!",
+        message3: "已作答的問卷無法修改!",
+    },
+}

+ 1 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/knowledge.js

@@ -60,7 +60,7 @@ export default {
 	import: {
 	import: {
 		title: '批量導入知識點',
 		title: '批量導入知識點',
 		sucTip: '文件解析成功!',
 		sucTip: '文件解析成功!',
-		tip1: '選擇或者拖文件到該區域進行上傳',
+		tip1: '選擇或者拖文件到該區域進行上傳',
 		tip2: '支持格式',
 		tip2: '支持格式',
 		tip3: '確認上傳'
 		tip3: '確認上傳'
 	}
 	}

+ 14 - 2
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/learnActivity.js

@@ -97,7 +97,7 @@ export default {
         delPdContent: '是否確認刪除',
         delPdContent: '是否確認刪除',
         delOk: '刪除成功',
         delOk: '刪除成功',
         pdTips: '請先選擇施測學制!',
         pdTips: '請先選擇施測學制!',
-        defaultPaper: '(請先挑選或匯入試卷)',
+        defaultPaper: '(請先挑選試卷)',
     },
     },
     //ManualPaper.vue
     //ManualPaper.vue
     manual: {
     manual: {
@@ -189,8 +189,18 @@ export default {
         stStuWarning: '請先選擇學生!',
         stStuWarning: '請先選擇學生!',
         lastQu: '上一題',
         lastQu: '上一題',
         nextQu: '下一題',
         nextQu: '下一題',
+        view: '查看',
         requesting: '數據請求中,請稍後……',
         requesting: '數據請求中,請稍後……',
-        dataError: '數據請求异常,請刷新頁面再試'
+        dataError: '數據請求异常,請刷新頁面再試',
+        byStuMark:'按人批閱',
+        byQuMark:'按題批閱',
+        noStuAnswer:'學生暫未作答',
+        toggleQu:'切換題目',
+        viewMark:'查看批註',
+        markLabel:'批註',
+        saveScoreTitle:'保存分數',
+        saveScoreContent:'您修改的分數尚未保存,是否需要保存? ',
+
     },
     },
 
 
     //SimpleAnalysis.vue
     //SimpleAnalysis.vue
@@ -308,6 +318,8 @@ export default {
         selectTeaTips: '請設置當前題塊的閱卷老師',
         selectTeaTips: '請設置當前題塊的閱卷老師',
         lastQu: '題目尚未完全分配',
         lastQu: '題目尚未完全分配',
         reapQu: '題目劃塊設置存在重復題目',
         reapQu: '題目劃塊設置存在重復題目',
+        objectiveLabel:'(客)',
+        alreadyLabel:'(已)',
         //ByqU.vue & ByStu.vue
         //ByqU.vue & ByStu.vue
         quit: '退出閱卷',
         quit: '退出閱卷',
         examName: '考試名稱:',
         examName: '考試名稱:',

+ 36 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/notify.js

@@ -0,0 +1,36 @@
+export default {
+    createTitle:'創建學校公告',
+    title:'標題',
+    titleHolder:'請輸入標題',
+    notifyTime:'時間',
+    notifyContent:'內容',
+    saveText:'保存公告',
+    publishText:'發佈公告',
+    cancelEdit:'取消編輯',
+    cancelPublish:'取消發布',
+    timeTips:'請設置公告時間',
+    contentTips:'請輸入公告內容',
+    titleTips:'請輸入公告標題',
+    reserveContent:'是否保留此次編輯? ',
+    reserveOk:'保留',
+    reserveCancel:'不保留',
+    fullInfoTips:'請完善公告信息! ',
+    search:'搜索',
+    draft:'草稿箱',
+    toCreate:'創建公告',
+    pending:'待發布',
+    going:'公告中',
+    finish:'已公告',
+    ntTime:'公告時間:',
+    delete:'刪除',
+    view:'查看',
+    edit:'編輯',
+    noNotify:'暫無公告',
+    notifyDetail:'公告詳情',
+    delNotifyTitle:'刪除公告',
+    delNotifyContent:'是否確認刪除',
+    ok:'是',
+    no:'否',
+    delOk:'刪除成功',
+    delErr:'刪除失敗'
+}

+ 13 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/schoolBaseInfo.js

@@ -99,6 +99,18 @@ export default {
   semesterName: '名稱',
   semesterName: '名稱',
   semStartAt: '開始於',
   semStartAt: '開始於',
   admission: '入學期',
   admission: '入學期',
+  setStartSem:'請設置入學期',
+  semTimeTips:'請設置學期開始日期',
+  semNameTips:'學期名稱不能為空',
+  semStartTips:'請設置是否為入學期',
+  gradeNameTips:'請設置年級名稱',
+  examNameTips:'請設置考試類型',
+  profNameTips:'請設置專業名稱',
+  anaNameTips:'請完善學情設置',
+  campNameTips:'請輸入校區名稱',
+  subjectNameTips:'請輸入學科/專業名稱',
+  delTimeTitle:'刪除時段',
+  delTimeContent:'是否確認刪除當前時段? ',
 
 
   // ClassroomSetting.vue
   // ClassroomSetting.vue
   classroomList: '教室清單',
   classroomList: '教室清單',
@@ -202,6 +214,7 @@ export default {
   addErr: '新增失敗',
   addErr: '新增失敗',
   cusTabel: '課程表',
   cusTabel: '課程表',
   setCusTable: '設置課表',
   setCusTable: '設置課表',
+  fullRoomInfo:'請先完善教室信息!',
 
 
   //ClassMgt.vue
   //ClassMgt.vue
   className: '名稱',
   className: '名稱',

+ 1 - 3
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/serviceDriveAuth.js

@@ -80,7 +80,6 @@ export default {
   學生使用: '學生使用',
   學生使用: '學生使用',
   已分配至教師: '已分配至教師',
   已分配至教師: '已分配至教師',
   未使用: '未使用',
   未使用: '未使用',
-  空間比率: '空間比率',
   空間: '空間',
   空間: '空間',
   空間數: '空間數:',
   空間數: '空間數:',
   空間比率: '空間比率:',
   空間比率: '空間比率:',
@@ -142,7 +141,7 @@ export default {
   確定收回所有空間: '確定收回所有空間',
   確定收回所有空間: '確定收回所有空間',
   '確定後全部每位教師都直接設置為0GB。': '確定後全部每位教師都直接設置為0GB。',
   '確定後全部每位教師都直接設置為0GB。': '確定後全部每位教師都直接設置為0GB。',
   儲存提醒: '儲存提醒',
   儲存提醒: '儲存提醒',
-  '当前空間数据尚未儲存。如果關閉,修改的数据将不会儲存!': '當前空間數據尚未儲存。如果關閉,修改的數據將不會儲存!',
+  '當前空間數據尚未儲存。如果關閉,修改的數據將不會儲存!': '當前空間數據尚未儲存。如果關閉,修改的數據將不會儲存!',
   回收空間: '回收空間',
   回收空間: '回收空間',
   儲存變更: '儲存變更',
   儲存變更: '儲存變更',
   空間分配狀態: '空間分配狀態',
   空間分配狀態: '空間分配狀態',
@@ -150,7 +149,6 @@ export default {
   單人固定容量分配: '單人固定容量分配',
   單人固定容量分配: '單人固定容量分配',
   目前可被分配總量: '目前可被分配總量',
   目前可被分配總量: '目前可被分配總量',
   至: '至',
   至: '至',
-
   每人分配: '每人分配',
   每人分配: '每人分配',
   當前勾選之教師帳號: '當前勾選之教師帳號',
   當前勾選之教師帳號: '當前勾選之教師帳號',
   所有: '所有',
   所有: '所有',

+ 1 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/settings.js

@@ -45,7 +45,7 @@ export default {
     modalTip6: '確認取消加入',
     modalTip6: '確認取消加入',
 	joinTip1:'感謝您選擇所屬學校',
 	joinTip1:'感謝您選擇所屬學校',
 	joinTip2:'按下申請後,下次登錄就會顯示您的學校名稱!',
 	joinTip2:'按下申請後,下次登錄就會顯示您的學校名稱!',
-	joinTip3:'意:加入申請需經過您申請學校的管理員復核之後,才能正式取得學校所提供的資源。',
+	joinTip3:'意:加入申請需經過您申請學校的管理員復核之後,才能正式取得學校所提供的資源。',
     submitSucTips: '提交成功',
     submitSucTips: '提交成功',
     submitFailTips: '操作失敗',
     submitFailTips: '操作失敗',
     joinSucTips: '加入成功!',
     joinSucTips: '加入成功!',

+ 2 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/stuAccount.js

@@ -40,6 +40,7 @@ export default {
   adminClass:'編制班',
   adminClass:'編制班',
   teachClass:'選課班',
   teachClass:'選課班',
   stuMgt:'學生管理',
   stuMgt:'學生管理',
+  filterNoClass:'篩選未關聯班級學生',
 
 
   //AddStudent.vue
   //AddStudent.vue
   accountInfo: '帳號資訊',
   accountInfo: '帳號資訊',
@@ -101,6 +102,7 @@ export default {
   idRepErr:'帳號已存在,將覆蓋原有帳號',
   idRepErr:'帳號已存在,將覆蓋原有帳號',
   stuYearErr:'學生學級數據錯誤',
   stuYearErr:'學生學級數據錯誤',
   classYearErr:'班級年級錯誤',
   classYearErr:'班級年級錯誤',
+  importOk: '導入成功',
 
 
   //Authorization.vue
   //Authorization.vue
   authTitle: '服務授權管理',
   authTitle: '服務授權管理',

+ 3 - 3
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/studentWeb.js

@@ -252,10 +252,10 @@ export default {
         option: '選項',
         option: '選項',
         haveNum: "可投票數",
         haveNum: "可投票數",
         excessNum: "投票數已超出",
         excessNum: "投票數已超出",
-        delTitle: "投票已被删除,是否删除此條記錄?",
-        delOk: "除",
+        delTitle: "投票已被刪除,是否刪除此條記錄?",
+        delOk: "除",
         delCancel: "取消",
         delCancel: "取消",
-        delSuccess: "除成功",
+        delSuccess: "除成功",
         type: {
         type: {
             once: "單次",
             once: "單次",
             day: "每日",
             day: "每日",

+ 1 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/system.js

@@ -18,6 +18,7 @@ export default {
         classMgt: '教室管理',
         classMgt: '教室管理',
         cusSetting: '課程設置',
         cusSetting: '課程設置',
         cusPlanMgt: '排課管理',
         cusPlanMgt: '排課管理',
+        schoolNotify: '學校公告',
         authMgt: '授權管理',
         authMgt: '授權管理',
         preview: '預覽',
         preview: '預覽',
         scSyllabus: '學校課綱',
         scSyllabus: '學校課綱',

+ 5 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/teachContent.js

@@ -60,5 +60,9 @@ export default {
   public:'公共資源',
   public:'公共資源',
   startDown:'開始下載',
   startDown:'開始下載',
   videoTips:'溫馨提示:視頻只支持MP4格式在線播放! ',
   videoTips:'溫馨提示:視頻只支持MP4格式在線播放! ',
-  spaceTips: '學校可用空間 = 學校總空間 - 分配給教師的空間'
+  spaceTips: '學校可用空間 = 學校總空間 - 分配給教師的空間',
+  common:'通用',
+  renameTitle:'重命名',
+  fileName:'文件名:'
+
 }
 }

+ 4 - 4
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/teachermgmt.js

@@ -57,8 +57,8 @@ export default {
         info17: '請問您確定要核准',
         info17: '請問您確定要核准',
         info18: '的教師申請',
         info18: '的教師申請',
         info19: '找不到此教師的資料',
         info19: '找不到此教師的資料',
-		info20: '用户已被邀请,请勿重复邀请!',
-		info21: '邀请对象已加入学校!无法再次邀请!',
+        info20: '用戶已被邀請,請勿重複邀請!',
+        info21: '邀請對象已加入學校!無法再次邀請!',
         noIdCol:'導入表格沒有id欄位,請檢查表格數據! '
         noIdCol:'導入表格沒有id欄位,請檢查表格數據! '
     },
     },
     job: {
     job: {
@@ -133,7 +133,7 @@ export default {
             sendInvite:'發送邀請',
             sendInvite:'發送邀請',
             backHome: '重新檢索'
             backHome: '重新檢索'
         },
         },
-        content: '<span>請輸入<span class="point">手機號</span>、<span class="point">用戶編號</span>或<span class="point">電子信箱</span>等資訊進行搜尋</span>',
+        content: '<span>請輸入<span class="point">手機號</span>、<span class="point">醍摩豆用戶編號</span>或<span class="point">電子信箱</span>等資訊進行搜尋</span>',
         skyBox:{
         skyBox:{
             text1: '本次搜尋結果',
             text1: '本次搜尋結果',
             text2: '檔案資料數',
             text2: '檔案資料數',
@@ -152,6 +152,6 @@ export default {
         }
         }
     },
     },
     saveWarning:'儲存提醒',
     saveWarning:'儲存提醒',
-    warningCnt:'當前空間資料尚未儲存。如果離開,所修改的資料將不會保留! ',
+    warningCnt:'當前空間資料尚未儲存。如果離開,所修改的資料將不會保留!',
     leaveText:'離開'
     leaveText:'離開'
 }
 }

+ 1 - 2
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/tip.js

@@ -1,7 +1,6 @@
 export default {
 export default {
 	typeScoreTip:'每道題的最低配分為0.5分',
 	typeScoreTip:'每道題的最低配分為0.5分',
     importPaper:'您可將設置好的試卷 Word 檔案透過此功能轉換成系統試卷運用於課堂測驗、學生線上測驗或是閱卷考試運用',
     importPaper:'您可將設置好的試卷 Word 檔案透過此功能轉換成系統試卷運用於課堂測驗、學生線上測驗或是閱卷考試運用',
-	searchTeacher:'為確保個資安全,請輸入完整資訊進行搜尋',
 	volumeList:'依照學科管理課綱清單,並建立該課綱的各個目錄',
 	volumeList:'依照學科管理課綱清單,並建立該課綱的各個目錄',
 	addVolumeResource:'建立課綱目錄後依照各種資源來新增課綱教材',
 	addVolumeResource:'建立課綱目錄後依照各種資源來新增課綱教材',
 	knowledge:'依據學科建立對應的校本知識點,於題庫中使用以利學情分析數據確實。教師所建立的線上試題,需遵循此知識點庫所定義的知識點規範。',
 	knowledge:'依據學科建立對應的校本知識點,於題庫中使用以利學情分析數據確實。教師所建立的線上試題,需遵循此知識點庫所定義的知識點規範。',
@@ -18,5 +17,5 @@ export default {
 	cusTea:'加入負責該類課程授課的所有授課教師',
 	cusTea:'加入負責該類課程授課的所有授課教師',
 	sCusClass:'加入教師於該課程所負責的學生班級',
 	sCusClass:'加入教師於該課程所負責的學生班級',
 	examMode:'進行評量的方式有三種:\n1.線上自主評量,具備授權的學生可直接登入醍摩豆雲平台學生帳號,直接於平台上選擇評量活動進行測驗。\n2.智慧教室評量,教師於課堂上使用HiTeach智慧教學系統的測驗模式直接進行評測。\n3.	卷卡合一評量,透過紙本考試的方式進行測驗,作答紙本透過閱卷方式導入平台運用。',
 	examMode:'進行評量的方式有三種:\n1.線上自主評量,具備授權的學生可直接登入醍摩豆雲平台學生帳號,直接於平台上選擇評量活動進行測驗。\n2.智慧教室評量,教師於課堂上使用HiTeach智慧教學系統的測驗模式直接進行評測。\n3.	卷卡合一評量,透過紙本考試的方式進行測驗,作答紙本透過閱卷方式導入平台運用。',
-	targetTips:'溫馨提示:\n1.班級類型:行政班和教學班只能選其一; \n2.課程數量:只能選擇一個課程; \n3.班級數量:同一個課程的班級可以多選。 '
+	targetTips:'溫馨提示:\n1.班級類型:編制班和選課班只能選其一; \n2.課程數量:只能選擇一個課程; \n3.班級數量:同一個課程的班級可以多選。 '
 }
 }

+ 1 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/totalAnalysis.js

@@ -14,6 +14,7 @@ export default {
 	lostStu: '缺考人數',
 	lostStu: '缺考人數',
 	showAnalysis: '資料分析',
 	showAnalysis: '資料分析',
 	allSubjects: '全科',
 	allSubjects: '全科',
+	noData: '暫無有效數據返回!',
 	allClasses: '所有班級',
 	allClasses: '所有班級',
 	all: '全部',
 	all: '全部',
 	classBaseInfo: '班級基本數據',
 	classBaseInfo: '班級基本數據',
@@ -36,7 +37,6 @@ export default {
 	condition6: '評測模式',
 	condition6: '評測模式',
 	condition7: '評測學科',
 	condition7: '評測學科',
 	condition8: '發佈年份',
 	condition8: '發佈年份',
-
 	// totalIndex.vue
 	// totalIndex.vue
 	ti_title1: '基本資料統計',
 	ti_title1: '基本資料統計',
 	ti_title2: '學情分析',
 	ti_title2: '學情分析',

+ 9 - 0
TEAMModelOS/ClientApp/src/router/routes.js

@@ -802,6 +802,15 @@ export const routes = [{
 			},
 			},
 			//教研中心
 			//教研中心
 			//线上研修
 			//线上研修
+			{
+				path: 'jyHome',
+				name: 'jyHome',
+				component: resolve => require(['@/view/jyzx/HomePage.vue'], resolve),
+				meta: {
+					activeName: 'jyHome'
+				}
+			},
+			//线上研修
 			{
 			{
 				path: 'online',
 				path: 'online',
 				name: 'online',
 				name: 'online',

+ 1 - 1
TEAMModelOS/ClientApp/src/view/Home.vue

@@ -221,7 +221,7 @@ body {
 
 
 #content {
 #content {
     height: 100%;
     height: 100%;
-    background: #242328;
+    /* background: #242328; */
     overflow: hidden;
     overflow: hidden;
 }
 }
 
 

+ 12 - 8
TEAMModelOS/ClientApp/src/view/classmgt/ManageClass.vue

@@ -103,16 +103,20 @@
             </Form>
             </Form>
         </Modal>
         </Modal>
         <!-- 设置头像 -->
         <!-- 设置头像 -->
-        <Modal v-model="avatarStatus" title="设置头像" @on-ok="confirmSetAvatar" @on-cancel="avatarUrl = ''" :loading="modalLoading">
+        <Modal v-model="avatarStatus" :title="$t('cusMgt.setAvatar')" @on-ok="confirmSetAvatar" @on-cancel="avatarUrl = ''" :loading="modalLoading">
             <p>
             <p>
-                姓名:
+                {{$t('cusMgt.stuNameLabel')}}
                 <span>{{curStudent.name}}</span>
                 <span>{{curStudent.name}}</span>
-                <span v-show="avatarUrl" class="again-text" @click="avatarUrl = ''">重新上传</span>
+                <span v-show="avatarUrl" class="again-text" @click="avatarUrl = ''">
+                    {{$t('cusMgt.reupload')}}
+                </span>
             </p>
             </p>
             <Upload style="margin-top:20px" type="drag" action="" :before-upload="onBeforeUpload" v-show="!avatarUrl">
             <Upload style="margin-top:20px" type="drag" action="" :before-upload="onBeforeUpload" v-show="!avatarUrl">
                 <div style="padding: 20px 0">
                 <div style="padding: 20px 0">
                     <Icon type="ios-cloud-upload" size="52" style="color: #3399ff"></Icon>
                     <Icon type="ios-cloud-upload" size="52" style="color: #3399ff"></Icon>
-                    <p>上传头像</p>
+                    <p>
+                        {{$t('cusMgt.uploadAvatar')}}
+                    </p>
                 </div>
                 </div>
             </Upload>
             </Upload>
             <div class="student-avatar-box" :style="{background: `url('${avatarUrl}?${blobSas}')`}" v-show="avatarUrl"></div>
             <div class="student-avatar-box" :style="{background: `url('${avatarUrl}?${blobSas}')`}" v-show="avatarUrl"></div>
@@ -226,7 +230,7 @@ export default {
                 setTimeout(() => {
                 setTimeout(() => {
                     this.modalLoading = true
                     this.modalLoading = true
                 }, 0)
                 }, 0)
-                this.$Message.warning('请上传头像')
+                this.$Message.warning(this.$t('cusMgt.uploadTips'))
                 return
                 return
             }
             }
             //保存头像
             //保存头像
@@ -239,7 +243,7 @@ export default {
             ]
             ]
             this.$api.stuAccount.setStudentAvatar(schoolId, data).then(
             this.$api.stuAccount.setStudentAvatar(schoolId, data).then(
                 res => {
                 res => {
-                    this.$Message.success('设置成功')
+                    this.$Message.success(this.$t('cusMgt.setOk'))
                     if (res.students) {
                     if (res.students) {
                         res.students.forEach(item => {
                         res.students.forEach(item => {
                             let index = this.classList[this.curClassIndex].students.findIndex(i => {
                             let index = this.classList[this.curClassIndex].students.findIndex(i => {
@@ -257,7 +261,7 @@ export default {
                     }
                     }
                 },
                 },
                 err => {
                 err => {
-                    this.$Message.error('设置失败')
+                    this.$Message.error(this.$t('cusMgt.setErr'))
                 }
                 }
             ).finally(() => {
             ).finally(() => {
                 this.avatarStatus = false
                 this.avatarStatus = false
@@ -271,7 +275,7 @@ export default {
                     this.avatarUrl = res.url
                     this.avatarUrl = res.url
                 },
                 },
                 err => {
                 err => {
-                    this.$Message.error('头像上传失败')
+                    this.$Message.error(this.$t('cusMgt.uploadErr'))
                 }
                 }
             )
             )
             return false
             return false

+ 2 - 0
TEAMModelOS/ClientApp/src/view/evaluation/bank/TestPaperList.less

@@ -167,6 +167,8 @@
             font-size: 16px;
             font-size: 16px;
             .fl-row-center;
             .fl-row-center;
             display: none;
             display: none;
+            color: var(--normal-icon-color);
+
 			
 			
 			.ivu-icon{
 			.ivu-icon{
 				margin-right: 5px;
 				margin-right: 5px;

+ 6 - 1
TEAMModelOS/ClientApp/src/view/evaluation/bank/index.less

@@ -47,13 +47,18 @@
             display: flex;
             display: flex;
 			
 			
 			.bank-tools-btn{
 			.bank-tools-btn{
-				color: #f5f5f5;
+				color: var(--second-text-color);
 				margin-right: 30px;
 				margin-right: 30px;
 				font-weight: 200;
 				font-weight: 200;
 				cursor: pointer;
 				cursor: pointer;
 				display: flex;
 				display: flex;
 				align-items: flex-end;
 				align-items: flex-end;
+
+                &:hover{
+                    color: #40A8F0;
+                }
 			}
 			}
+
         }
         }
 
 
         .ivu-icon {
         .ivu-icon {

+ 4 - 4
TEAMModelOS/ClientApp/src/view/evaluation/bank/index.vue

@@ -175,24 +175,24 @@
 	.bank-container .ivu-tabs-bar {
 	.bank-container .ivu-tabs-bar {
 		position: sticky;
 		position: sticky;
 		top: 0;
 		top: 0;
-		border-bottom: 1px solid #424242;
+		/* border-bottom: 1px solid #424242; */
 		padding: 6px 20px;
 		padding: 6px 20px;
 		z-index: 99;
 		z-index: 99;
-		background-color: #2b2b2e;
+		background-color: var(--body-bg);
 	}
 	}
 
 
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab:active,
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab:active,
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab:hover,
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab:hover,
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab-active,
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab-active,
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab {
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab {
-		color: #fffcfc;
+		/* color: #fffcfc; */
 		font-weight: bold;
 		font-weight: bold;
 		font-size: 16px;
 		font-size: 16px;
 	}
 	}
 
 
 	.bank-container .ivu-tabs-ink-bar {
 	.bank-container .ivu-tabs-ink-bar {
 		height: 2px;
 		height: 2px;
-		background: #1CC0F3;
+		background: #40A8F0;
 		/*margin-left:20px;*/
 		/*margin-left:20px;*/
 	}
 	}
 </style>
 </style>

+ 1 - 1
TEAMModelOS/ClientApp/src/view/evaluation/components/BaseDiffPie.vue

@@ -48,7 +48,7 @@
                     calculable: true,
                     calculable: true,
                     series: [
                     series: [
                         {
                         {
-                            name: that.$t('evaluation.typePieTitle'),
+                            name: that.$t('evaluation.echarts.diffPie'),
                             type: 'pie',
                             type: 'pie',
                             radius: [0, 80],
                             radius: [0, 80],
                             data: data
                             data: data

+ 14 - 1
TEAMModelOS/ClientApp/src/view/evaluation/components/BaseExerciseList.vue

@@ -432,7 +432,20 @@
 			 */
 			 */
 			numberConvertToUppercase(num) {
 			numberConvertToUppercase(num) {
 				num = Number(num)
 				num = Number(num)
-				var upperCaseNumber = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '百', '千', '万', '亿']
+				var upperCaseNumber = [
+					this.$t('learnActivity.score.zero'),
+					this.$t('learnActivity.score.one'),
+					this.$t('learnActivity.score.two'),
+					this.$t('learnActivity.score.three'),
+					this.$t('learnActivity.score.four'),
+					this.$t('learnActivity.score.five'),
+					this.$t('learnActivity.score.six'),
+					this.$t('learnActivity.score.seven'),
+					this.$t('learnActivity.score.eight'),
+					this.$t('learnActivity.score.nine'),
+					this.$t('learnActivity.score.ten'),
+					this.$t('learnActivity.score.hundred')
+				]
 				var length = String(num).length
 				var length = String(num).length
 				if (length === 1) {
 				if (length === 1) {
 					return upperCaseNumber[num]
 					return upperCaseNumber[num]

+ 3 - 3
TEAMModelOS/ClientApp/src/view/evaluation/components/BaseImport.vue

@@ -11,7 +11,7 @@
                         :show-upload-list="isShowList"
                         :show-upload-list="isShowList"
                         :before-upload="beforeUpload"
                         :before-upload="beforeUpload"
                         :on-success="uploadSuccess">
                         :on-success="uploadSuccess">
-                        <Icon type="md-cloud-upload" size="150" color="#ffffff" style="margin: 30px 0;"/>
+                        <Icon type="md-cloud-upload" size="150" color="#40A8F0" style="margin: 30px 0;"/>
                     <div v-show="isBtnLoading" class="import-loading-wrap">
                     <div v-show="isBtnLoading" class="import-loading-wrap">
                         <img src="@/assets/loading/loading.svg" width="100px" />
                         <img src="@/assets/loading/loading.svg" width="100px" />
 						<p style="color: #fff;">{{ $t('http.loading')}}</p>
 						<p style="color: #fff;">{{ $t('http.loading')}}</p>
@@ -371,7 +371,7 @@
 
 
 <style lang="less">
 <style lang="less">
 	.cp-import-container{
 	.cp-import-container{
-		background: #404040;
+		// background: #404040;
 		height: 100%;
 		height: 100%;
 	}
 	}
 	
 	
@@ -450,7 +450,7 @@
 		display: flex;
 		display: flex;
 		flex-direction: column;
 		flex-direction: column;
 		align-items: center;
 		align-items: center;
-		color: #b8b8b8;
+		color: var(--second-text-color);
     }
     }
 
 
         .import-tips p {
         .import-tips p {

+ 1 - 1
TEAMModelOS/ClientApp/src/view/evaluation/components/BaseObjectivePie.vue

@@ -45,7 +45,7 @@
                     calculable: true,
                     calculable: true,
                     series: [
                     series: [
                         {
                         {
-                            name: that.$t('evaluation.typePieTitle'),
+                            name: that.$t('evaluation.echarts.objectivePie'),
                             type: 'pie',
                             type: 'pie',
                             radius: [0, 80],
                             radius: [0, 80],
                             data: data
                             data: data

+ 0 - 0
TEAMModelOS/ClientApp/src/view/evaluation/components/BasePointPie.vue


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels