Jelajahi Sumber

Merge branch 'develop5.0' into TPE/develop5.0

jeff 3 tahun lalu
induk
melakukan
93e15f861d
100 mengubah file dengan 2251 tambahan dan 812 penghapusan
  1. 72 17
      TEAMModeBI/Controllers/LoginController.cs
  2. TEMPAT SAMPAH
      TEAMModeBI/Lib/topsdk-net-core.dll
  3. 10 0
      TEAMModeBI/TEAMModeBI.csproj
  4. 5 0
      TEAMModeBI/appsettings.Development.json
  5. 3 3
      TEAMModelFunction/ActivityHttpTrigger.cs
  6. 1 1
      TEAMModelFunction/TriggerExam.cs
  7. 28 2
      TEAMModelFunction/TriggerSurvey.cs
  8. 28 2
      TEAMModelFunction/TriggerVote.cs
  9. 37 0
      TEAMModelOS.SDK/Models/Cosmos/BI/DingDingUser.cs
  10. 1 1
      TEAMModelOS.SDK/Models/Cosmos/Common/Survey.cs
  11. 0 2
      TEAMModelOS.SDK/Models/Cosmos/School/ExamInfo.cs
  12. 2 2
      TEAMModelOS.SDK/Models/Service/StuListService.cs
  13. 8 1
      TEAMModelOS.SDK/Models/Service/TriggerStuActivity.cs
  14. 0 6
      TEAMModelOS.SDK/TEAMModelOS.SDK.csproj
  15. 24 6
      TEAMModelOS/ClientApp/public/theme/dark-theme.css
  16. 1 1
      TEAMModelOS/ClientApp/src/api/schoolUser.js
  17. 13 13
      TEAMModelOS/ClientApp/src/common/BaseLayout.vue
  18. 3 3
      TEAMModelOS/ClientApp/src/common/BasePdSelect.vue
  19. 1 1
      TEAMModelOS/ClientApp/src/common/BaseUpload.vue
  20. 8 4
      TEAMModelOS/ClientApp/src/common/UploadModal.vue
  21. 1 1
      TEAMModelOS/ClientApp/src/components/coursemgt/StudentList.less
  22. 3 3
      TEAMModelOS/ClientApp/src/components/coursemgt/StudentList.vue
  23. 5 5
      TEAMModelOS/ClientApp/src/components/evaluation/ExerciseList.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. 20 1
      TEAMModelOS/ClientApp/src/css/common-style.less
  31. 10 6
      TEAMModelOS/ClientApp/src/css/custom-animate.less
  32. 18 0
      TEAMModelOS/ClientApp/src/css/custom-iview.less
  33. 2 0
      TEAMModelOS/ClientApp/src/locale/lang/en-US/index.js
  34. 183 0
      TEAMModelOS/ClientApp/src/locale/lang/en-US/jyzx.js
  35. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/en-US/teachermgmt.js
  36. 2 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/index.js
  37. 183 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/jyzx.js
  38. 1 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/learnActivity.js
  39. 1 1
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/cusMgt.js
  40. 2 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/index.js
  41. 183 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/jyzx.js
  42. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/teachermgmt.js
  43. 9 0
      TEAMModelOS/ClientApp/src/router/routes.js
  44. 2 1
      TEAMModelOS/ClientApp/src/view/Home.vue
  45. 2 2
      TEAMModelOS/ClientApp/src/view/classmgt/ManageClass.less
  46. 3 3
      TEAMModelOS/ClientApp/src/view/classmgt/ManageClass.vue
  47. 2 0
      TEAMModelOS/ClientApp/src/view/evaluation/bank/TestPaperList.less
  48. 6 1
      TEAMModelOS/ClientApp/src/view/evaluation/bank/index.less
  49. 4 4
      TEAMModelOS/ClientApp/src/view/evaluation/bank/index.vue
  50. 3 3
      TEAMModelOS/ClientApp/src/view/evaluation/components/BaseImport.vue
  51. 8 8
      TEAMModelOS/ClientApp/src/view/evaluation/index/CreatePaper.less
  52. 23 15
      TEAMModelOS/ClientApp/src/view/evaluation/index/CreatePaper.vue
  53. 1 1
      TEAMModelOS/ClientApp/src/view/evaluation/index/index.vue
  54. 4 4
      TEAMModelOS/ClientApp/src/view/homepage/AcCountPie.vue
  55. 51 31
      TEAMModelOS/ClientApp/src/view/homepage/HomePage.less
  56. 5 5
      TEAMModelOS/ClientApp/src/view/homepage/HomePage.vue
  57. 4 4
      TEAMModelOS/ClientApp/src/view/homepage/MinTable.vue
  58. 5 5
      TEAMModelOS/ClientApp/src/view/homepage/TeachScore.vue
  59. 3 3
      TEAMModelOS/ClientApp/src/view/homepage/TechScore.vue
  60. 1 1
      TEAMModelOS/ClientApp/src/view/jyzx/DoSurvey.vue
  61. 557 0
      TEAMModelOS/ClientApp/src/view/jyzx/HomePage.vue
  62. 10 10
      TEAMModelOS/ClientApp/src/view/jyzx/Question.vue
  63. 9 9
      TEAMModelOS/ClientApp/src/view/jyzx/Vote.vue
  64. 40 40
      TEAMModelOS/ClientApp/src/view/jyzx/application.vue
  65. 29 29
      TEAMModelOS/ClientApp/src/view/jyzx/classMemoir.vue
  66. 21 21
      TEAMModelOS/ClientApp/src/view/jyzx/discuss.vue
  67. 68 70
      TEAMModelOS/ClientApp/src/view/jyzx/index.vue
  68. 44 44
      TEAMModelOS/ClientApp/src/view/jyzx/offline.vue
  69. 25 25
      TEAMModelOS/ClientApp/src/view/jyzx/relatedTopic.vue
  70. 19 19
      TEAMModelOS/ClientApp/src/view/jyzx/topicPublish.vue
  71. 25 12
      TEAMModelOS/ClientApp/src/view/knowledge-point/index/Index.less
  72. 28 33
      TEAMModelOS/ClientApp/src/view/knowledge-point/index/Index.vue
  73. 4 4
      TEAMModelOS/ClientApp/src/view/knowledge-point/index/operation/AddBlock.vue
  74. 4 4
      TEAMModelOS/ClientApp/src/view/knowledge-point/index/operation/AddPoint.vue
  75. 26 20
      TEAMModelOS/ClientApp/src/view/knowledge-point/index/operation/ComposeBlock.vue
  76. 9 8
      TEAMModelOS/ClientApp/src/view/learnactivity/AutoCreateNew.less
  77. 18 13
      TEAMModelOS/ClientApp/src/view/learnactivity/CreateSchoolEva.less
  78. 11 8
      TEAMModelOS/ClientApp/src/view/learnactivity/CreateSchoolEva.vue
  79. 5 5
      TEAMModelOS/ClientApp/src/view/learnactivity/ManualCreate.less
  80. 1 1
      TEAMModelOS/ClientApp/src/view/learnactivity/ManualCreate.vue
  81. 12 10
      TEAMModelOS/ClientApp/src/view/learnactivity/ManualPaper.less
  82. 3 3
      TEAMModelOS/ClientApp/src/view/learnactivity/MgtPrivEva.vue
  83. 30 29
      TEAMModelOS/ClientApp/src/view/learnactivity/MgtSchoolEva.less
  84. 7 8
      TEAMModelOS/ClientApp/src/view/learnactivity/MgtSchoolEva.vue
  85. 1 4
      TEAMModelOS/ClientApp/src/view/learnactivity/Scoring.less
  86. 55 51
      TEAMModelOS/ClientApp/src/view/learnactivity/Scoring.vue
  87. 3 3
      TEAMModelOS/ClientApp/src/view/learnactivity/echarts/AvgCompare.vue
  88. 1 1
      TEAMModelOS/ClientApp/src/view/learnactivity/echarts/ScoreMatrix.vue
  89. 11 9
      TEAMModelOS/ClientApp/src/view/learnactivity/markpaper/MarkData.vue
  90. 16 16
      TEAMModelOS/ClientApp/src/view/learnactivity/markpaper/MarkSetting.vue
  91. 3 2
      TEAMModelOS/ClientApp/src/view/newcourse/ClassTable.less
  92. 5 5
      TEAMModelOS/ClientApp/src/view/newcourse/ClassTable.vue
  93. 23 12
      TEAMModelOS/ClientApp/src/view/newcourse/CoursePlan.less
  94. 6 6
      TEAMModelOS/ClientApp/src/view/newcourse/CoursePlan.vue
  95. 11 15
      TEAMModelOS/ClientApp/src/view/newcourse/MyCourse.less
  96. 3 3
      TEAMModelOS/ClientApp/src/view/newcourse/MyCourse.vue
  97. 58 34
      TEAMModelOS/ClientApp/src/view/newcourse/NewCusMgt.less
  98. 14 14
      TEAMModelOS/ClientApp/src/view/newcourse/NewCusMgt.vue
  99. 1 1
      TEAMModelOS/ClientApp/src/view/newcourse/TeaTable.vue
  100. 0 0
      TEAMModelOS/ClientApp/src/view/notify/CreateNotify.less

+ 72 - 17
TEAMModeBI/Controllers/LoginController.cs

@@ -1,6 +1,10 @@
 using Azure.Cosmos;
+using DingTalk.Api;
+using DingTalk.Api.Request;
+using DingTalk.Api.Response;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Configuration;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -17,30 +21,81 @@ namespace TEAMModeBI.Controllers
     [ApiController]
     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]
-        [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();
             }
-
-
-            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);
         }
+
     }
 }

TEMPAT SAMPAH
TEAMModeBI/Lib/topsdk-net-core.dll


+ 10 - 0
TEAMModeBI/TEAMModeBI.csproj

@@ -25,6 +25,16 @@
     <ProjectReference Include="..\TEAMModelOS.SDK\TEAMModelOS.SDK.csproj" />
   </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') ">
     <!-- Ensure Node.js is installed -->
     <Exec Command="node --version" ContinueOnError="true">

+ 5 - 0
TEAMModeBI/appsettings.Development.json

@@ -7,6 +7,11 @@
     }
   },
   "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": {
     "Location": "China-Dep",
     "LocationNum": "1",

+ 3 - 3
TEAMModelFunction/ActivityHttpTrigger.cs

@@ -207,7 +207,7 @@ namespace TEAMModelFunction
                             });
                         });
                     }
-                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
+                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities,null);
                 }
             }
             return new OkObjectResult(new { });
@@ -308,7 +308,7 @@ namespace TEAMModelFunction
                             });
                         });
                     }
-                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
+                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities, null);
                 }
             }
             return new OkObjectResult(new { });
@@ -408,7 +408,7 @@ namespace TEAMModelFunction
                             });
                         });
                     }
-                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
+                    await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities, null);
                 }
             }
             return new OkObjectResult(new { });

+ 1 - 1
TEAMModelFunction/TriggerExam.cs

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

+ 28 - 2
TEAMModelFunction/TriggerSurvey.cs

@@ -82,6 +82,7 @@ namespace TEAMModelFunction
 #endif
                             List<StuActivity> stuActivities = new List<StuActivity>();
                             List<StuActivity> tmdActivities = new List<StuActivity>();
+                            List<StuActivity> tchActivities = new List<StuActivity>();
                             if (tmdids.IsNotEmpty())
                             {
                                 tmdids.ForEach(x => {
@@ -132,8 +133,33 @@ namespace TEAMModelFunction
                                     });
                                 });
                             }
-                           
-                            await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
+
+                            if (survey.tchLists.IsNotEmpty())
+                            {
+                                survey.tchLists.ForEach(x => {
+                                    tchActivities.Add(new StuActivity
+                                    {
+                                        pk = "Activity",
+                                        id = survey.id,
+                                        code = $"Activity-{x}",
+                                        type = "Survey",
+                                        name = survey.name,
+                                        startTime = survey.startTime,
+                                        endTime = survey.endTime,
+                                        scode = survey.code,
+                                        scope = survey.scope,
+                                        school = survey.school,
+                                        creatorId = survey.creatorId,
+                                        subjects = new List<string> { "" },
+                                        blob = survey.blob,
+                                        owner = survey.owner,
+                                        createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
+                                        taskStatus = -1,
+                                        classIds = classes
+                                    });
+                                });
+                            }
+                            await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities, tchActivities);
                             //向学生或醍摩豆账号发起通知
                             #region
                             //Notice notice = new Notice()

+ 28 - 2
TEAMModelFunction/TriggerVote.cs

@@ -88,6 +88,7 @@ namespace TEAMModelFunction
                             }
                             List<StuActivity> stuActivities = new List<StuActivity>();
                             List<StuActivity> tmdActivities = new List<StuActivity>();
+                            List<StuActivity> tchActivities = new List<StuActivity>();
                             if (tmds.IsNotEmpty())
                             {
                                 tmds.ForEach(x => {
@@ -138,8 +139,33 @@ namespace TEAMModelFunction
                                     });
                                 });
                             }
-                          
-                            await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities);
+
+                            if (vote.tchLists.IsNotEmpty())
+                            {
+                                vote.tchLists.ForEach(x => {
+                                    tchActivities.Add(new StuActivity
+                                    {
+                                        pk = "Activity",
+                                        id = vote.id,
+                                        code = $"Activity-{x}",
+                                        type = "Vote",
+                                        name = vote.name,
+                                        startTime = vote.startTime,
+                                        endTime = vote.endTime,
+                                        scode = vote.code,
+                                        scope = vote.scope,
+                                        school = vote.school,
+                                        creatorId = vote.creatorId,
+                                        subjects = new List<string> { "" },
+                                        blob = null,
+                                        owner = vote.owner,
+                                        createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
+                                        taskStatus = -1,
+                                        classIds = classes
+                                    });
+                                });
+                            }
+                            await TriggerStuActivity.SaveStuActivity(client, _dingDing, stuActivities, tmdActivities, tchActivities);
                             //向学生或醍摩豆账号发起通知
                             #region
                             //Notice notice = new Notice()

+ 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; } 
+        }
+
+    }
+}

+ 1 - 1
TEAMModelOS.SDK/Models/Cosmos/Common/Survey.cs

@@ -78,7 +78,7 @@ namespace TEAMModelOS.SDK.Models
         /// <summary>
         ///class行政班/teach教学班
         /// </summary>
-        public string classType { get; set; }
+        //public string classType { get; set; }
         /// <summary>
         /// 开始时间
         /// </summary>

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

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

+ 2 - 2
TEAMModelOS.SDK/Models/Service/StuListService.cs

@@ -244,11 +244,11 @@ namespace TEAMModelFunction
                 //移除名单的。 在点击相关的课程,再去二次校验是否存在,不存在则再去删除。
                 foreach (var delStu in stuListChange.stuleave)
                 {
-                    await client.GetContainer(Constant.TEAMModelOS, "Student").DeleteItemStreamAsync(course.id, new PartitionKey($"Course-{delStu.code.Replace("Base-", "")}-{delStu.id}"));
+                    await client.GetContainer(Constant.TEAMModelOS, "Student").DeleteItemStreamAsync(course.id, new PartitionKey($"StuCourse-{delStu.code.Replace("Base-", "")}-{delStu.id}"));
                 }
                 foreach (var delTmd in stuListChange.tmdhleave)
                 {
-                    await client.GetContainer(Constant.TEAMModelOS, "Student").DeleteItemStreamAsync(course.id, new PartitionKey($"Course-{delTmd}"));
+                    await client.GetContainer(Constant.TEAMModelOS, "Student").DeleteItemStreamAsync(course.id, new PartitionKey($"StuCourse-{delTmd}"));
                 }
             }
         }

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

@@ -92,7 +92,7 @@ namespace TEAMModelOS.SDK
             }
         }
 
-        public static async Task<string> SaveStuActivity(CosmosClient client, DingDing _dingDing, List<StuActivity> stuActivities,List<StuActivity> tmdActivities) {
+        public static async Task<string> SaveStuActivity(CosmosClient client, DingDing _dingDing, List<StuActivity> stuActivities,List<StuActivity> tmdActivities, List<StuActivity>  tchActivities) {
             try {
                 if (stuActivities.IsNotEmpty())
                 {
@@ -108,6 +108,13 @@ namespace TEAMModelOS.SDK
                         await client.GetContainer(Constant.TEAMModelOS, "Student").UpsertItemAsync(x, new PartitionKey(x.code));
                     }
                 }
+                if (tchActivities.IsNotEmpty())
+                {
+                    foreach (var x in tmdActivities)
+                    {
+                        await client.GetContainer(Constant.TEAMModelOS, "Teacher").UpsertItemAsync(x, new PartitionKey(x.code));
+                    }
+                }
             } catch (Exception ex) {
                 await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}-OS,TriggerStuActivity-SaveStuActivity\n{ex.Message}\n{ex.StackTrace}", GroupNames.醍摩豆服務運維群組);
             }

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

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

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

@@ -1,21 +1,39 @@
 :root {
     --header-bg: #1E1F21;
     --side-bg: #1E1F21;
-    --body-bg: #2B2B2E;
-    --border-color: #606060; /*边框颜色*/
     --primary-color: #1cc0f3; /*主题色*/
     --font-size-large: 16px; /*大号字体*/
     --font-size-normal: 14px; /*中号字体*/
     --font-size-small: 12px; /*小号字体*/
     --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-end: #6E6E6E;
     --top-height: 45px; /*列表头部高度*/
     --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; /* 辅助颜色 */
 }
 
 

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

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

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

@@ -13,7 +13,7 @@
         <!-- 侧边菜单栏 -->
         <Sider class="biz-menu" ref="side1" hide-trigger collapsible width="190" :collapsed-width="78" v-model="isCollapsed">
             <div class="collapse-icon-box" @click="changeMenuStatus">
-                <Icon :class="rotateIcon" custom="iconfont icon-arrow" style="color:var(--primary-text-color)" @click.stop="changeMenuStatus" size="12" />
+                <Icon :class="rotateIcon" custom="iconfont icon-arrow" style="color:var(--border-color)" @click.stop="changeMenuStatus" size="12" />
             </div>
             <Menu width="auto" :class="['menu-item', isCollapsed ? 'collapsed-menu' : '']" accordion :active-name="activeName" :open-names="openNames">
                 <vuescroll :ops="ops">
@@ -575,32 +575,32 @@ export default {
                         {
                             icon: 'iconfont icon-test',
                             name: this.$t('system.menu.trainCount'),
-                            router: '',
+                            router: '/home/jyHome',
                             tag: '',
                             role: 'teacher|admin',
                             permission: '',
-                            menuName: '',
-                            isShow: false
+                            menuName: 'jyHome',
+                            isShow: true
                         },
                         {
                             icon: 'iconfont icon-test',
                             name: this.$t('system.menu.onlineTrain'),
-                            router: '',
+                            router: '/home/online',
                             tag: '',
                             role: 'teacher|admin',
                             permission: '',
-                            menuName: '',
-                            isShow: false
+                            menuName: 'online',
+                            isShow: true
                         },
                         {
                             icon: 'iconfont icon-test',
                             name: this.$t('system.menu.scTrain'),
-                            router: '',
+                            router: '/home/offline',
                             tag: '',
                             role: 'teacher|admin',
                             permission: '',
-                            menuName: '',
-                            isShow: false
+                            menuName: 'offline',
+                            isShow: true
                         },
                         {
                             icon: 'iconfont icon-test',
@@ -625,12 +625,12 @@ export default {
                         {
                             icon: 'iconfont icon-test',
                             name: this.$t('system.menu.discuss'),
-                            router: '',
+                            router: '/home/discuss',
                             tag: '',
                             role: 'teacher|admin',
                             permission: '',
-                            menuName: '',
-                            isShow: false
+                            menuName: 'discuss',
+                            isShow: true
                         },
 						{
 							icon: 'iconfont icon-vote',

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

@@ -75,12 +75,12 @@ export default {
         font-size: 14px;
     }
     .ivu-select-dropdown {
-        background-color: #2d2d2d;
+        // background-color: #2d2d2d;
         border-radius: 2px;
-        border: 1px #464646 solid;
+        // border: 1px #464646 solid;
         .ivu-dropdown-menu {
             li {
-                color: #ccc;
+                // color: #ccc;
                 font-size: 12px !important;
                 &:hover {
                     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">
 			<div style="padding: 40px 0">
 				<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" v-if="acceptTypes.length">({{ $t("knowledge.import.tip2") }}:{{ acceptTypes.join(' / ') }})</p>
 			</div>

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

@@ -1,5 +1,5 @@
 <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">
             <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">
@@ -42,7 +42,7 @@
                             </span>
                             <span>{{item.name}}</span>
                         </p>
-                        <span class="upload-info-wrap" style="color:white;">
+                        <span class="upload-info-wrap">
                             {{parseInt(item.loadedBytes * 100 / item.size)+'%'}}
                         </span>
                         <span class="upload-info-wrap">
@@ -586,7 +586,7 @@ export default {
     margin-top: 60px;
 }
 .upload-file-item {
-    color: #909090;
+    color: var(--primary-text-color);
     margin-top: 5px;
     padding: 5px 2px 0px 5px;
     display: flex;
@@ -619,7 +619,7 @@ export default {
 }
 .upload-file-name {
     display: inline-block;
-    color: #eeeeee;
+    /* color: #eeeeee; */
     line-height: 30px;
 }
 
@@ -668,4 +668,8 @@ export default {
     background-color: initial;
     border-color: #0094ff;
 }
+
+.upload-item-left .ivu-progress-inner{
+    background: #d8d8d8;
+}
 </style>

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

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

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

@@ -1,6 +1,6 @@
 <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>
             <!-- 學制Select -->
             <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>
         </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]">
                 <Table ref="stuSelection" :columns="tableColumns" :data="tableShowData" @on-selection-change="getSelectInfo">
                     <template slot-scope="{ row,index }" slot="status">

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

@@ -42,11 +42,11 @@
     justify-content: center;
     margin: 20px 0;
     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 {

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

@@ -1,7 +1,7 @@
 @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;
 @second-fontSize: 16px;
 
@@ -27,9 +27,9 @@
     
     .content-filter-wrap {
       width: 100%;
-      border-bottom: 1px solid #606060;
+      border-bottom: 1px solid @borderColor;
       padding-left: 15px;
-      color: white;
+      color: @primary-textColor;
       position: relative;
 
       .content-filter-item {
@@ -37,7 +37,7 @@
       }
 
       .content-filter-label {
-        color: white;
+        color: @second-textColor;
         display: inline-block;
         width: 90px;
       }
@@ -151,4 +151,5 @@
     display: inline-block;
     margin-left:8px;
     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 {
-    border-color: #404040;
+    border-color: var(--border-color);
 }
 
 .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;
 }
 
 .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;
 }
 
@@ -748,9 +748,9 @@ export default {
 .file-content-wrap .ivu-table td,
 .file-content-wrap .ivu-table th,
 .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 {
@@ -767,9 +767,9 @@ export default {
 }
 
 .content-filter-wrap .ivu-input {
-    background: none;
-    color: white;
-    border-color: #606060;
+    // background: none;
+    // color: white;
+    // border-color: #606060;
     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{
-	  background-color: #e6e6e6 !important;
+	  background-color: var(--active-item-start) !important;
   }
   .el-tree-node__content {
     height: 40px;
     padding-left: 0 !important;
     &:hover {
       height: 40px;
-      background: #e6e6e6;
+      background: var(--hover-text-color);
     }
 	
 	.el-tree-node__expand-icon{
@@ -28,7 +28,7 @@
   .el-tree-node {
     &:focus {
       & > .el-tree-node__content {
-        background: #e6e6e6;
+        background: var(--active-item-start);
       }
     }
   }
@@ -66,7 +66,7 @@
 .custom-tree-tools {
   .ivu-icon {
     margin-right: 20px;
-    color: #868686;
+    color: var(--normal-icon-color);
   }
 }
 /* 修改iview Modal样式 */
@@ -80,15 +80,15 @@
 	}
 	
 	.ivu-select-single .ivu-select-selection {
-		background: #575757;
-		color: #fbfbfb;
-		border-color: transparent;
+		// background: #575757;
+		// color: #fbfbfb;
+		// border-color: transparent;
 		height: 35px;
 		margin-left: 15px;
 	}
 	
 	.ivu-select-single .ivu-select-arrow {
-		color: #fbfbfb;
+		// color: #fbfbfb;
 	}
 	
 	.ivu-modal-header{
@@ -97,7 +97,6 @@
   .ivu-modal-content {
     // background: #3c3c3c;
     overflow: hidden;
-	// font-weight: bold;
     // color: #fff;
   }
   
@@ -122,6 +121,7 @@
   .modal-content {
     padding: 0 35px 30px 35px;
     .node-title {
+      // color: #fff;
       margin: 30px 0;
       font-size: 14px;
     }
@@ -132,6 +132,8 @@
 		margin-left: 10px;
 	}
     .ivu-input {
+      // background: #575757;
+      // border-color: transparent;
       height: 35px;
       // color: #fff;
       &::-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-git-compare" color="#00c38d" :title="$t('syllabus.tree.hasCoEdit')" v-if="hasEditAuth(data) && isSchool" />
 						<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">
 								<p>{{ $t('syllabus.latestId') }}:{{ data.creatorName || '' }}</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;
 @second-fontSize:14px;
 @title-fontSize:18px;
-@themeColor:#00fec1;
+@themeColor:#08bb67;
 
 .it-container{
 	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"/>
 		</div>
 		<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">
 					<div style="display: flex;align-items: center;">
 						<PersonalPhoto :name="row.name" :picture="row.picture" />
@@ -328,10 +328,10 @@
 				line-height: 35px;
 			}
 			.ivu-input{
-				background-color: #474747;
-				border-color: #515151;
+				// background-color: #474747;
+				// border-color: #515151;
 				font-size: 12px;
-				color: #ddd;
+				// color: #ddd;
 				margin: 20px 0;
 				border-radius: 50px;
 				padding-left: 10px;

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

@@ -38,7 +38,7 @@
 }
 .common-save-btn .ivu-btn {
     border: none;
-    color: white;
+    color: #757575;
     background: none !important;
 }
 .common-save-btn {
@@ -105,3 +105,22 @@
     }
 }
 
+.tab-box {
+    display: inline-block;
+    width: 30%;
+    min-width: 303px;
+    .pane{
+        margin-right: 50px;
+        color: #777777;
+        line-height: 50px;
+        padding: 5px 0;
+        cursor: pointer;
+        vertical-align: middle;
+        padding: 5px 0px;
+        &.active{
+            font-weight: bold;
+            color: var(--primary-text-color);
+            border-bottom: 2px var(--tabs-bottom-color) solid;
+        }
+    }
+}

+ 10 - 6
TEAMModelOS/ClientApp/src/css/custom-animate.less

@@ -1,5 +1,5 @@
 /*
-    块状选单active背景动画
+    锟斤拷状选锟斤拷active锟斤拷锟斤拷锟斤拷锟斤拷
 */
 .block-bg{
     position:relative;
@@ -14,7 +14,8 @@
     left: 0;
     right: 0;
     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: scaleX(0);
 }
@@ -29,13 +30,15 @@
 }
 
 /*
-    文字选单active line动画
+    锟斤拷锟斤拷选锟斤拷active line锟斤拷锟斤拷
 */
 .line-bottom{
     position:relative;
     height:45px;
     line-height:45px !important;
-    padding: 0px 15px;
+    padding: 0px;
+    margin-right: 50px;
+    display: inline-block;
 }
 .line-bottom::before {
     content: '';
@@ -44,7 +47,7 @@
     width: 0px;
     height: 2px;
     left:0px;
-    background-color: #1CC0F3;
+    background-color: var(--tabs-bottom-color);
 }
 
 .line-bottom-active::before {
@@ -52,5 +55,6 @@
     width: 100%;
 }
 .line-bottom-active {
-    color: white !important;
+    color: var(--primary-text-color) !important;
+    font-weight: bold;
 }

+ 18 - 0
TEAMModelOS/ClientApp/src/css/custom-iview.less

@@ -0,0 +1,18 @@
+.custom-iview-split{
+    .ivu-split-trigger-vertical {
+        width: 1px;
+        background-color: var(--border-color);
+    }
+
+    .ivu-split-trigger {
+        border: none;
+    }
+
+    .ivu-split-trigger-bar-con.vertical {
+        left: -1px;
+    }
+
+    .ivu-split-trigger-vertical .ivu-split-trigger-bar {
+        width: 3px;
+    }
+}

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

@@ -39,6 +39,7 @@ import answerSheet from './answerSheet'
 import tip from './tip'
 import selflearn from './selflearn'
 import notify from './notify'
+import jyzx from './jyzx';
 export default {
   schoolBaseInfo,
   classMgmt,
@@ -81,6 +82,7 @@ export default {
   tip,
   selflearn,
   notify,
+  jyzx,
   test: '测试',
   formConfigP: {
     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: "已作答的问卷无法修改!",
+    },
+}

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

@@ -1,7 +1,7 @@
 export default {
     page:{
-        text1: 'Teacher Management',
-        text2: 'Add New Teacher',
+        text1: 'Teacher Account Management',
+        text2: 'Add New Teacher Account',
         text3: '教研组',
     },
     blurryFilter: 'Please enter ID or Name to search',

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

@@ -39,6 +39,7 @@ import answerSheet from './answerSheet'
 import tip from './tip'
 import selflearn from './selflearn'
 import notify from './notify'
+import jyzx from './jyzx';
 export default {
   schoolBaseInfo,
   classMgmt,
@@ -81,6 +82,7 @@ export default {
   tip,
   selflearn,
   notify,
+  jyzx,
   test: '测试',
   formConfigP: {
     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: "已作答的问卷无法修改!",
+    },
+}

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

@@ -22,7 +22,7 @@ export default{
         autoTips2:'此功能仅用于展示情景快速模拟教师评分数据,且分数为随机生成,仅供参考!',
         autoScore:'一键评分',
         autoAnswer:'一键作答',
-        evSubject:'测试学科:',
+        evSubject:'学科:',
         returnTop:'返回顶部',
         mockOk:'模拟成功',
         mockErr:'模拟失败',

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

@@ -34,7 +34,7 @@ export default {
     addErr: '新增失敗!',
     editOk: '修改成功!',
     editErr: '修改失敗!',
-    formTips: '請檢查課程資訊!',
+    formTips: '請先完善資訊,再儲存!',
     noSchool: '尚未加入學校,沒有學校數據',
     sltCusTips: '請選擇課程',
 

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

@@ -39,6 +39,7 @@ import answerSheet from './answerSheet'
 import tip from './tip'
 import selflearn from './selflearn'
 import notify from './notify'
+import jyzx from './jyzx';
 export default {
   schoolBaseInfo,
   classMgmt,
@@ -81,6 +82,7 @@ export default {
   tip,
   selflearn,
   notify,
+  jyzx,
   test: '測試',
   formConfigP: {
     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: "已作答的問卷無法修改!",
+    },
+}

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

@@ -1,7 +1,7 @@
 export default {
     page:{
-        text1: '教師管理',
-        text2: '新增教師',
+        text1: '教師帳號管理',
+        text2: '新增教師帳號',
         text3: '教研組'
     },
     blurryFilter: '請輸入關鍵字或帳號資訊...',

+ 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',
 				name: 'online',

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

@@ -221,7 +221,7 @@ body {
 
 #content {
     height: 100%;
-    background: #242328;
+    /* background: #242328; */
     overflow: hidden;
 }
 
@@ -264,4 +264,5 @@ body {
 @import "../css/dark-iview-checkbox.less";
 @import "../css/dark-el-cascader.less";
 @import "../css/dark-iview-style.less";
+@import "../css/custom-iview.less";
 </style>

+ 2 - 2
TEAMModelOS/ClientApp/src/view/classmgt/ManageClass.less

@@ -16,8 +16,8 @@
     padding:0px 10px;
     height:45px;
     line-height:45px;
-    border-bottom:1px solid @borderColor;
-    color:white;
+    border-bottom:1px solid var(--border-color);
+    color:var(--primary-text-color);
 }
 .text-label{
     color:@second-textColor;

+ 3 - 3
TEAMModelOS/ClientApp/src/view/classmgt/ManageClass.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="mgt-class-container dark-iview-select dark-iview-checkbox custom-scroll-bar common-save-btn" @click="nameEdStatus = true">
+    <div class="mgt-class-container custom-scroll-bar common-save-btn" @click="nameEdStatus = true">
         <!-- 头部 -->
         <div class="mgt-class-header">
             <span class="text-label">{{$t('cusMgt.classLabel')}}</span>
@@ -26,7 +26,7 @@
             </span>
         </div>
         <!-- 表格模式 -->
-        <div class="mgt-class-body dark-iview-table animated fadeIn" id="table-wrap" v-if="viewType == 1">
+        <div class="mgt-class-body animated fadeIn" id="table-wrap" v-if="viewType == 1">
             <vuescroll>
                 <Table :columns="columns" v-if="classList[curClassIndex]" :data="classList[curClassIndex].students" :loading="tableLoading" ref="students" :height="tableHeight" :no-data-text="$t('cusMgt.noStu')">
                     <Loading slot="loading" bgColor="rgba(103, 103, 103, 0.27)"></Loading>
@@ -79,7 +79,7 @@
             </vuescroll>
         </div>
         <!-- 分组设置 -->
-        <Modal v-model="customGroupStatus" :title="$t('cusMgt.autoGroup')" @on-ok="comfirmCustomRules" class="custom-group" class-name="dark-iview-modal dark-iview-form">
+        <Modal v-model="customGroupStatus" :title="$t('cusMgt.autoGroup')" @on-ok="comfirmCustomRules" class="custom-group">
             <Form :label-width="80" :label-colon="true" style="color:white;">
                 <FormItem :label="$t('cusMgt.studentCountLabel')">
                     <span v-if="customGroupStatus">{{classList[curClassIndex].students.length}}{{$t('unit.text7')}}</span>

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

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

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

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

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

@@ -175,24 +175,24 @@
 	.bank-container .ivu-tabs-bar {
 		position: sticky;
 		top: 0;
-		border-bottom: 1px solid #424242;
+		/* border-bottom: 1px solid #424242; */
 		padding: 6px 20px;
 		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:hover,
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab-active,
 	.bank-container .ivu-tabs-nav .ivu-tabs-tab {
-		color: #fffcfc;
+		/* color: #fffcfc; */
 		font-weight: bold;
 		font-size: 16px;
 	}
 
 	.bank-container .ivu-tabs-ink-bar {
 		height: 2px;
-		background: #1CC0F3;
+		background: #40A8F0;
 		/*margin-left:20px;*/
 	}
 </style>

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

@@ -11,7 +11,7 @@
                         :show-upload-list="isShowList"
                         :before-upload="beforeUpload"
                         :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">
                         <img src="@/assets/loading/loading.svg" width="100px" />
 						<p style="color: #fff;">{{ $t('http.loading')}}</p>
@@ -371,7 +371,7 @@
 
 <style lang="less">
 	.cp-import-container{
-		background: #404040;
+		// background: #404040;
 		height: 100%;
 	}
 	
@@ -450,7 +450,7 @@
 		display: flex;
 		flex-direction: column;
 		align-items: center;
-		color: #b8b8b8;
+		color: var(--second-text-color);
     }
 
         .import-tips p {

+ 8 - 8
TEAMModelOS/ClientApp/src/view/evaluation/index/CreatePaper.less

@@ -1,6 +1,6 @@
 @main-bgColor: rgb(40,40,40); //主背景颜色
-@borderColor: #424242;
-@primary-textColor: #fff; //文本主颜色
+@borderColor: var(--border-color);
+@primary-textColor: var(--primary-text-color); //文本主颜色
 @second-textColor: #a5a5a5; //文本副级颜色
 @primary-fontSize: 14px;
 @second-fontSize: 16px;
@@ -9,15 +9,15 @@
 .create-evaluation-container {
     width: 100%;
     height: 100%;
-    background: #242328;
+    // background: #242328;
     user-select: none;
-	font-family: 'NotoSerif', '微软正黑体', 'Microsoft JhengHei UI', 'Microsoft JhengHei', Sans-serif;
+	  font-family: 'NotoSerif', '微软正黑体', 'Microsoft JhengHei UI', 'Microsoft JhengHei', Sans-serif;
 	
 	.save-tips{
 		position: absolute;
 		right: 40px;
 		top: 15px;
-		color: #d0d0d0;
+		// color: #d0d0d0;
 	}
 
     .create-header {
@@ -39,8 +39,8 @@
         .btn-save {
             margin-top: 6px;
             margin-right: 20px;
-			height: 28px;
-			line-height: 28px;
+            height: 28px;
+            line-height: 28px;
         }
     }
 
@@ -61,7 +61,7 @@
     padding-left: 20px;
 
     .wrap-label {
-      color: white;
+      // color: white;
       font-size: @primary-fontSize;
       height: 40px;
       line-height: 40px;

+ 23 - 15
TEAMModelOS/ClientApp/src/view/evaluation/index/CreatePaper.vue

@@ -11,7 +11,7 @@
 					@click="saveTestPaper">{{ isLoading ? $t('evaluation.paperList.isSaving') : $t('evaluation.paperList.savePaper')}}</Button>
 			</div>
 		</div>
-		<div class="create-body dark-iview-split">
+		<div class="create-body">
 			<Split v-model="split1">
 				<div slot="left" class="demo-split-pane">
 					<div class="evaluation-attr-wrap">
@@ -45,7 +45,7 @@
 										</Option>
 									</Select>
 								</FormItem>
-								<FormItem :label="$t('evaluation.newExercise.chooseSubject')" class="dark-iview-select"
+								<FormItem :label="$t('evaluation.newExercise.chooseSubject')"
 									v-if="isSchool">
 									<Select v-model="evaluationInfo.paperSubject">
 										<Option v-for="(subject,index) in subjectList" :value="index" :key="index">
@@ -244,6 +244,14 @@
 				this.errorList = []
 				this.$refs.testPaper.$refs.exList.errorList = []
 				this.evaluationInfo.item = []
+				if(!this.subjectList.length){
+					this.$Message.warning('操作失败,请先完善当前学段的科目信息!')
+					return
+				}
+				if(!this.gradeList.length){
+					this.$Message.warning('操作失败,请先完善当前学段的年级信息!')
+					return
+				}
 				try {
 					let importList = await this.refreshImportItems(list)
 					this.evaluationInfo.item = importList
@@ -1375,9 +1383,9 @@
 <style>
 	.evaluation-attr-form .ivu-input,
 	.evaluation-attr-form .ivu-select-selection {
-		background: none;
-		color: white;
-		border-color: #999999;
+		/* background: none; */
+		color: var(--primary-text-color);
+		/* border-color: #999999; */
 		font-size: 14px;
 	}
 
@@ -1388,7 +1396,7 @@
 	}
 
 	.evaluation-attr-wrap .ivu-form .ivu-form-item-label {
-		color: #a5a5a5;
+		color: var(--second-text-color);
 	}
 
 	.evaluation-attr-wrap .ivu-tag {
@@ -1405,23 +1413,23 @@
 	}
 
 	.evaluation-attr-wrap-inputNumber .ivu-input-number-input {
-		color: #fff;
+		/* color: #fff; */
 	}
 
 	.evaluation-question-main .ivu-tabs-bar {
-		border-color: #404040;
+		/* border-color: #404040; */
 	}
 
 	.evaluation-question-main .ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab {
-		border: none;
-		background-color: #303030;
-		color: white;
+		/* border: none; */
+		/* background-color: #303030; */
+		/* color: white; */
 		margin-right: 2px;
 	}
 
 	.evaluation-question-main .ivu-tabs.ivu-tabs-card>.ivu-tabs-bar .ivu-tabs-tab-active {
-		background-color: #404040;
-		color: white;
+		/* background-color: #404040; */
+		/* color: white; */
 		font-weight: 600;
 	}
 
@@ -1436,7 +1444,7 @@
 	.create-evaluation-container .ivu-input-number-input,
 	.create-evaluation-container .ivu-input-number {
 		width: 100%;
-		background: none;
-		border-color: #999999;
+		/* background: none; */
+		/* border-color: #999999; */
 	}
 </style>

+ 1 - 1
TEAMModelOS/ClientApp/src/view/evaluation/index/index.vue

@@ -58,7 +58,7 @@
 </script>
 <style scoped>
   .evaluation {
-    background:rgb(43,43,46);
+    background:#f6f6f6;
     width:100%;
     height:100%;
     position:relative;

+ 4 - 4
TEAMModelOS/ClientApp/src/view/homepage/AcCountPie.vue

@@ -28,12 +28,12 @@ export default {
                     backgroundColor: '#fff',
                     extraCssText: 'box-shadow: 0px 0px 10px 0px rgba(19,83,88,0.2);'
                 },
-                backgroundColor: "#27262b",
+                // backgroundColor: "#27262b",
                 title: [],
                 legend: {
                     data: [],
                     textStyle: {
-                        color: '#DDDDDD',
+                        color: '#757575',
                         padding: [5, 0, 5, 0]
                     },
                     icon: 'circle',
@@ -104,13 +104,13 @@ export default {
                             name: {
                                 fontSize: 16,
                                 fontWeight: 'normal',
-                                color: '#ccc',
+                                color: '#757575',
                                 padding: [10, 0],
                             },
                             val: {
                                 fontSize: 40,
                                 fontWeight: 'bold',
-                                color: '#fff',
+                                color: '#303030',
                             },
                         },
                     },

+ 51 - 31
TEAMModelOS/ClientApp/src/view/homepage/HomePage.less

@@ -1,7 +1,8 @@
 @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); //副文本颜色
+@hover-textBgColor: var(--hover-text-color); //hover 的背景色
 @nothing-textColor: #5f5f5f;
 @primary-fontSize: 14px;
 @second-fontSize: 16px;
@@ -12,29 +13,41 @@
     height: 100%;
     display: flex;
     flex-direction: row;
-    background: #242328;
+    // background: #242328;
 }
 .box-item {
-    background: #27262b;
-    border: 1px solid #515055;
+    // background: #27262b;
+    border: 1px solid @borderColor;
     border-radius: 3px;
-    box-shadow: 0px 0px 10px 2px #000000;
+    // &:hover{
+        box-shadow: 0px 0px 10px 2px var(--card-shadow);
+    // }
 }
 .list-title {
-    width: 100%;
+    /* width: 100%;
     height: 50px;
-    line-height: 50px;
-    border-bottom: 2px solid #515055;
-    background: #2b2a2f;
+    line-height: 50px; */
+    // border-bottom: 2px solid @borderColor;
+    // background: #2b2a2f;
     color: @second-textColor;
-    padding-left: 15px;
+    // padding-left: 15px;
+
+    border-left: 2px solid var(--tabs-bottom-color);
+    margin: 15px 0;
+    margin-left: 15px;
+    padding-left: 10px;
 }
 .chart-title {
-    width: 100%;
+    /* width: 100%;
     height: 50px;
-    line-height: 50px;
+    line-height: 50px; */
     color: @second-textColor;
-    padding-left: 15px;
+    // padding-left: 15px;
+
+    border-left: 2px solid var(--tabs-bottom-color);
+    margin: 15px 0;
+    margin-left: 15px;
+    padding-left: 10px;
 }
 .prepare-area {
     width: ~"calc(29% - 30px)";
@@ -101,7 +114,7 @@
 
 .card-content-box {
     height: ~"calc(100% - 50px)";
-    padding-left:10px;
+    // padding-left:10px;
 }
 
 
@@ -114,17 +127,17 @@
         color: @second-textColor;
         padding: 10px 0px;
         font-size: 16px;
-        border-bottom: 1px solid @borderColor;
+        // border-bottom: 1px solid @borderColor;
         display: flex;
         cursor: pointer;
 
         &:hover{
-            background: #404040;
+            background: @hover-textBgColor;
         }
         .ac-type-icon {
             width: 60px;
             text-align: center;
-            color: #1cc0f3;
+            color: #40A8F0;
             line-height: 55px;
             font-size: 25px;
             margin-right: 10px;
@@ -150,7 +163,7 @@
             }
 
             .ac-name-label {
-                color: white;
+                color: @primary-textColor;
                 text-overflow: ellipsis;
                 overflow: hidden;
                 white-space: nowrap;
@@ -183,7 +196,7 @@
 }
 .notice-list-box {
     list-style: none;
-    color: white;
+    // color: white;
 
     li {
         width: 100%;
@@ -191,9 +204,10 @@
         padding: 5px 0px;
         cursor: pointer;
         padding-right: 5px;
+        padding-left: 10px;
 
         &:hover {
-            background: #404040;
+            background: @hover-textBgColor;
             // padding: 5px 2px;
         }
     }
@@ -205,7 +219,7 @@
     }
 
     .notice-text {
-        color: #EEEEEE;
+        color: @second-textColor;
         margin: 2px 0px;
         white-space: nowrap;
         overflow: hidden;
@@ -241,7 +255,7 @@
 }
 
 .upload-record-box {
-     box-shadow: 0px -6px 10px -2px #141414;
+    //  box-shadow: 0px -6px 10px -2px #141414;
 }
 .upload-record-item {
     width: 100%;
@@ -385,18 +399,24 @@
     font-size: 16px;
 }
 .today-text-label{
-    color: #FFFFFF;
-    margin-top: 30px;
-    border-bottom: 1px solid #606060;
-    padding-bottom: 8px;
+    // color: #FFFFFF;
+    // margin-top: 30px;
+    // border-bottom: 1px solid @borderColor;
+    // padding-bottom: 8px;
+
+    border-left: 2px solid var(--tabs-bottom-color);
+    margin: 20px 0;
+    // margin-left: 15px;
+    margin-bottom: 8px;
+    padding-left: 10px;
 }
 .today-cus-item{
     padding: 10px 10px;
-    border-bottom: 1px solid #505050;
+    border-bottom: 1px solid @borderColor;
     display: flex;
     align-items: center;
     &:hover{
-        background: #404040;
+        background: @hover-textBgColor;
     }
     
     .label-icon{
@@ -411,7 +431,7 @@
     .cus-time{
         font-size: 22px;
         font-weight: 400;
-        color: white;
+        color: @primary-textColor;
         display: inline-block;
     }
     .cus-time-label{

+ 5 - 5
TEAMModelOS/ClientApp/src/view/homepage/HomePage.vue

@@ -39,7 +39,7 @@
             </div>
         </div>
     </div> -->
-    <div class="home-page-container dark-iview-split dark-iview-card">
+    <div class="home-page-container">
         <!-- 课前预习 对应模块暂未排上里程 暂时隐藏 -->
         <!-- <div class="prepare-area box-item">
             <p class="list-title">
@@ -91,13 +91,13 @@
                             <p>
                                 <span class="cus-name">
                                     {{$t('home.course')}}
-                                    <span style="color:white">
+                                    <span style="color: var(--primary-text-color)">
                                         {{item.course}}
                                     </span>
                                 </span>
                                 <span class="cus-class">
                                     {{$t('home.className')}}
-                                    <span style="color:white">
+                                    <span style="color: var(--primary-text-color)">
                                         {{item.class}}
                                     </span>
                                 </span>
@@ -113,7 +113,7 @@
             <div class="calss-chart-box box-item">
                 <p class="chart-title">
                     {{$t('home.classData')}}
-                    <span style="color: aqua;margin-left: 6px;font-size: 12px;">
+                    <span style="color: var(--normal-icon-color);margin-left: 6px;font-size: 12px;">
                         ({{$t('system.preview')}})
                     </span>
                 </p>
@@ -123,7 +123,7 @@
             <div class="upload-record-box box-item" style="flex:1;">
                 <p class="list-title">
                     {{$t('home.recentRecord')}}
-                    <span style="color: aqua;margin-left: 6px;font-size: 12px;">
+                    <span style="color: var(--normal-icon-color);margin-left: 6px;font-size: 12px;">
                         ({{$t('system.preview')}})
                     </span>
                 </p>

+ 4 - 4
TEAMModelOS/ClientApp/src/view/homepage/MinTable.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="home-cus-plan dark-iview-table">
+    <div class="home-cus-plan">
         <Table :columns="columns" :data="cusData" border :loading="tabalLoading">
             <!--星期一-->
             <template slot-scope="{ row, index }" slot="MON">
@@ -364,7 +364,7 @@ export default {
     height: 30px;
     line-height: 30px;
     // background: #383838;
-    background-color: #1cc0f3;
+    background-color: #40A8F0;
     cursor: pointer;
 }
 .has-cus-icon {
@@ -386,9 +386,9 @@ export default {
 .home-cus-plan .ivu-table td,
 .home-cus-plan .ivu-table-header thead tr th,
 .home-cus-plan .ivu-table-wrapper {
-    border-color: #383838;
+    border-color: var(--border-color);
 }
 .home-cus-plan .ivu-table::after {
-    background-color: #383838;
+    background-color: var(--border-color);
 }
 </style>

+ 5 - 5
TEAMModelOS/ClientApp/src/view/homepage/TeachScore.vue

@@ -30,13 +30,13 @@ export default {
                     },
                     axisLine: {
                         lineStyle: {
-                            color: '#403f44'
+                            color: '#c3c3c3'
                         }
                     },
                     splitLine: {
                         show: true,
                         lineStyle: {
-                            color: '#403f44'
+                            color: '#c3c3c3'
                         },
                         interval: 2
                     }
@@ -48,7 +48,7 @@ export default {
                     splitLine: {
                         show: true,
                         lineStyle: {
-                            color: '#403f44'
+                            color: '#c3c3c3'
                         },
                         interval: 0
                     },
@@ -62,11 +62,11 @@ export default {
                         this.$t('home.col6')
                     ],
                     axisLabel: {
-                        color: '#DDDDDD'
+                        color: '#303030'
                     },
                     axisLine: {
                         lineStyle: {
-                            color: '#403f44'
+                            color: '#c3c3c3'
                         }
                     }
                 },

+ 3 - 3
TEAMModelOS/ClientApp/src/view/homepage/TechScore.vue

@@ -16,7 +16,7 @@ export default {
                     textStyle: {
                         fontSize: '76',
                         fontWeight: '600',
-                        color: '#ffffff',
+                        color: '#303030',
                         textAlign: 'center',
                     },
                 }, {
@@ -27,7 +27,7 @@ export default {
                     textStyle: {
                         fontSize: '14',
                         fontWeight: '400',
-                        color: '#0FF',
+                        color: '#757575',
                         textAlign: 'center',
                     },
                 }],
@@ -60,7 +60,7 @@ export default {
                     barWidth: 60,
                     showBackground: true,
                     backgroundStyle: {
-                        color: '#2e2856',
+                        color: '#dfdfdf',
                     },
                     data: [80],
                     coordinateSystem: 'polar',

+ 1 - 1
TEAMModelOS/ClientApp/src/view/jyzx/DoSurvey.vue

@@ -33,7 +33,7 @@
                                     <p v-html="getSimpleText(option.value)"></p>
                                 </Checkbox>
                             </CheckboxGroup>
-							<Input v-model="answer[index]" type="textarea" :rows="6" placeholder="输入您的回答内容..." v-if="item.type === 'subjective'" style="margin-top: 10px;"/>
+							<Input v-model="answer[index]" type="textarea" :rows="6" :placeholder="$t('jyzx.offline.placeholder1')" v-if="item.type === 'subjective'" style="margin-top: 10px;"/>
                         </div>
                         <!-- <div class="qn-item-charts" v-if="currentQn.progress === 'finish' && item.type !== 'subjective'">
 							<BaseMiniBar :barId="'minibar' + index" :barData="item.result || []"></BaseMiniBar>

+ 557 - 0
TEAMModelOS/ClientApp/src/view/jyzx/HomePage.vue

@@ -0,0 +1,557 @@
+<template>
+    <div style="background: #eee; height: 100%">
+        <vuescroll>
+            <div class="homePage">
+                <div class="home-score">
+                    <div class="score-total box-border">
+                        <p>
+                            <span class="total-font">总学时:</span>
+                            <b :class="['point-num', totalTime == 50 ? 'ok-time' : 'study-time']">{{ totalTime }}</b>
+                            /50(学时)
+                            <Tooltip max-width="200">
+                                <Icon type="ios-alert" size="15" />
+                                <div slot="content">
+                                    <div>
+                                        总学时:线上研修 + 校本研修 +
+                                        应用考核 + 课堂实录
+                                    </div>
+                                    <div>
+                                        注:各指标达到要求后,多余学时不再计入总学时
+                                    </div>
+                                </div>
+                            </Tooltip>
+                        </p>
+                        <i-circle :percent="percent" :stroke-color="percent == 100 ? '#19BE6B' : ['#2D8CF0','#19BE6B']" :stroke-width="10" :size="130">
+                            <span style="font-size: 17px">{{ percent }}%</span>
+                        </i-circle>
+                    </div>
+                    <!-- <div class="box-border score-total">
+                        <ul>
+                            <li>
+                                <p class="act-font">
+                                    总学时:
+                                    <b :class="['point-num', onlineTime == 20 ? 'ok-time' : 'study-time']">{{ onlineTime }}</b>
+                                    /20
+                                    <span class="timeNum">(学时)</span>
+                                </p>
+                                <i-circle
+                                    :percent="onlinePer"
+                                    :stroke-color="onlinePer == 100 ? '#19BE6B' : ['#2D8CF0','#19BE6B']"
+                                    :stroke-width="10"
+                                    :size="90"
+                                >
+                                    <span style="font-size: 17px">{{ onlinePer }}%</span>
+                                </i-circle>
+                            </li>
+                            <li>
+                                <p class="act-font">
+                                    已学能力点:
+                                    <b class='point-num'>{{ allAbilityCount }}</b>
+                                    /30
+                                </p>
+                                <i-circle
+                                    :percent="allAbilityCountPer"
+                                    :stroke-color="allAbilityCountPer == 100 ? '#19BE6B' : ['#2D8CF0','#19BE6B']"
+                                    :stroke-width="10"
+                                    :size="90"
+                                >
+                                    <span style="font-size: 17px">{{ allAbilityCountPer }}%</span>
+                                </i-circle>
+                            </li>
+                        </ul>
+                    </div> -->
+                    <div class="box-border">
+                        <ul>
+                            <li>
+                                <p class="act-font">
+                                    线上研修:
+                                    <b :class="['point-num', onlineTime == 20 ? 'ok-time' : 'study-time']">{{ onlineTime }}</b>
+                                    /20
+                                    <span class="timeNum">(学时)</span>
+                                </p>
+                                <i-circle :percent="onlinePer" :stroke-color="onlinePer == 100 ? '#19BE6B' : ['#2D8CF0','#19BE6B']" :stroke-width="10" :size="90">
+                                    <span style="font-size: 17px">{{ onlinePer }}%</span>
+                                </i-circle>
+                            </li>
+                            <li>
+                                <p class="act-font">
+                                    线下研修:
+                                    <b :class="['point-num', classTime == 10 ? 'ok-time' : 'study-time']">{{ classTime }}</b>
+                                    /10
+                                    <span class="timeNum">(学时)</span>
+                                </p>
+                                <i-circle :percent="classPer" :stroke-color="classPer == 100 ? '#19BE6B' : ['#2D8CF0','#19BE6B']" :stroke-width="10" :size="90">
+                                    <span style="font-size: 17px">{{ classPer }}%</span>
+                                </i-circle>
+                            </li>
+                        </ul>
+                        <ul>
+                            <li>
+                                <p class="act-font">
+                                    应用考核:
+                                    <b :class="['point-num', applicaTime == 15 ? 'ok-time' : 'study-time']">{{ applicaTime }}</b>
+                                    /15
+                                    <span class="timeNum">(学时)</span>
+                                </p>
+                                <i-circle :percent="applicaPer" :stroke-color="applicaPer == 100 ? '#19BE6B' : ['#2D8CF0','#19BE6B']" :stroke-width="10" :size="90">
+                                    <span style="font-size: 17px">{{ applicaPer }}%</span>
+                                </i-circle>
+                            </li>
+                            <li>
+                                <p class="act-font">
+                                    课堂实录:
+                                    <b :class="['point-num', discussTime == 5 ? 'ok-time' : 'study-time']">{{ discussTime }}</b>
+                                    /5
+                                    <span class="timeNum">(学时)</span>
+                                </p>
+                                <i-circle :percent="discussPer" :stroke-color="discussPer == 100 ? '#19BE6B' : ['#2D8CF0','#19BE6B']" :stroke-width="10" :size="90">
+                                    <span style="font-size: 17px">{{ discussPer }}%</span>
+                                </i-circle>
+                            </li>
+                        </ul>
+                    </div>
+                </div>
+                <div class="home-activity">
+                    <ul>
+                        <li class="act-border ability-style">
+                            <img src="@/assets/image/study_point.png" alt="">
+                            <div>
+                                <p class="act-font">已学能力点</p>
+                                <p><b class="point-num">{{ allAbilityCount }}</b> / 30</p>
+                            </div>
+                        </li>
+                        <li class="act-border ability-style">
+                            <img src="@/assets/image/ok_point.png" alt="">
+                            <div>
+                                <p class="act-font">检测合格能力点</p>
+                                <p><b class="point-num">{{ allAbilityOkNum }}</b> / {{ allAbilityOkTotal }}</p>
+                            </div>
+                        </li>
+                        <li class="act-border ability-style">
+                            <img src="@/assets/image/jyzx_app.png" alt="">
+                            <div>
+                                <p class="act-font">成果提交</p>
+                                <p><b class="point-num">{{ appNum }}</b> / {{ appTotal }}</p>
+                            </div>
+                        </li>
+                    </ul>
+                    <ul>
+                        <li class="act-border ability-style">
+                            <img src="@/assets/image/area_study.png" alt="">
+                            <div>
+                                <p class="act-font">区级研修</p>
+                                <p><b class="point-num">{{ areaNum }}</b> / {{ areaTotal }}</p>
+                            </div>
+                        </li>
+                        <li class="act-border ability-style">
+                            <img src="@/assets/image/area_survey.png" alt="">
+                            <div>
+                                <p class="act-font">区级问卷</p>
+                                <p><b class="point-num">{{ areaSurveyNum }}</b> / {{ areaSurveyTotal }}</p>
+                            </div>
+                        </li>
+                        <li class="act-border ability-style">
+                            <img src="@/assets/image/area_vote.png" alt="">
+                            <div>
+                                <p class="act-font">区级投票</p>
+                                <p><b class="point-num">{{ areaVoteNum }}</b> / {{ areaVoteTotal }}</p>
+                            </div>
+                        </li>
+                        <!-- <li class="act-border">
+                            <img src="@/assets/image/area_exam.png" alt="">
+                            <div>
+                                <p class="act-font">区级评测</p>
+                                <p><b class="point-num">{{ voteNum }}</b> / {{ voteTotal }}</p>
+                            </div>
+                        </li> -->
+                    </ul>
+                    <ul>
+                        <li class="act-border ability-style">
+                            <img src="@/assets/image/school_study.png" alt="">
+                            <div>
+                                <p class="act-font">校本研修</p>
+                                <p><b class="point-num">{{ schoolNum }}</b> / {{ schoolTotal }}</p>
+                            </div>
+                        </li>
+                        <li class="act-border ability-style">
+                            <img src="@/assets/image/school_survey.png" alt="">
+                            <div>
+                                <p class="act-font">校本问卷</p>
+                                <p><b class="point-num">{{ surveyNum }}</b> / {{ surveyTotal }}</p>
+                            </div>
+                        </li>
+                        <li class="act-border ability-style">
+                            <img src="@/assets/image/school_vote.png" alt="">
+                            <div>
+                                <p class="act-font">校本投票</p>
+                                <p><b class="point-num">{{ voteNum }}</b> / {{ voteTotal }}</p>
+                            </div>
+                        </li>
+                        <!-- <li class="act-border">
+                            <img src="@/assets/image/school_exam.png" alt="">
+                            <div>
+                                <p class="act-font">校本评测</p>
+                                <p><b class="point-num">{{ voteNum }}</b> / {{ voteTotal }}</p>
+                            </div>
+                        </li> -->
+                    </ul>
+                </div>
+            </div>
+        </vuescroll>
+    </div>
+</template>
+
+<script>
+export default {
+    name: "HomaYanxiu",
+    data() {
+        return {
+            totalTime: 0, //总学时
+            percent: 0, //总学时的百分比
+            onlineTime: 0, //线上
+            onlinePer: 0, //线上百分比
+            classTime: 0, //校本
+            classPer: 0, //校本百分比
+            applicaTime: 0, //应用
+            applicaPer: 0, //应用百分比
+            discussTime: 0, //课堂
+            discussPer: 0, //课堂百分比
+            allAbilityCount: 0, //学习的能力点
+            allAbilityCountPer: 0, //学习的能力点百分比
+            allAbilityOkNum: 0, //检测能力点
+            allAbilityOkTotal: 0, //选择总能力点
+            areaNum: 0, //区级研修
+            areaTotal: 0, //全部区级研修
+            schoolNum: 0, //校本活动
+            schoolTotal: 0, //全部校本活动
+            appNum: 0, //应用成果
+            appTotal: 0, //全部应用成果
+            surveyNum: 0, //问卷
+            surveyTotal: 0, //全部问卷
+            areaSurveyNum: 0, //区级问卷
+            areaSurveyTotal: 0, //问卷
+            voteNum: 0, //投票
+            voteTotal: 0, //全部投票
+            areaVoteNum: 0, //投票
+            areaVoteTotal: 0, //投票
+            examNum: 0, //评测
+            examTotal: 0, //全部评测
+        }
+    },
+    mounted() {
+        this.getStudyTime()
+    },
+    methods: {
+        getStudyTime() {
+            let req = {
+                tmdid: this.$store.state.userInfo.TEAMModelId,
+                school: this.$store.state.userInfo.schoolCode,
+            }
+            this.$api.jyzx.getStudyTime(req).then((res) => {
+                if (res) {
+                    let total = 0
+                    this.allAbilityCount = res.allAbilityCount
+                    this.onlineTime = res.onlineTime
+                    this.classTime = res.offlinelTime
+                    this.applicaTime = res.schoolScoreTime
+                    this.discussTime = res.classVideoTime
+                    // 线上研修
+                    if (this.onlineTime >= 20) {
+                        total += 20
+                        this.onlinePer = 100
+                    } else {
+                        total += this.onlineTime
+                        this.onlinePer = Math.floor((res.onlineTime / 20) * 100)
+                    }
+                    // 校本研修
+                    if (this.classTime >= 10) {
+                        total += 10
+                        this.classPer = 100
+                    } else {
+                        total += this.classTime
+                        this.classPer = Math.floor(
+                            (res.offlinelTime / 10) * 100
+                        )
+                    }
+                    // 应用考核
+                    if (this.applicaTime >= 15) {
+                        total += 15
+                        this.applicaPer = 100
+                    } else {
+                        total += this.applicaTime
+                        this.applicaPer = Math.floor(
+                            (res.schoolScoreTime / 15) * 100
+                        )
+                    }
+                    // 课堂实录
+                    if (this.discussTime >= 5) {
+                        total += 5
+                        this.discussPer = 100
+                    } else {
+                        total += this.discussTime
+                        this.discussPer = Math.floor(
+                            (res.classVideoTime / 5) * 100
+                        )
+                    }
+                    this.totalTime = total
+                    this.percent = Math.floor((total / 50) * 100)
+                    this.allAbilityCountPer = Math.floor(
+                        (res.allAbilityCount / 30) * 100
+                    )
+                    // 检测
+                    this.allAbilityOkNum = res.hasAbilityExercise
+                    this.allAbilityOkTotal = res.subCount
+                    // 区级
+                    this.areaNum = res.offlineAreaDoneCount
+                    this.areaTotal = res.offlineAreaJoinCount
+                    // 校本
+                    this.schoolNum = res.offlineSchoolDoneCount
+                    this.schoolTotal = res.offlineSchoolJoinCount
+                    // 成果
+                    this.appNum = res.uploadDoneCount
+                    this.appTotal = res.uploadTotalCount
+                    // 问卷
+                    this.surveyNum = res.surveyDoneCount
+                    this.surveyTotal = res.surveyJoinCount
+                    this.areaSurveyNum = res.surveyAreaDoneCount
+                    this.areaSurveyTotal = res.surveyAreaJoinCount
+                    // 投票
+                    this.voteNum = res.voteDoneCount
+                    this.voteTotal = res.voteJoinCount
+                    this.areaVoteNum = res.voteAreaDoneCount
+                    this.areaVoteTotal = res.voteAreaJoinCount
+                    // 评测
+                    this.examNum = res.examDoneCount
+                    this.examTotal = res.examJoinCount
+                }
+            })
+        },
+    },
+    watch:{
+        '$store.state.userInfo.schoolCode':{
+            handler(n,o){
+                this.getStudyTime()
+            }
+        }
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.home {
+    display: flex;
+
+    .totalNum {
+        width: 40%;
+    }
+
+    .total,
+    .yxType {
+        margin: 25px;
+        box-shadow: 0 0 15px #888888;
+        padding: 20px;
+        border-radius: 10px;
+        background: white;
+    }
+
+    .total {
+        // width: 40%;
+        margin-right: 0;
+        display: flex;
+        align-items: center;
+
+        /* & > div:first-child {
+            margin: 0 30px;
+        } */
+
+        & > p {
+            margin-bottom: 25px;
+        }
+    }
+
+    .yxType {
+        width: 60%;
+        display: flex;
+        flex-direction: column;
+
+        & > div {
+            margin-bottom: 20px;
+
+            & > p:first-of-type {
+                float: right;
+            }
+        }
+
+        .sucTime {
+            color: #19be6b;
+            font-size: 14px;
+            border: 1px solid;
+            margin: 0 10px;
+            padding: 2px 3px;
+            border-radius: 5px;
+        }
+    }
+    .yxType p:nth-child(2),
+    .total > div > p {
+        font-size: 20px;
+        font-weight: 600;
+    }
+}
+.fontStyle {
+    font-size: 30px;
+}
+.timeNum {
+    font-size: 16px;
+}
+
+.homePage {
+    .box-border {
+        margin: 25px;
+        box-shadow: 0 0 15px #c5c5c5;
+        border-radius: 5px;
+        background: white;
+    }
+
+    .act-border {
+        box-shadow: 0 0 15px #c5c5c5;
+        border-radius: 5px;
+        background: white;
+    }
+
+    .home-score {
+        display: flex;
+
+        .score-total {
+            width: 32%;
+            margin-right: 0;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+
+            ul {
+                width: 100%;
+                li {
+                    display: flex;
+                    align-items: center;
+                    box-sizing: border-box;
+                    // min-width: 200px;
+                    position: relative;
+                    justify-content: center;
+                    height: 150px;
+
+                    &:first-child {
+                        border-bottom: 1px solid #d8e7f6;
+                    }
+
+                    div {
+                        margin-left: 20px;
+                        display: inline-block;
+
+                        p {
+                            line-height: 33px;
+                        }
+                    }
+                }
+            }
+
+            p {
+                font-size: 20px;
+                margin-right: 20px;
+
+                .total-font {
+                    font-size: 25px;
+                }
+            }
+        }
+
+        & > div:last-child {
+            width: 65%;
+            ul {
+                display: flex;
+
+                &:first-child {
+                    border-bottom: 1px solid #d8e7f6;
+                }
+
+                li {
+                    display: flex;
+                    align-items: center;
+                    box-sizing: border-box;
+                    width: 50%;
+                    min-width: 200px;
+                    position: relative;
+                    justify-content: center;
+                    height: 150px;
+
+                    &:first-child {
+                        border-right: 1px solid #d8e7f6;
+                    }
+
+                    div {
+                        margin-left: 20px;
+                        display: inline-block;
+
+                        p {
+                            line-height: 33px;
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    .home-activity {
+        padding-left: 25px;
+
+        .ability-style {
+            padding: 0 70px;
+        }
+
+        ul {
+            display: flex;
+            margin-bottom: 25px;
+
+            li {
+                width: 32%;
+                padding: 0 30px;
+                height: 150px;
+                margin-right: 25px;
+                display: flex;
+                align-items: center;
+
+                img {
+                    display: inline-block;
+                    margin-right: 20px;
+                    width: 80px;
+                    height: 80px;
+                }
+            }
+        }
+    }
+
+    .act-font {
+        font-size: 20px;
+        margin-bottom: 10px;
+    }
+
+    .study-time {
+        color: red;
+    }
+
+    .ok-time {
+        color: #19be6b;
+    }
+
+    .point-num {
+        font-size: 25px;
+    }
+}
+@media all and (max-width: 1367px) {
+    .score-total {
+        flex-direction: column;
+        p {
+            margin-bottom: 20px;
+        }
+    }
+}
+</style>

+ 10 - 10
TEAMModelOS/ClientApp/src/view/jyzx/Question.vue

@@ -28,26 +28,26 @@
                                 <span class="list-item-title"
                                     style="display: inline-block; background: #a2b02e;"
                                     v-show="item.owner == 'area'"
-                                ></span>
+                                >{{ $t("jyzx.common.area") }}</span>
                                 <span class="list-item-title"
                                     style="display: inline-block; background: #FF9900;"
                                     v-show="item.owner == 'school'"
-                                ></span>
+                                >{{ $t("jyzx.common.school") }}</span>
                                 <span style="font-size: 16px;">{{ item.name }}</span>
                             </p>
                             <p class="list-item-time" style="color: #9d9d9d;font-weight: 500;margin: 5px 0;">
-                                发起时间: {{ dateFormat(item.createTime) }}
+                                {{ $t("jyzx.activity.startTime") }}: {{ dateFormat(item.createTime) }}
                                 <!--{{ dateFormat(item.endTime) }}-->
                             </p>
                         </div>
                         <div class="list-new-type">
                             <div class="list-new-unDone isAllowRetry"  v-if="item.time ==0"  style="background-color: #19b177 ">
                                 <!--<span>{{ $t("studentWeb.public.going") }}</span>-->
-                                <span>未完成</span>
+                                <span>{{ $t("jyzx.activity.incomplete") }}</span>
                             </div>
                             <div class="list-new-unDone isAllowRetry" v-if="item.time !=0" style="background-color:#969696">
                                 <!--<span>{{ $t("studentWeb.public.going") }}</span>-->
-                                <span >已完成</span>
+                                <span >{{ $t("jyzx.common.complete") }}</span>
                             </div>
                         </div>
                     </div>
@@ -63,8 +63,8 @@
                     <EmptyData v-if="!Object.keys(surveyInfo).length" :top="-100"></EmptyData>
                     <div style="margin-bottom: 100px" v-else>
                         <p class="servey-title">
-                            <span class="school-gade" style="background: #a2b02e" v-show="surveyInfo.owner == 'area'">区级</span>
-                            <span class="school-gade" style="background: #ff9900" v-show="surveyInfo.owner == 'school'">校级</span>
+                            <span class="school-gade" style="background: #a2b02e" v-show="surveyInfo.owner == 'area'">{{ $t("jyzx.common.typeArea") }}</span>
+                            <span class="school-gade" style="background: #ff9900" v-show="surveyInfo.owner == 'school'">{{ $t("jyzx.common.typeSch") }}</span>
                             {{ surveyInfo.name }}
                         </p>
                         <!-- 描述 -->
@@ -293,7 +293,7 @@ export default {
         submitMessage() {
             console.log(this.submitArr)
 			if(this.submitArr.some(i => i === '' || i.length === 0)){
-				this.$Message.warning('存在未作答的题目!')
+				this.$Message.warning(this.$t("jyzx.activity.message2"))
 				return
 			}
             var answerData = this.submitArr
@@ -308,7 +308,7 @@ export default {
             ).then(
                 res => {
                     console.log(res,'提交后的返回')
-					this.$Message.success('提交成功!')
+					this.$Message.success(this.$t("jyzx.activity.success2"))
 					this.getquestionnaire()
                 },
                 error => {
@@ -319,7 +319,7 @@ export default {
         onOptionClick(item, index, code) {
             console.log(item,index,code)
 			if(this.curSurvey.time !== 0){
-				this.$Message.warning('已作答的问卷无法修改!')
+				this.$Message.warning(this.$t("jyzx.activity.message3"))
 				return
 			}
             if (this.submitArr[index].includes(code)) {

+ 9 - 9
TEAMModelOS/ClientApp/src/view/jyzx/Vote.vue

@@ -28,11 +28,11 @@
                                 <span class="list-item-title"
                                     style="display: inline-block; background: #a2b02e;"
                                     v-show="item.owner == 'area'"
-                                ></span>
+                                >{{ $t("jyzx.common.area") }}</span>
                                 <span class="list-item-title"
                                     style="display: inline-block; background: #FF9900;"
                                     v-show="item.owner == 'school'"
-                                ></span>
+                                >{{ $t("jyzx.common.school") }}</span>
                                 <span>{{ item.name }}</span>
                             </p>
                             <!-- <p class="list-item-time">
@@ -62,8 +62,8 @@
             <div class="vote-option" v-else>
                 <div class="billboard-and-LightBox">
                     <p>
-                        <span class="school-gade" style="background: #a2b02e" v-show="voteInfo.owner == 'area'">区级</span>
-                        <span class="school-gade" style="background: #ff9900" v-show="voteInfo.owner == 'school'">校级</span>
+                        <span class="school-gade" style="background: #a2b02e" v-show="voteInfo.owner == 'area'">{{ $t("jyzx.common.typeArea") }}</span>
+                        <span class="school-gade" style="background: #ff9900" v-show="voteInfo.owner == 'school'">{{ $t("jyzx.common.typeSch") }}</span>
                         {{ voteInfo.name }}
                     </p>
                     <div class="title-rect-group">
@@ -77,9 +77,9 @@
                         </p>
                     </div>
                     <div class="title-rect-group">
-                        <h2 class="title-rect-name">投票区</h2>
+                        <h2 class="title-rect-name">{{ $t("jyzx.activity.voteArea") }}</h2>
                         <span v-show="voteInfo.voteNum > 1"
-                            >可投票数:{{ haveVoteNum }}</span
+                            >{{ $t("jyzx.activity.haveVoteNum") }}:{{ haveVoteNum }}</span
                         >
                     </div>
                 </div>
@@ -140,7 +140,7 @@
                         voteInfo.voteNum < voteChecked.length &&
                         voteInfo.voteNum > 1
                     "
-                    >投票数已超出</span
+                    >{{ $t("jyzx.activity.numExce") }}</span
                 >
             </div>
         </div>
@@ -222,7 +222,7 @@ export default {
         // 确认投票
         submitMessage() {
             if ((!this.voteChecked.length && this.voteInfo.voteNum > 1) || (this.radioCheck === '' && this.voteInfo.voteNum === 1)) {
-                this.$Message.warning("您还未投票")
+                this.$Message.warning(this.$t("jyzx.activity.message1"))
             } else {
                 let ans = []
                 if (this.voteInfo.voteNum === 1) {
@@ -239,7 +239,7 @@ export default {
                 }
                 this.$api.jyzx.setVote(req).then((res) => {
                     if (res.code == 200) {
-                        this.$Message.success("投票成功")
+                        this.$Message.success(this.$t("jyzx.activity.success2"))
                         this.getList()
 						this.radioCheck = ''
 						this.voteChecked = []

+ 40 - 40
TEAMModelOS/ClientApp/src/view/jyzx/application.vue

@@ -3,7 +3,7 @@
         <div v-if="!isReview && !isShowDetail && !isShowPaper" style="height: 100%;">
             <Card :bordered="false">
                 <Tabs :value="curTab" @on-click="onTabChange">
-                    <TabPane label="成果列表" name="name1">
+                    <TabPane :label="$t('jyzx.application.list')" name="name1">
                         <EmptyData v-if="!appList.length"></EmptyData>
                         <div v-else class="app-table">
                             <Table :columns="appCol" :data="appList" height="730">
@@ -19,47 +19,47 @@
                                 </template>
                                 <template slot-scope="{ row }" slot="result">
                                     <p v-if="row.uploads.length" style="font-weight: bold;">
-                                        <span v-show="row.self === 2" style="color: #007700;">优秀</span>
-                                        <span v-show="row.self === 1" style="color: orangered;">合格</span>
-                                        <span v-show="row.self === 0" style="color: red;">不合格</span>
+                                        <span v-show="row.self === 2" style="color: #007700;">{{ $t('jyzx.application.fine') }}</span>
+                                        <span v-show="row.self === 1" style="color: orangered;">{{ $t('jyzx.application.qualified') }}</span>
+                                        <span v-show="row.self === 0" style="color: red;">{{ $t('jyzx.application.unqualified') }}</span>
                                     </p>
                                     <p v-else>-</p>
                                 </template>
 								<template slot-scope="{ row }" slot="schoolAppraise">
 								    <p v-if="row.uploads.length" style="font-weight: bold;">
-								        <span v-show="row.schoolAppraise === 2" style="color: #007700;">优秀</span>
-								        <span v-show="row.schoolAppraise === 1" style="color: orangered;">合格</span>
-								        <span v-show="row.schoolAppraise === 0" style="color: red;">不合格</span>
+								        <span v-show="row.schoolAppraise === 2" style="color: #007700;">{{ $t('jyzx.application.fine') }}</span>
+								        <span v-show="row.schoolAppraise === 1" style="color: orangered;">{{ $t('jyzx.application.qualified') }}</span>
+								        <span v-show="row.schoolAppraise === 0" style="color: red;">{{ $t('jyzx.application.unqualified') }}</span>
 								    </p>
 								    <p v-else>-</p>
 								</template>
 								<template slot-scope="{ row }" slot="exerciseScore">
 								    <p style="font-weight: bold;">
 								        <span v-show="row.exerciseScore === -1" style="color: #a2a2a2;">-</span>
-								        <span v-show="row.exerciseScore === 0" style="color: red;">未通过</span>
-								        <span v-show="row.exerciseScore === 1" style="color: #007700;">通过</span>
+								        <span v-show="row.exerciseScore === 0" style="color: red;">{{ $t('jyzx.application.noPass') }}</span>
+								        <span v-show="row.exerciseScore === 1" style="color: #007700;">{{ $t('jyzx.application.pass') }}</span>
 								    </p>
 								</template>
                                 <template slot-scope="{ row }" slot="action">
-                                    <Button type="success" size="small" @click="doUpload(row)" v-if="!row.uploads.length">上传文件</Button>
-                                    <Button size="small" @click="goAppraiseDetail(row)" v-else>查看评价</Button>
-                                    <Button type="primary" size="small" @click="goTestPaper(row)" style="margin-left: 5px;">{{ row.exerciseScore > -1 ? '重新检测' : '自我检测' }}</Button>
+                                    <Button type="success" size="small" @click="doUpload(row)" v-if="!row.uploads.length">{{ $t('jyzx.application.load') }}</Button>
+                                    <Button size="small" @click="goAppraiseDetail(row)" v-else>{{ $t('jyzx.common.seeEvaluate') }}</Button>
+                                    <Button type="primary" size="small" @click="goTestPaper(row)" style="margin-left: 5px;">{{ row.exerciseScore > -1 ? $t('jyzx.application.againTest') : $t('jyzx.application.meTest') }}</Button>
                                 </template>
                             </Table>
                         </div>
                     </TabPane>
-                    <TabPane label="成果互评" name="name2">
+                    <TabPane :label="$t('jyzx.application.discuss')" name="name2">
                         <EmptyData textContent="暂无数据" v-if="!otherList.length"></EmptyData>
                         <div v-else class="app-table">
                             <Table :columns="comCol" :data="otherList">
 								 <template slot-scope="{ row }" slot="myAppraise">
-                                    <span v-show="row.myAppraise === 2" style="color: #007700;">优秀</span>
-                                    <span v-show="row.myAppraise === 1" style="color: orangered;">合格</span>
-                                    <span v-show="row.myAppraise === 0" style="color: red;">不合格</span>
-                                    <span v-show="row.myAppraise === -1">未评价</span>
+                                    <span v-show="row.myAppraise === 2" style="color: #007700;">{{ $t('jyzx.application.fine') }}</span>
+                                    <span v-show="row.myAppraise === 1" style="color: orangered;">{{ $t('jyzx.application.qualified') }}</span>
+                                    <span v-show="row.myAppraise === 0" style="color: red;">{{ $t('jyzx.application.unqualified') }}</span>
+                                    <span v-show="row.myAppraise === -1">{{ $t('jyzx.application.noEvaluate') }}</span>
                                 </template>
 								<template slot-scope="{ row }" slot="action">
-								    <Button :type="row.myAppraise === -1 ? 'primary':'info'" size="small" @click="appraiseOther(row)">{{ row.myAppraise === -1 ? '前往评分' : '重新评分' }}</Button>
+								    <Button :type="row.myAppraise === -1 ? 'primary':'info'" size="small" @click="appraiseOther(row)">{{ row.myAppraise === -1 ? $t('jyzx.application.score') : $t('jyzx.application.againScore') }}</Button>
 								</template>
                             </Table>
                         </div>
@@ -74,9 +74,9 @@
             </div>
             <Table :columns="appraiseColumns" :data="appraiseArr" border>
                 <template slot-scope="{ row, index }" slot="result">
-                    <span v-show="row.result === '优秀'" style="color: #007700;">优秀</span>
-                    <span v-show="row.result === '合格'" style="color: orangered;">合格</span>
-                    <span v-show="row.result === '不合格'" style="color: red;">不合格</span>
+                    <span v-show="row.result === '优秀'" style="color: #007700;">{{ $t('jyzx.application.fine') }}</span>
+                    <span v-show="row.result === '合格'" style="color: orangered;">{{ $t('jyzx.application.qualified') }}</span>
+                    <span v-show="row.result === '不合格'" style="color: red;">{{ $t('jyzx.application.unqualified') }}</span>
                 </template>
             </Table>
         </div>
@@ -101,93 +101,93 @@ export default {
 			curTab:'name1',
             appraiseColumns: [
                 {
-                    title: '评价人',
+                    title: this.$t('jyzx.application.evaName'),
                     key: 'name'
                 },
                 {
-                    title: '评价类型',
+                    title: this.$t('jyzx.application.evaType'),
                     key: 'type'
                 },
                 {
-                    title: '评价结果',
+                    title: this.$t('jyzx.application.evaResult'),
                     slot: 'result',
                 },
                 {
-                    title: '评价内容',
+                    title: this.$t('jyzx.application.evaContent'),
                     key: 'content'
                 },
                 {
-                    title: '评价时间',
+                    title: this.$t('jyzx.application.evaTime'),
                     key: 'time'
                 },
             ],
             appraiseArr: [],
             appCol: [{
-                title: "能力点名称",
+                title: this.$t('jyzx.common.pointName'),
                 key: "name",
                 slot: "name",
             },
             {
-                title: "上传时间",
+                title: this.$t('jyzx.common.loadTime'),
                 slot: "time",
             },
             {
-                title: "互评次数",
+                title: this.$t('jyzx.application.disNum'),
                 key: "num",
 				width:100
             },
             {
-                title: "自评结果",
+                title: this.$t('jyzx.application.disByMe'),
                 slot: "result",
 				width:100
             },
 			{
-			    title: "校评结果",
+			    title: this.$t('jyzx.application.disBySchool'),
 			    slot: "schoolAppraise",
 				width:100
 			},
 			{
-			    title: "专家抽查",
+			    title: this.$t('jyzx.application.spotCheck'),
 			    key: "teacherAppraise",
 				width:100
 			},
 			{
-			    title: "自我检测结果",
+			    title: this.$t('jyzx.application.testByMe'),
 			    slot: "exerciseScore",
 			},
             {
-                title: "操作",
+                title: this.$t('jyzx.common.action'),
                 slot: "action",
             },
             ],
             appList: [],
             comCol: [{
-                title: "教师姓名",
+                title: this.$t('jyzx.application.teacherName'),
                 key: "tmdname",
                 align: "center",
             },
             {
-                title: "维度",
+                title: this.$t('jyzx.common.dimension'),
                 key: "dimension",
                 align: "center",
             },
             {
-                title: "能力点",
+                title: this.$t('jyzx.common.point'),
                 key: "abilityName",
                 align: "center",
             },
             {
-                title: "上传时间",
+                title: this.$t('jyzx.common.loadTime'),
                 key: "time",
                 align: "center",
             },
 			{
-			    title: "评价结果",
+			    title: this.$t('jyzx.application.evaResult'),
 			    slot: "myAppraise",
 			    align: "center",
 			},
             {
-                title: "操作",
+                title: this.$t('jyzx.common.action'),
                 slot: "action",
                 align: "center",
             },

+ 29 - 29
TEAMModelOS/ClientApp/src/view/jyzx/classMemoir.vue

@@ -1,27 +1,27 @@
 <template>
     <div class="class-memoir">
         <Tabs value="name1" v-show="showStatus === false">
-            <TabPane label="我的课堂实录" name="name1">
+            <TabPane :label="$t('jyzx.classRecord.myRecod')" name="name1">
                 <Card :bordered="false">
                     <div>
                         <AbilityUpload :auth="curSas" :acceptTypes="['mp4','avi','flv','mkv','rmvb']" :scope="'school'" mode='other' :prefix="uploadId" @uploadFinish="uploadFinish"></AbilityUpload>
-                        <Button type="info" size="large" :long="true" @click="confirm">确认上传</Button>
+                        <Button type="info" size="large" :long="true" @click="confirm">{{ $t('jyzx.classRecord.loadOK') }}</Button>
                     </div>
                     <div v-if="calssListinfo.length" style="height: calc(100vh - 255px); overflow: auto">
                         <Table :columns="classCol" :data="calssListinfo" height="680">
                             <template slot-scope="{ row, index }" slot="action">
-                                <Button size="small" @click="checkevaluate(row,true)" style="margin-right:2%">查看评价</Button>
-                                <Button size="small" @click="delClass(row)">删除</Button>
+                                <Button size="small" @click="checkevaluate(row,true)" style="margin-right:2%">{{ $t('jyzx.common.seeEvaluate') }}</Button>
+                                <Button size="small" @click="delClass(row)">{{ $t('jyzx.common.delete') }}</Button>
                             </template>
                         </Table>
                     </div>
                 </Card>
             </TabPane>
-            <TabPane label="同组课堂实录" name="name2">
+            <TabPane :label="$t('jyzx.classRecord.groupRecord')" name="name2">
                 <div v-if="teamVideo.length" style="height: calc(100vh - 255px); overflow: auto">
                     <Table :columns="teamclassCol" :data="teamVideo" height="680">
                         <template slot-scope="{ row, index }" slot="actions">
-                            <Button size="small" @click="checkevaluate(row)">查看课程及评价</Button>
+                            <Button size="small" @click="checkevaluate(row)">{{ $t('jyzx.classRecord.see') }}</Button>
                         </template>
                     </Table>
                 </div>
@@ -57,32 +57,32 @@ export default {
         return {
             classCol: [
                 {
-                    title: "视频名称",
+                    title: this.$t("jyzx.classRecord.videoName"),
                     key: "name",
                     align: "center",
                 },
                 {
-                    title: "上传时间",
+                    title: this.$t("jyzx.common.loadTime"),
                     key: "time",
                     align: "center",
                 },
                 {
-                    title: "文件大小",
+                    title: this.$t("jyzx.classRecord.fileSize"),
                     key: "size",
                     align: "center",
                 },
                 {
-                    title: "操作",
+                    title: this.$t("jyzx.common.action"),
                     slot: "action",
                     align: "center",
                 },
             ],
             teamclassCol: [
-                { title: '视频名称', key: 'vname', align: 'center'},
-                { title: '上传作者', key: 'tmdname', align: 'center' },
-                { title: '大小', key: 'vsize', align: 'center' },
-                { title: '上传时间', key: 'vtime', align: 'center'},
-                { title: '操作', slot: 'actions', align: 'center' },
+                { title: this.$t("jyzx.classRecord.videoName"), key: 'vname', align: 'center'},
+                { title: this.$t("jyzx.classRecord.loadAuth"), key: 'tmdname', align: 'center' },
+                { title: this.$t("jyzx.classRecord.size"), key: 'vsize', align: 'center' },
+                { title: this.$t("jyzx.common.loadTime"), key: 'vtime', align: 'center'},
+                { title: this.$t("jyzx.common.action"), slot: 'actions', align: 'center' },
             ],
             classList: [
                 {
@@ -125,23 +125,23 @@ export default {
             //虚拟数据
             columns1aa: [
                 {
-                    title: '评价人',
+                    title: this.$t("jyzx.classRecord.evaName"),
                     key: 'name'
                 },
                 {
-                    title: '评价类型',
+                    title: this.$t("jyzx.classRecord.evaType"),
                     key: 'type'
                 },
                 {
-                    title: '评价结果',
+                    title: this.$t("jyzx.classRecord.evaResult"),
                     key: 'result'
                 },
                 {
-                    title: '评价内容',
+                    title: this.$t("jyzx.classRecord.evaContent"),
                     key: 'content'
                 },
                  {
-                    title: '评价时间',
+                    title: this.$t("jyzx.classRecord.evaTime"),
                     key: 'time'
                 }
             ],
@@ -197,9 +197,9 @@ export default {
         delClass(row) {
             console.log(row)
             this.$Modal.confirm({
-                title: "您确实要删除这条视频吗?",
-                okText: "删除",
-                cancelText: "取消",
+                title: this.$t("jyzx.classRecord.message1"),
+                okText: this.$t("jyzx.common.delete"),
+                cancelText: this.$t("jyzx.common.cancel"),
                 onOk: () => {
                     this.getvideo('delete', row.id)
                     /* this.$Message.success("删除成功")*/
@@ -221,7 +221,7 @@ export default {
                 this.uploadData = res[0]
                 this.getvideo('uploadafter', 11)
             } else {
-                this.$Message.error('上传失败')
+                this.$Message.error(this.$t("jyzx.classRecord.message2"))
             }
         },
         //确认上传
@@ -254,10 +254,10 @@ export default {
                             timeData[u].size = this.formatSize(timeData[u].size)
                         }
                         this.calssListinfo = timeData
-                        this.$Message.success('上传成功')
+                        this.$Message.success(this.$t("jyzx.classRecord.message3"))
                     },
                     error => {
-                        this.$Message.error('上传失败')
+                        this.$Message.error(this.$t("jyzx.classRecord.message2"))
                     }
                 )
             } else if (action === 'delete') {
@@ -272,10 +272,10 @@ export default {
                             timeData[d].size = this.formatSize(timeData[d].size)
                         }
                         this.calssListinfo = timeData
-                        this.$Message.success('删除成功')
+                        this.$Message.success(this.$t("jyzx.classRecord.message4"))
                     },
                     error => {
-                        this.$Message.success('删除失败')
+                        this.$Message.success(this.$t("jyzx.classRecord.message5"))
                     }
                 )
             } else {
@@ -328,7 +328,7 @@ export default {
                         })
                         this.teamVideo = res.groupMembers
                     } else {
-                        this.$Message.info('暂无同组课堂实录')
+                        this.$Message.info(this.$t("jyzx.classRecord.message6"))
                     }
                    
                 },

+ 21 - 21
TEAMModelOS/ClientApp/src/view/jyzx/discuss.vue

@@ -34,12 +34,12 @@
                                     </div>
                                     <p>
                                         <span style="color: #2d8cf0"
-                                            >话题:</span
+                                            >{{ $t('jyzx.common.theme') }}:</span
                                         >{{ item.title }}
                                     </p>
                                     <div>
                                         <span style="color: #2d8cf0"
-                                            >内容:</span
+                                            >{{ $t('jyzx.common.content') }}:</span
                                         >
                                         <p v-html="item.comment"></p>
                                     </div>
@@ -52,7 +52,7 @@
                                                 "
                                                 @click="openReply(item.id, 0)"
                                                 v-show="item.replyCount != 0"
-                                                >评论回复({{
+                                                >{{ $t('jyzx.common.comment') }}({{
                                                     item.replyCount
                                                 }})</span
                                             >
@@ -62,7 +62,7 @@
                                                     color: #2d8cf0;
                                                 "
                                                 @click="replyOther(item, index)"
-                                                >回复</span
+                                                >{{ $t('jyzx.common.reply') }}</span
                                             ><span
                                                 @click="delect(item.id, index)"
                                                 v-if="
@@ -71,10 +71,10 @@
                                                         .TEAMModelId
                                                 "
                                                 style="margin-right: 20px"
-                                                >删除</span
+                                                >{{ $t('jyzx.common.delete') }}</span
                                             >
                                             <span @click="report(item.tmdname)"
-                                                >举报</span
+                                                >{{ $t('jyzx.common.report') }}</span
                                             >
                                         </div>
                                         <p>{{ item.time | formatDate }}</p>
@@ -98,13 +98,13 @@
                                                     item.tmdid
                                                 )
                                             "
-                                            >确定</Button
+                                            >{{ $t('jyzx.common.sure') }}</Button
                                         >
                                         <Button
                                             style="margin-left: 8px"
                                             @click="cancelReply"
                                             size="small"
-                                            >取消</Button
+                                            >{{ $t('jyzx.common.cancel') }}</Button
                                         >
                                     </div>
                                 </div>
@@ -154,13 +154,13 @@
                                                                 .TEAMModelId
                                                     "
                                                     style="margin-right: 20px"
-                                                    >删除</span
+                                                    >{{ $t('jyzx.common.delete') }}</span
                                                 >
                                                 <span
                                                     @click="
                                                         report(child.tmdname)
                                                     "
-                                                    >举报</span
+                                                    >{{ $t('jyzx.common.report') }}</span
                                                 >
                                             </div>
                                             <p>{{ child.time | formatDate }}</p>
@@ -173,8 +173,8 @@
                 </div>
             </div>
         </Card>
-        <Modal v-model="isReport" title="举报" @on-ok="ok">
-            <p>请选择举报类型:</p>
+        <Modal v-model="isReport" :title="$t('jyzx.common.report')" @on-ok="ok">
+            <p>{{ $t('jyzx.common.message') }}</p>
             <CheckboxGroup v-model="checkReport">
                 <Checkbox
                     :label="index"
@@ -294,7 +294,7 @@ export default {
                 .then(
                     (res) => {
                         console.log(res)
-                        this.$Message.success("回复成功")
+                        this.$Message.success(this.$t("jyzx.common.success1"))
                         this.discuss[this.activeIn].replyCount += 1
                         this.activeIn = -1
                         this.openReply(res.reply.pid, 1)
@@ -341,19 +341,19 @@ export default {
         },
         ok() {
             if (this.checkReport.length) {
-                this.$Message.success("举报成功")
+                this.$Message.success(this.$t("jyzx.common.success2"))
             }
         },
         // 删除
         delect(topicId, index, replyId) {
             let cont = ""
             if (replyId) {
-                cont = "回复"
+                cont = this.$t("jyzx.common.reply")
             } else {
-                cont = "话题"
+                cont = this.$t("jyzx.common.theme")
             }
             this.$Modal.confirm({
-                title: "删除",
+                title: this.$t("jyzx.common.delete"),
                 content: `您确定要删除该${cont}吗?`,
                 onOk: () => {
                     // 回复的
@@ -368,11 +368,11 @@ export default {
                         }
                         this.$api.jyzx.replyTopic(req).then((res) => {
                             if (res.status == 0) {
-                                this.$Message.success("删除成功")
+                                this.$Message.success(this.$t("jyzx.common.success3"))
                                 this.getReplyArr(topicId)
                                 this.discuss[index].replyCount --
                             } else {
-                                this.$Message.warning("删除失败")
+                                this.$Message.warning(this.$t("jyzx.common.error"))
                             }
                         })
                     }
@@ -385,10 +385,10 @@ export default {
                         // 调另一个api
                         this.$api.jyzx.delReply(req).then((res) => {
                             if (res.status == 200) {
-                                this.$Message.success("删除成功")
+                                this.$Message.success(this.$t("jyzx.common.success3"))
                                 this.totaltopic()
                             } else {
-                                this.$Message.warning("删除失败")
+                                this.$Message.warning(this.$t("jyzx.common.error"))
                             }
                         })
                     }

+ 68 - 70
TEAMModelOS/ClientApp/src/view/jyzx/index.vue

@@ -4,9 +4,9 @@
         <div class="online-content">
             <div class="online-left">
                 <div class="online-content-header">
-                    <span>已选能力点</span>
+                    <span>{{ $t('jyzx.online.checkedPoint') }}</span>
                     <span class="online-content-header-tools">
-                        <Icon type="md-add" title="增加能力点" @click="addPoint" />
+                        <Icon type="md-add" :title="$t('jyzx.online.addPoint')" @click="addPoint" />
                     </span>
                 </div>
                 <vuescroll>
@@ -16,18 +16,18 @@
                             <p class="volume-item-name">
                                 <span class="status-idDel">{{ item.no }}</span>
                                 {{ item.name }}
-                                <span class="abli-type" v-if="item.compulsory">必修</span>
-                                <span class="status-time">学时:<span>{{ item.hour }}</span></span>
+                                <span class="abli-type" v-if="item.compulsory">{{ $t('jyzx.online.compulsory') }}</span>
+                                <span class="status-time">{{ $t('jyzx.online.studyTime') }}:<span>{{ item.hour }}</span></span>
                             </p>
                             <p style="text-align: right; margin-right: 20px" v-show="item.done">
-                                <span style="background-color: #16c18e;color: #fff; padding: 2px 5px;border-radius: 5px;">已完成</span>
+                                <span style="background-color: #16c18e;color: #fff; padding: 2px 5px;border-radius: 5px;">{{ $t('jyzx.common.complete') }}</span>
                             </p>
                         </div>
                     </div>
                 </vuescroll>
             </div>
             <div class="online-mid">
-                <div class="online-content-header">章节</div>
+                <div class="online-content-header">{{ $t('jyzx.online.chapter') }}</div>
                 <div class="online-tree-box">
                     <vuescroll>
                         <EmptyData :top="-240" v-if="!treeData.length"></EmptyData>
@@ -38,63 +38,61 @@
             <div class="online-right">
                 <!--<div class="online-content-header">关联资源</div>-->
                 <Tabs v-model="topsselect">
-                        <TabPane label="关联资源" name="name1" icon="md-analytics">
-                            <div class="online-tree-box">
-                                <!-- <vuescroll> -->
-                                <EmptyData v-if="!resourceInfo.length"></EmptyData>
-                                <Scroll :distance-to-edge="12" :on-reach-bottom="handleReachBottom" v-else :height="865">
-                                    <div class="node-resource-box" ref="scroll">
-                                        <div>
-                                            <div class="node-resource-item" v-for="(item, index) in resourceInfo" :key="index" @click="viewdetails(item.type,item.link,item.cntr,item.title,index,docstatus)">
-                                                <div class="node-title">
-                                                    <div class="qieicon">
-                                                        {{ index + 1 }}
-                                                    </div>
-                                                    <img src="../../assets/source/image.png" v-if="item.type === 'image'" />
-                                                    <img src="../../assets/source/word.png" v-else-if="item.type === 'doc' &&docType.includes(getSuffix(item.title))" />
-                                                    <img src="../../assets/source/excel.png" v-else-if="item.type === 'doc' &&excelType.includes(getSuffix(item.title))" />
-                                                    <img src="../../assets/source/ppt.png" v-else-if="item.type === 'doc' &&pptType.includes(getSuffix(item.title))" />
-                                                    <img src="../../assets/source/pdf.png" v-else-if="item.type === 'doc' && getSuffix(item.title) === 'pdf'" />
-                                                    <img src="../../assets/source/video.png" v-else-if="item.type === 'video'" />
-                                                    <img src="../../assets/source/audio.png" v-else-if="item.type === 'audio'" />
-                                                    <img src="../../assets/source/item.png" v-else-if="item.type === 'item'" />
-                                                    <img src="../../assets/source/folder.png" v-else-if="item.type === 'paper'" />
-                                                    <img src="../../assets/source/link.png" v-else-if="item.type === 'link'" />
-                                                    <img src="../../assets/source/zip.png" v-else-if="item.type === 'res'" />
-                                                    <img src="../../assets/source/image.png" v-else-if="item.type === 'thum'" />
-                                                    <img src="../../assets/source/unknow.png" v-else-if="item.type === 'other'" />
-                                                    <p class="resourcetitle">
-                                                        {{ item.title }}
-                                                        <Icon v-show="item.type === 'doc' || item.type === 'docx'" type="ios-link" />
-                                                    </p>
-                                                </div>
-                                                <div>
-                                                    <video v-if="item.type === 'video'" :src="item.formalUrl" controls="controls" style="border-radius: 5px;max-height: 700px;max-width: 100%;" />
-                                                    <img v-if="item.type === 'image'" :src="item.formalUrl" style="border-radius: 5px;max-height: 700px !important;max-width: 100% !important;" />
-                                                    <audio v-if="item.type === 'audio'" controls>
-                                                        <source :src="item.formalUrl" />
-                                                    </audio>
-                                                    <iframe v-if="item.type == 'doc' &&getSuffix(item.title) !== 'pdf' &&getSuffix(item.title) !== 'PDF'" :src="item.formalUrl" width="100%" height="700px" frameborder="1"></iframe>
+                    <TabPane :label="$t('jyzx.online.relResources')" name="name1" icon="md-analytics">
+                        <div class="online-tree-box">
+                            <!-- <vuescroll> -->
+                            <EmptyData v-if="!resourceInfo.length"></EmptyData>
+                            <Scroll :distance-to-edge="12" :on-reach-bottom="handleReachBottom" v-else :height="865">
+                                <div class="node-resource-box" ref="scroll">
+                                    <div>
+                                        <div class="node-resource-item" v-for="(item, index) in resourceInfo" :key="index" @click="viewdetails(item.type,item.link,item.cntr,item.title,index,docstatus)">
+                                            <div class="node-title">
+                                                <div class="qieicon">
+                                                    {{ index + 1 }}
                                                 </div>
+                                                <img src="../../assets/source/image.png" v-if="item.type === 'image'" />
+                                                <img src="../../assets/source/word.png" v-else-if="item.type === 'doc' &&docType.includes(getSuffix(item.title))" />
+                                                <img src="../../assets/source/excel.png" v-else-if="item.type === 'doc' &&excelType.includes(getSuffix(item.title))" />
+                                                <img src="../../assets/source/ppt.png" v-else-if="item.type === 'doc' &&pptType.includes(getSuffix(item.title))" />
+                                                <img src="../../assets/source/pdf.png" v-else-if="item.type === 'doc' && getSuffix(item.title) === 'pdf'" />
+                                                <img src="../../assets/source/video.png" v-else-if="item.type === 'video'" />
+                                                <img src="../../assets/source/audio.png" v-else-if="item.type === 'audio'" />
+                                                <img src="../../assets/source/item.png" v-else-if="item.type === 'item'" />
+                                                <img src="../../assets/source/folder.png" v-else-if="item.type === 'paper'" />
+                                                <img src="../../assets/source/link.png" v-else-if="item.type === 'link'" />
+                                                <img src="../../assets/source/zip.png" v-else-if="item.type === 'res'" />
+                                                <img src="../../assets/source/image.png" v-else-if="item.type === 'thum'" />
+                                                <img src="../../assets/source/unknow.png" v-else-if="item.type === 'other'" />
+                                                <p class="resourcetitle">
+                                                    {{ item.title }}
+                                                    <Icon v-show="item.type === 'doc' || item.type === 'docx'" type="ios-link" />
+                                                </p>
+                                            </div>
+                                            <div>
+                                                <video v-if="item.type === 'video'" :src="item.formalUrl" controls="controls" style="border-radius: 5px;max-height: 700px;max-width: 100%;" />
+                                                <img v-if="item.type === 'image'" :src="item.formalUrl" style="border-radius: 5px;max-height: 700px !important;max-width: 100% !important;" />
+                                                <audio v-if="item.type === 'audio'" controls>
+                                                    <source :src="item.formalUrl" />
+                                                </audio>
+                                                <iframe v-if="item.type == 'doc' &&getSuffix(item.title) !== 'pdf' &&getSuffix(item.title) !== 'PDF'" :src="item.formalUrl" width="100%" height="700px" frameborder="1"></iframe>
                                             </div>
                                         </div>
                                     </div>
-                                </Scroll>
-                                <!-- </vuescroll> -->
-                            </div>
-                        </TabPane>
-                        <TabPane label="关联话题" name="name2" icon="ios-chatboxes">
-                            <div v-if="pointList.length">
-                                <RelatedTopic :pointInfo="pointList[activePointIndex]" />
-                            </div>
-                        </TabPane>
+                                </div>
+                            </Scroll>
+                            <!-- </vuescroll> -->
+                        </div>
+                    </TabPane>
+                    <TabPane :label="$t('jyzx.online.relTopic')" name="name2" icon="ios-chatboxes">
+                        <div v-if="pointList.length">
+                            <RelatedTopic :pointInfo="pointList[activePointIndex]" />
+                        </div>
+                    </TabPane>
                 </Tabs>
-                    
-
             </div>
         </div>
         <!--文件预览-->
-        <Modal v-model="previewStatus" title="关联资源" width="80%">
+        <Modal v-model="previewStatus" :title="$t('jyzx.online.relResources')" width="80%">
             <div v-if="previewStatus" class="image-viewer">
                 <div style="width: fit-content; position: relative; margin: auto">
                     <!--<video
@@ -121,10 +119,10 @@
             </div>
         </Modal>
 
-        <Modal v-model="isAddPoint" title="能力点" width="80%" @on-ok="setCheckPoint">
+        <Modal v-model="isAddPoint" :title="$t('jyzx.common.point')" width="80%" @on-ok="setCheckPoint">
             <div style="margin-bottom: 10px">
                 <p class="studyTime">
-                    您已学习: <span>{{ studyTim }}</span>/20学时
+                    {{ $t('jyzx.online.study') }}<span>{{ studyTim }}</span>{{ $t('jyzx.online.time') }}
                 </p>
                 <Select v-model="selDimen" style="width: 200px; margin-right: 10px" label-in-value @on-change="selAllPoint">
                     <Option v-for="(item, index) in dimension" :value="item.code" :key="index">{{ item.val }}</Option>
@@ -140,13 +138,13 @@
                     @on-selection-change="(selections) => {selected = selections;}"
             >
                 <template slot-scope="{ row }" slot="compulsory">
-                    <p v-if="row.compulsory">必修</p>
-                    <p v-else>选修</p>
+                    <p v-if="row.compulsory">{{ $t('jyzx.online.compulsory') }}</p>
+                    <p v-else>{{ $t('jyzx.online.elective') }}</p>
                 </template>
             </Table>
             <p style="margin-top: 20px">
                 <Icon type="ios-alert" color="#FF9900" />
-                必修能力点已为您默认勾选!点击确定后就可开始学习
+                {{ $t('jyzx.online.tips') }}
             </p>
         </Modal>
     </div>
@@ -187,27 +185,27 @@ export default {
                     align: "center",
                 },
                 {
-                    title: "状态",
+                    title: this.$t('jyzx.online.type'),
                     slot: "compulsory",
                     align: "center",
                 },
                 {
-                    title: "标号",
+                    title: this.$t('jyzx.online.no'),
                     key: "no",
                     align: "center",
                 },
                 {
-                    title: "能力点名称",
+                    title: this.$t('jyzx.common.pointName'),
                     key: "name",
                     align: "center",
                 },
                 {
-                    title: "维度",
+                    title: this.$t('jyzx.common.dimension'),
                     key: "val",
                     align: "center",
                 },
                 {
-                    title: "所属环境",
+                    title: this.$t('jyzx.online.environment'),
                     key: "env",
                     align: "center",
                 },
@@ -389,7 +387,7 @@ export default {
                                                     type: "md-cube",
                                                 },
                                                 domProps: {
-                                                    title: "有关联资源",
+                                                    title: this.$t("jyzx.online.resources"),
                                                 },
                                                 style: {
                                                     marginLeft: "8px",
@@ -495,7 +493,7 @@ export default {
                                         type: "md-cube",
                                     },
                                     domProps: {
-                                        title: "有关联资源",
+                                        title: this.$t("jyzx.online.resources"),
                                     },
                                     style: {
                                         marginLeft: "8px",
@@ -579,7 +577,7 @@ export default {
                 this.$api.jyzx.checkPoint(req).then((res) => {
                     if (res.abilityIds.length) {
                         if (res.abilityIds.length != this.pointList.length) {
-                            this.$Message.success("增加能力点成功");
+                            this.$Message.success(this.$t("jyzx.online.message1"));
                             this.getAbility();
                         }
                     }
@@ -974,7 +972,7 @@ export default {
             };
             this.$api.jyzx.pointAction(req).then((res) => {
                 if (res.status == 1) {
-                    this.$Message.success("已学完本章节");
+                    this.$Message.success(this.$t('jyzx.online.message2'));
                     this.idArr.push(this.chapterId);
                     let pointArr = this.pointList[this.activePointIndex];
                     if (this.chapterTotal <= res.taskRcds.length) {
@@ -998,7 +996,7 @@ export default {
             };
             this.$api.jyzx.pointAction(req).then((res) => {
                 if (res.abilitySub.length) {
-                    this.$Message.success("该能力点已学完");
+                    this.$Message.success(this.$t('jyzx.online.message3'));
                     this.pointList[this.activePointIndex].done = true;
                 }
             });

+ 44 - 44
TEAMModelOS/ClientApp/src/view/jyzx/offline.vue

@@ -3,7 +3,7 @@
         <Loading v-if="isLoading" hideMask></Loading>
         <div class="offline-content">
             <div class="offline-left">
-                <div class="offline-content-header">研修活动</div>
+                <div class="offline-content-header">{{ $t('jyzx.offline.activity') }}</div>
                 <vuescroll>
                     <EmptyData :top="100" v-if="!activity.length"></EmptyData>
                     <div class="volume-list">
@@ -12,8 +12,8 @@
                                 activeIndex === index ? 'volume-active' : '',
                             ]" @click="getActivityInfo(item, index)">
                             <p class="volume-item-name">
-                                <span style="display: inline-block; background: #a2b02e;" v-show="item.owner == 'area'"></span>
-                                <span style="display: inline-block; background: #FF9900;" v-show="item.owner == 'school'"></span>
+                                <span style="display: inline-block; background: #a2b02e;" v-show="item.owner == 'area'">{{ $t('jyzx.common.area') }}</span>
+                                <span style="display: inline-block; background: #FF9900;" v-show="item.owner == 'school'">{{ $t('jyzx.common.school') }}</span>
                                 {{ item.name }}
                             </p>
                             <p class="status-time" style="padding-left:25px">
@@ -24,27 +24,27 @@
                 </vuescroll>
             </div>
             <div class="offline-right">
-                <div class="offline-content-header">详细信息</div>
+                <div class="offline-content-header">{{ $t('jyzx.offline.info') }}</div>
                 <div class="offline-tree-box">
                     <div class="detailbox" v-if="Object.keys(resource).length">
                         <div style="margin-bottom: 40px">
                             <div class="detailheader">
                                 <div class="activitytitle">
                                     <p class="detailstitle">
-                                        <span class="school-gade" style="background: #a2b02e" v-show="resource.owner == 'area'">区级</span>
-                                        <span class="school-gade" style="background: #ff9900" v-show="resource.owner == 'school'">校级</span>
+                                        <span class="school-gade" style="background: #a2b02e" v-show="resource.owner == 'area'">{{ $t('jyzx.common.typeArea') }}</span>
+                                        <span class="school-gade" style="background: #ff9900" v-show="resource.owner == 'school'">{{ $t('jyzx.common.typeSch') }}</span>
                                         {{ resource.name }}
                                     </p>
                                     <div class="site">
-                                        <span class="info-label">创建者:</span>
+                                        <span class="info-label">{{ $t('jyzx.offline.creator') }}:</span>
                                         <span v-if="resource.createdName">{{resource.createdName}}</span>
-                                        <span v-else></span>
+                                        <span v-else>{{ $t('jyzx.offline.noPeople') }}</span>
                                     </div>
                                     <div class="site">
-                                        <span class="info-label">参与人数:</span><span>{{ resource.teachers.length}}</span>
+                                        <span class="info-label">{{ $t('jyzx.offline.joinNum') }}:</span><span>{{ resource.teachers.length}}</span>
                                     </div>
                                     <div class="site">
-                                        <span class="info-label">活动时间:</span>
+                                        <span class="info-label">{{ $t('jyzx.offline.actTime') }}:</span>
                                         <span>
                                             {{ resource.detail.startTime }} -
                                             {{ resource.detail.endTime }}
@@ -55,16 +55,16 @@
                                         <span style="margin-right: 15px" v-for="(iteminfo, index) in resource.teachers" :key="index">{{iteminfo.name}}</span>
                                     </div>-->
                                     <div class="site">
-                                        <span class="info-label">学习对象:</span>
+                                        <span class="info-label">{{ $t('jyzx.offline.target') }}:</span>
                                         <span v-for="(item, index) in resource.targets" :key="index" style="margin-right: 10px">{{ item }}</span>
                                     </div>
                                 </div>
                                 <div class="img-box" :style="{backgroundImage: `url(${resource.detail.img || defImg})`}"></div>
                             </div>
                             <div class="basics">
-                                <dt class="headeicon"><span class="headeicontitle">基础信息</span></dt>
+                                <dt class="headeicon"><span class="headeicontitle">{{ $t('jyzx.offline.basicInfo') }}</span></dt>
                                 <div class="target">
-                                    <span class="info-label">研修目标:</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.studyTar') }}:</span>
                                     <span>{{ resource.detail.desc }}</span>
                                 </div>
                                 <!--<div class="object">
@@ -72,31 +72,31 @@
                                     <span v-for="(item, index) in resource.targets" :key="index" style="margin-right: 10px">{{ item }}</span>
                                 </div>-->
                                 <div class="site">
-                                    <span class="info-label">培训地点:</span><span>{{ resource.detail.address }}</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.address') }}:</span><span>{{ resource.detail.address }}</span>
                                 </div>
                                 <div class="keynote">
-                                    <span class="info-label">主讲人:</span><span>{{ resource.detail.presenter }}</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.speaker') }}:</span><span>{{ resource.detail.presenter }}</span>
                                 </div>
                                 <div class="type">
-                                    <span class="info-label">类型:</span><span>{{ resource.typeName }}</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.type') }}:</span><span>{{ resource.typeName }}</span>
                                 </div>
                                 <div class="totalperiod">
-                                    <span class="info-label">学时:</span>
-                                    <span class="hour-tag">{{ resource.hour }}学时</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.studyTime') }}:</span>
+                                    <span class="hour-tag">{{ resource.hour }}{{ $t('jyzx.offline.studyTime') }}</span>
                                 </div>
                                 <div class="content">
-                                    <span class="info-label">内容:</span><span>{{ resource.detail.topic }}</span>
+                                    <span class="info-label">{{ $t('jyzx.common.content') }}:</span><span>{{ resource.detail.topic }}</span>
                                 </div>
                             </div>
                             <!-- <Divider dashed /> -->
                             <!-- 作业 -->
                             <div class="submitarea"  v-if="resource.settings.includes('hw')">
-                                <dt class="headeicon"><span class="headeicontitle">作业</span></dt>
+                                <dt class="headeicon"><span class="headeicontitle">{{ $t('jyzx.offline.homework') }}</span></dt>
                                 <div class="target">
-                                    <span class="info-label">作业名称:</span><span>{{ resource.detail.hwName }}</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.hwName') }}:</span><span>{{ resource.detail.hwName }}</span>
                                 </div>
                                 <div class="target">
-                                    <span class="info-label">作业描述:</span><span>{{ resource.detail.hwDesc }}</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.hwDes') }}:</span><span>{{ resource.detail.hwDesc }}</span>
                                 </div>
                                 <div class="target hw-style">
                                     <Upload
@@ -108,7 +108,7 @@
                                             <Icon type="ios-cloud-upload" size="52" :style="{color: homeWork ? '#b4b4b4' : '#2d8cf0' }"></Icon>
                                             <p>
                                                 <span>
-                                                    {{homeWork ? '重新上传' : '上传作业'}}
+                                                    {{ homeWork ? $t('jyzx.offline.againLoad') : $t('jyzx.offline.hwUpload')}}
                                                 </span>
                                             </p>
                                         </div>
@@ -130,32 +130,32 @@
                             </div>
                             <!-- 问卷 -->
                             <div class="submitarea" v-if="resource.settings.includes('survey') && surveyInfo">
-                                <dt class="headeicon"><span class="headeicontitle">问卷</span></dt>
+                                <dt class="headeicon"><span class="headeicontitle">{{ $t('jyzx.offline.question') }}</span></dt>
                                 <div class="target">
-                                    <span class="info-label">问卷名称:</span><span>{{ surveyInfo.name }}</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.queName') }}:</span><span>{{ surveyInfo.name }}</span>
                                 </div>
                                 <div class="target">
-                                    <span class="info-label">问卷描述:</span><span>{{ surveyInfo.description }}</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.queDes') }}:</span><span>{{ surveyInfo.description }}</span>
                                 </div>
                                 <div class="target hw-style">
                                     <Button type="primary" @click="doSurvey" v-if="!isSurvey">
                                         <Icon type="ios-create" />
-                                        作答问卷
+                                        {{ $t('jyzx.offline.queAnswer') }}
                                     </Button>
                                     <Button type="success" @click="doSurvey" v-else>
                                         <Icon type="md-checkmark-circle-outline" />
-                                        已作答
+                                        {{ $t('jyzx.offline.answered') }}
                                     </Button>
                                 </div>
                             </div>
                             <!-- 评测 -->
                             <div class="submitarea" v-if="resource.settings.includes('exam') && examInfo">
-                                <dt class="headeicon"><span class="headeicontitle">评测</span></dt>
+                                <dt class="headeicon"><span class="headeicontitle">{{ $t('jyzx.offline.exam') }}</span></dt>
                                 <div class="target">
-                                    <span class="info-label">评测名称:</span><span>{{ examInfo.name }}</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.examName') }}:</span><span>{{ examInfo.name }}</span>
                                 </div>
                                 <div class="target">
-                                    <span class="info-label">评测描述:</span><span>{{ examInfo.description }}</span>
+                                    <span class="info-label">{{ $t('jyzx.offline.examDes') }}:</span><span>{{ examInfo.description }}</span>
                                 </div>
                                 <!-- <div v-if="resource.detail.hwTime">
                                     <span class="info-label">结束时间:</span><span>{{ resource.detail.hwTime }}</span>
@@ -163,15 +163,15 @@
                                 <div class="target hw-style">
                                     <Button type="primary" @click="doExam" v-if="!isExam">
                                         <Icon type="ios-create" />
-                                        作答评测
+                                        {{ $t('jyzx.offline.examAnswer') }}
                                     </Button>
                                     <Button type="success" @click="doExam" v-else>
                                         <Icon type="md-checkmark-circle-outline" />
-                                        已作答
+                                        {{ $t('jyzx.offline.answered') }}
                                     </Button>
                                     <span class="ansShow" v-show="isExam">
-                                        答对:{{ rightNum }} 题
-                                        答错:{{ wrongNum }}题
+                                        {{ $t('jyzx.offline.right') }}:{{ rightNum }} {{ $t('jyzx.offline.topic') }}
+                                        {{ $t('jyzx.offline.error') }}:{{ wrongNum }}{{ $t('jyzx.offline.topic') }}
                                     </span>
                                 </div>
                             </div>
@@ -180,10 +180,10 @@
                 </div>
             </div>
         </div>
-        <Modal v-model="surveyStatus" title="问卷反馈" width="800" @on-ok="saveSurvey">
+        <Modal v-model="surveyStatus" :title="$t('jyzx.offline.feedback')" width="800" @on-ok="saveSurvey">
             <DoSurvey v-if="surveyInfo" :survey="surveyInfo" @answer-change="getSurveyData" />
         </Modal>
-        <Modal v-model="examStatus" title="评测作答" width="800" @on-ok="saveExam">
+        <Modal v-model="examStatus" :title="('jyzx.offline.answerExam')" width="800" @on-ok="saveExam">
             <DoExam v-if="examInfo" :exam="examInfo" @answer-change="getExamData" @have-answer="haveAns" />
         </Modal>
     </div>
@@ -257,13 +257,13 @@ export default {
                 this.$api.jyzx.submitquestionnaire(params).then(res => {
                     if(res.code == 200) {
                         this.isSurvey = true
-                        this.$Message.success('保存成功')
+                        this.$Message.success(this.$t("jyzx.offline.success1"))
                     } else {
-                        this.$Message.warning('保存失败')
+                        this.$Message.warning(this.$t("jyzx.offline.error1"))
                     }
                 })
             } else if(this.myAnswer.length) {
-                this.$Message.warning("问卷未填写完,请继续填写")
+                this.$Message.warning(this.$t("jyzx.offline.message1"))
             }
             
         },
@@ -312,13 +312,13 @@ export default {
                 }
                 this.$api.jyzx.submitExam(params).then(res => {
                     if(res.code == 200) {
-                        this.$Message.success('保存成功')
+                        this.$Message.success(this.$t("jyzx.offline.success1"))
                         this.isExam = true
                     }
                 })
             }
             else if(this.myAnswer.length) {
-                this.$Message.warning("评测未作答完,请继续作答")
+                this.$Message.warning(this.$t("jyzx.offline.message2"))
             }
         },
         doSurvey() {
@@ -500,9 +500,9 @@ export default {
                     this.$api.train.uploadHw(req).then((resHW) => {
                         if (resHW.code === 200) {
                             this.homeWork = res.name
-                            this.$Message.success("上传成功")
+                            this.$Message.success(this.$t("jyzx.offline.success2"))
                         } else {
-                            this.$Message.warning("上传失败")
+                            this.$Message.warning(this.$t("jyzx.offline.error1"))
                         }
                     })
                 },

+ 25 - 25
TEAMModelOS/ClientApp/src/view/jyzx/relatedTopic.vue

@@ -2,13 +2,13 @@
     <div style="height: 100%" class="discuss1">
         <div style="width: 90%; margin: 0% 5%; height: 100%">
             <div>
-                <Input v-model="topicname" placeholder="发起新的话题" style="width:100%;padding:1% 0%" @on-focus="topstatus = true" />
+                <Input v-model="topicname" :placeholder="$t('jyzx.online.placeholder1')" style="width:100%;padding:1% 0%" @on-focus="topstatus = true" />
             </div>
             <div class="topicboxinfo" v-show="topstatus">
                 <div id="divtop"></div>
                 <div class="btnicon">
-                    <div class="submit" @click="submitTopic"><Button type="primary">发布</Button></div>
-                    <div class="canle" @click="topstatus = false"><Button>取消</Button></div>
+                    <div class="submit" @click="submitTopic"><Button type="primary">{{ $t('jyzx.online.release') }}</Button></div>
+                    <div class="canle" @click="topstatus = false"><Button>{{ $t('jyzx.common.cancel') }}</Button></div>
                 </div>
             </div>
             <div style="height: 75vh">
@@ -36,12 +36,12 @@
                                 </div>
                                 <p>
                                     <span style="color: #2d8cf0"
-                                        >话题:</span
+                                        >{{ $t('jyzx.common.theme') }}:</span
                                     >{{ item.title }}
                                 </p>
                                 <div>
                                     <span style="color: #2d8cf0"
-                                        >内容:</span
+                                        >{{ $t('jyzx.common.content') }}:</span
                                     >
                                     <p v-html="item.comment"></p>
                                 </div>
@@ -54,7 +54,7 @@
                                             "
                                             @click="openReply(item.id, 0)"
                                             v-show="item.replyCount != 0"
-                                            >评论回复({{
+                                            >{{ $t('jyzx.common.comment') }}({{
                                                 item.replyCount
                                             }})</span
                                         >
@@ -64,7 +64,7 @@
                                                 color: #2d8cf0;
                                             "
                                             @click="replyOther(item, index)"
-                                            >回复</span
+                                            >{{ $t('jyzx.common.reply') }}</span
                                         ><span
                                             @click="delect(item.id, index)"
                                             v-if="
@@ -73,10 +73,10 @@
                                                     .TEAMModelId
                                             "
                                             style="margin-right: 20px"
-                                            >删除</span
+                                            >{{ $t('jyzx.common.delete') }}</span
                                         >
                                         <span @click="report(item.tmdname)"
-                                            >举报</span
+                                            >{{ $t('jyzx.common.report') }}</span
                                         >
                                     </div>
                                     <p>{{ item.time | formatDate }}</p>
@@ -100,13 +100,13 @@
                                                 item.tmdid
                                             )
                                         "
-                                        >确定</Button
+                                        >{{ $t('jyzx.common.sure') }}</Button
                                     >
                                     <Button
                                         style="margin-left: 8px"
                                         @click="cancelReply"
                                         size="small"
-                                        >取消</Button
+                                        >{{ $t('jyzx.common.cancel') }}</Button
                                     >
                                 </div>
                             </div>
@@ -156,13 +156,13 @@
                                                             .TEAMModelId
                                                 "
                                                 style="margin-right: 20px"
-                                                >删除</span
+                                                >{{ $t('jyzx.common.delete') }}</span
                                             >
                                             <span
                                                 @click="
                                                     report(child.tmdname)
                                                 "
-                                                >举报</span
+                                                >{{ $t('jyzx.common.report') }}</span
                                             >
                                         </div>
                                         <p>{{ child.time | formatDate }}</p>
@@ -174,8 +174,8 @@
                 </vuescroll>
             </div>
         </div>
-        <Modal v-model="isReport" title="举报" @on-ok="ok">
-            <p>请选择举报类型:</p>
+        <Modal v-model="isReport" :title="$t('jyzx.common.report')" @on-ok="ok">
+            <p>{{ $t('jyzx.common.message') }}</p>
             <CheckboxGroup v-model="checkReport">
                 <Checkbox
                     :label="index"
@@ -315,7 +315,7 @@ export default {
                 .then(
                     (res) => {
                         console.log(res)
-                        this.$Message.success("回复成功")
+                        this.$Message.success(this.$t('jyzx.common.success1'))
                         this.discuss[this.activeIn].replyCount += 1
                         this.activeIn = -1
                         this.openReply(res.reply.pid, 1)
@@ -362,19 +362,19 @@ export default {
         },
         ok() {
             if (this.checkReport.length) {
-                this.$Message.success("举报成功")
+                this.$Message.success(this.$t('jyzx.common.success2'))
             }
         },
         // 删除
         delect(topicId, index, replyId) {
             let cont = ""
             if (replyId) {
-                cont = "回复"
+                cont = this.$t('jyzx.common.reply')
             } else {
-                cont = "话题"
+                cont = this.$t('jyzx.common.theme')
             }
             this.$Modal.confirm({
-                title: "删除",
+                title: this.$t('jyzx.common.delete'),
                 content: `您确定要删除该${cont}吗?`,
                 onOk: () => {
                     // 回复的
@@ -390,11 +390,11 @@ export default {
                         this.$api.jyzx.replyTopic(req).then((res) => {
                             if (res.status == 0) {
                                 console.log(topicId,'删除的')
-                                this.$Message.success("删除成功")
+                                this.$Message.success(this.$t('jyzx.common.success3'))
                                 this.getReplyArr(topicId)
                                 this.discuss[index].replyCount --
                             } else {
-                                this.$Message.warning("删除失败")
+                                this.$Message.warning(this.$t('jyzx.common.error'))
                             }
                         })
                     }
@@ -407,10 +407,10 @@ export default {
                         // 调另一个api
                         this.$api.jyzx.delReply(req).then((res) => {
                             if (res.status == 200) {
-                                this.$Message.success("删除成功")
+                                this.$Message.success(this.$t('jyzx.common.success3'))
                                 this.nowtopic(this.nowtopicData.comid)
                             } else {
-                                this.$Message.warning("删除失败")
+                                this.$Message.warning(this.$t('jyzx.common.error'))
                             }
                         })
                     }
@@ -467,7 +467,7 @@ export default {
                 res => {
                     console.log(res, '发布成功的返回')
                     this.nowtopic(res.debate.comid)
-                    this.$Message.success('话题发布成功')
+                    this.$Message.success(this.$t('jyzx.online.relSucess'))
                     this.topstatus = false
                     this.topicname = ''
                     this.stemContent = ''

+ 19 - 19
TEAMModelOS/ClientApp/src/view/jyzx/topicPublish.vue

@@ -3,13 +3,13 @@
         <div class="topicheader">
             <div class="headerleft">
                 <div class="totalbox">
-                    <Button type="primary" @click="topicShow = !topicShow">新增话题</Button>
+                    <Button type="primary" @click="topicShow = !topicShow">{{ $t("jyzx.discuss.addTopic") }}</Button>
                 </div>
                 <div class="taginfo">
-                    <span style="margin-left: 20px">话题类型:</span>
+                    <span style="margin-left: 20px">{{ $t("jyzx.discuss.topicType") }}:</span>
                     <CheckboxGroup v-model="toType" @on-change="topicType">
-                        <Checkbox label="1" border>普通话题</Checkbox>
-                        <Checkbox label="2" border>能力点话题</Checkbox>
+                        <Checkbox label="1" border>{{ $t("jyzx.discuss.normal") }}</Checkbox>
+                        <Checkbox label="2" border>{{ $t("jyzx.discuss.point") }}</Checkbox>
                     </CheckboxGroup>
                     <!-- <Tag checkable color="geekblue" size ="large" @on-change="topicType(1)">普通话题</Tag>
                     <Tag checkable color="volcano" size ="large" @on-change="topicType(2)">能力点话题</Tag> -->
@@ -20,7 +20,7 @@
                     <Input
                         search
                         enter-button
-                        placeholder="请输入关键字"
+                        :placeholder="$t('jyzx.discuss.placeholder1')"
                         v-model="keyword"
                         @on-search="searchKeyword"
                     />
@@ -32,9 +32,9 @@
                             <Icon type="ios-arrow-down"></Icon>
                         </a>
                         <DropdownMenu slot="list">
-                            <DropdownItem name="allTopic">所有话题</DropdownItem>
-                            <DropdownItem name="metopic">我的话题</DropdownItem>
-                            <DropdownItem name="mereply">回复我的</DropdownItem>
+                            <DropdownItem name="allTopic">{{ $t("jyzx.discuss.allTopic") }}</DropdownItem>
+                            <DropdownItem name="metopic">{{ $t("jyzx.discuss.myTopic") }}</DropdownItem>
+                            <DropdownItem name="mereply">{{ $t("jyzx.discuss.replyMe") }}</DropdownItem>
                         </DropdownMenu>
                     </Dropdown>
                 </div>
@@ -53,7 +53,7 @@
             <Form :model="formItem">
                 <FormItem>
                     <Input v-model="formItem.input"
-                           placeholder="新的话题"></Input>
+                           :placeholder="$t('jyzx.discuss.placeholder2')"></Input>
                 </FormItem>
                 <Select v-model="topicnameId" style="width:100%;margin-bottom:1%;" @on-change="comidTopic">
                     <Option v-for="item in topicData" :value="item.comid" :key="item.comid">{{item.no}}{{ item.name }}</Option>
@@ -72,7 +72,7 @@
     </FormItem>-->
                 <!--<textarea id="text1" style="width:100%; height:200px;"></textarea>-->
                 <FormItem>
-                    <Button type="primary" @click="discussSubmit">确定</Button>
+                    <Button type="primary" @click="discussSubmit">{{ $t("jyzx.common.sure") }}</Button>
                     <Button style="margin-left: 8px"
                             @click="
                             ()=>
@@ -80,7 +80,7 @@
                         topicShow = false
                         }
                         "
-                        >取消
+                        >{{ $t("jyzx.common.cancel") }}
                     </Button>
                 </FormItem>
             </Form>
@@ -99,7 +99,7 @@ export default {
             topicShow: false,
             stemContent: "",
             keyword: "",
-            showType: "所有话题",
+            showType: this.$t("jyzx.discuss.allTopic"),
             topicnameId: '',
             topicData:[]
         }
@@ -144,13 +144,13 @@ export default {
                 })
                 .then(
                     (res) => {
-                        this.$Message.success("发表成功")
+                        this.$Message.success(this.$t("jyzx.discuss.success1"))
                         console.log(res, "成功")
                         this.topicShow = false
                         this.$parent.$parent.totaltopic()
                     },
                     (error) => {
-                        this.$Message.error("发表失败")
+                        this.$Message.error(this.$t("jyzx.discuss.error1"))
                         console.log(error, "失败")
                     }
                 )
@@ -195,7 +195,7 @@ export default {
             }
             // 我的话题
             if (name === "metopic") {
-                this.showType = "我的话题"
+                this.showType = this.$t("jyzx.discuss.myTopic")
                 for (var x = 0; x < allTopic.length; x++) {
                     if (allTopic[x].tmdid === user.TEAMModelId) {
                         metopicinfo.push(allTopic[x])
@@ -203,12 +203,12 @@ export default {
                 }
                 metopicinfo.sort(sortNumber)
                 this.$parent.$parent.discuss = metopicinfo
-                this.$Message.success("切换至我的话题")
+                this.$Message.success(this.$t("jyzx.discuss.message1"))
                 console.log(metopicinfo)
             }
             // 回复我的
             else if (name === "mereply") {
-                this.showType = "回复我的"
+                this.showType = this.$t("jyzx.discuss.replyMe")
                 for (var y = 0; y < allTopic.length; y++) {
                     if (
                         allTopic[y].tmdid === user.TEAMModelId &&
@@ -219,11 +219,11 @@ export default {
                 }
                 mereplyinfo.reverse()
                 this.$parent.$parent.discuss = mereplyinfo
-                this.$Message.success("切换至回复我的")
+                this.$Message.success(this.$t("jyzx.discuss.message2"))
             }
             // 所有话题
             else if (name === "allTopic") {
-                this.showType = "所有话题"
+                this.showType = this.$t("jyzx.discuss.allTopic")
                 this.$parent.$parent.discuss = allTopic
             }
         },

+ 25 - 12
TEAMModelOS/ClientApp/src/view/knowledge-point/index/Index.less

@@ -1,7 +1,7 @@
 @main-bgColor:rgb(43,43,46); //主背景颜色
-@borderColor: #444444;
-@primary-textColor:#e0e0e0; //文本主颜色
-@second-textColor:#a5a5a5; //文本副级颜色
+@borderColor: var(--border-color);
+@primary-textColor:var(--primary-text-color); //文本主颜色
+@second-textColor:var(--second-text-color); //文本副级颜色
 @primary-fontSize:14px;
 @second-fontSize:12px;
 @title-fontSize:16px;
@@ -67,7 +67,7 @@
         .gl-new-area {
             text-align: center;
             color: @primary-textColor;
-            background: #3e3e3e;
+            // background: #3e3e3e;
             padding: 35px 0 !important;
         }
 
@@ -85,7 +85,7 @@
                 font-size: @primary-fontSize;
                 font-weight: bold;
                 color: @primary-textColor;
-                border-bottom: 1px solid #353535;
+                border-bottom: 1px solid @borderColor;
 
                 &-content {
                     height: 50px;
@@ -131,7 +131,7 @@
                             width: 3px;
                             height: 10px;
                             margin-right: 5px;
-                            background: @second-textColor;
+                            background: var(--normal-icon-color);
                         }
                     }
                 }
@@ -226,9 +226,9 @@
                     margin: 10px;
                     padding: 5px 30px;
                     border-radius: 50px;
-                    background: #545454;
-					color: #dfdfdf;
-                    box-shadow: 1px 4px 0px 0px #000000;
+                    // background: #545454;
+                    box-shadow: 1px 4px 0px 0px #dddddd;
+                    border: 1px solid @borderColor;
                     cursor: pointer;
 
                     &-tools {
@@ -241,6 +241,8 @@
                 }
 
                 .point-item-active {
+                    color: #FFF;
+                    border-color: #0f9272;
                     background: #0f9272 !important;
                 }
                 // .block-point-item:before{
@@ -257,12 +259,22 @@
                 // 	z-index:2;
                 // }
                 .block-point-item {
-                    background-color: #006988;
+                    border-color: #0098c7;
+                    color: #FFF;
+                    background-color: #0098c7;
                 }
 
                 .point-item:hover {
                     .point-item-tools {
                         display: unset;
+
+                        
+                    }
+                }
+                .btn-edit:hover,
+                .btn-delete:hover{
+                    .ivu-icon{
+                        color: #40A8F0 !important;
                     }
                 }
             }
@@ -282,10 +294,11 @@
 }
 
 .item-active {
-    background-image: -webkit-linear-gradient(90deg, rgba(30,30,30,0) 0%, rgba(110,110,110,.2) 50%, rgba(110,110,110,.4) 100%);
+    /* background-image: -webkit-linear-gradient(90deg, rgba(30,30,30,0) 0%, rgba(110,110,110,.2) 50%, rgba(110,110,110,.4) 100%);
     background-image: -o-linear-gradient(90deg, rgba(30,30,30,0) 0%, rgba(110,110,110,.2) 50%, rgba(110,110,110,.4) 100%);
     background-image: -moz-linear-gradient(90deg, rgba(30,30,30,0) 0%, rgba(110,110,110,.2) 50%, rgba(110,110,110,.4) 100%);
-    background-image: linear-gradient(90deg, rgba(30,30,30,0) 0%, rgba(110,110,110,.2) 50%, rgba(110,110,110,.4) 100%);
+    background-image: linear-gradient(90deg, rgba(30,30,30,0) 0%, rgba(110,110,110,.2) 50%, rgba(110,110,110,.4) 100%); */
+    background: var(--active-item-start);
 }
 
 

+ 28 - 33
TEAMModelOS/ClientApp/src/view/knowledge-point/index/Index.vue

@@ -27,11 +27,10 @@
 					<!-- 切换头部以及搜索框 -->
 					<div class="ns-header-content" v-if="!isSearchSubject">
 						<span>
-							<Icon type="md-bookmark" color="#fff" size="16" />
+							<Icon type="md-bookmark" color="#40A8F0" size="16" />
 							<span style="margin-left:5px">{{$t("knowledge.subject")}}</span>
 						</span>
-						<Icon type="ios-search" color="#fff" size="14" v-show="subjectList.length"
-							style="cursor:pointer" @click="isSearchSubject = true" />
+						<Icon type="ios-search" color="#40A8F0" size="14" v-show="subjectList.length" style="cursor:pointer" @click="isSearchSubject = true" />
 					</div>
 					<div class="ns-header-search" style="padding: 10px 0;" v-else>
 						<Input icon="ios-close" v-model="searchSubject" :placeholder="$t('knowledge.searchSubject')"
@@ -64,23 +63,20 @@
 					<!-- 切换头部以及搜索框 -->
 					<div class="ns-header-content" v-if="!isSearchPoint">
 						<span>
-							<Icon type="md-cube" color="#fff" size="16" />
-							<span style="margin-left:5px">{{$t("knowledge.point")}} ( {{ originPointList.length }}
-								)</span>
-							<Input icon="ios-close" v-model="searchPoint" v-show="originPointList.length"
-								:placeholder="$t('knowledge.searchPoint')" autofocus
-								style="width: 300px;margin-left: 20px;" @on-click="onSearchClear"
-								@on-blur="isSearchPoint = false" @on-change="onSearchPointChange"
-								@on-enter="onSearchPointChange" @on-clear="onSearchClear" />
+							<Icon type="md-cube" color="#40A8F0" size="16" />
+							<span style="margin-left:5px">{{$t("knowledge.point")}} ( {{ originPointList.length }} )</span>
+							<Input icon="ios-close" v-model="searchPoint" v-show="originPointList.length" :placeholder="$t('knowledge.searchPoint')" autofocus style="width: 300px;margin-left: 20px;"
+							 @on-click="onSearchClear" @on-blur="isSearchPoint = false" @on-change="onSearchPointChange" @on-enter="onSearchPointChange"
+							 @on-clear="onSearchClear" />
 						</span>
 						<div>
 							<Icon type="md-add" v-if="($access.can('admin.*|knowledge-upd')) && subjectList.length"
-								color="#fff" size="14" style="cursor:pointer;margin-right:10px" @click="onAddPoint" />
+								color="#40A8F0" size="14" style="cursor:pointer;margin-right:10px" @click="onAddPoint" />
 							<Icon type="ios-create" v-if="($access.can('admin.*|knowledge-upd')) && subjectList.length"
-								color="#fff" size="14" style="cursor:pointer;margin-right:10px"
+								color="#40A8F0" size="14" style="cursor:pointer;margin-right:10px"
 								@click="batchUploadModal = true" />
 							<Icon type="md-trash" v-if="($access.can('admin.*|knowledge-upd')) && checkedPointList.length"
-								color="#fff" size="14" style="cursor:pointer;margin-right:10px" @click="doBatchDelete" />	
+								color="#40A8F0" size="14" style="cursor:pointer;margin-right:10px" @click="doBatchDelete" />	
 							<Button class="btn-compose-block"
 								v-if="($access.can('admin.*|knowledge-upd')) && checkedPointList.length"
 								@click="onComposeBlock">{{$t("knowledge.makeBlock")}}</Button>
@@ -137,7 +133,7 @@
 					<!-- 切换头部以及 搜索框 -->
 					<div class="ns-header-content" v-if="!isSearchBlock">
 						<span>
-							<Icon type="ios-photos" color="#fff" size="16" />
+							<Icon type="ios-photos" color="#40A8F0" size="16" />
 							<span style="margin-left:5px">{{$t("knowledge.block")}}</span>
 							<Tooltip :content="$t('tip.knowledgeBlock')" class="common-toolTip" placement="bottom-start"
 								theme="light" max-width="200">
@@ -145,11 +141,9 @@
 							</Tooltip>
 						</span>
 						<div>
-							<Icon type="md-add"
-								v-if="($access.can('admin.*|knowledge-upd') || tabIndex === 1)  && subjectList.length"
-								color="#fff" size="14" style="cursor:pointer;margin-right:10px" @click="onAddBlock" />
-							<Icon type="ios-search" color="#fff" size="14" style="cursor:pointer"
-								v-show="subjectList.length && blockList.length" @click="isSearchBlock = true" />
+							<Icon type="md-add" v-if="($access.can('admin.*|knowledge-upd') || tabIndex === 1)  && subjectList.length" color="#40A8F0" size="14" style="cursor:pointer;margin-right:10px"
+							 @click="onAddBlock" />
+							<Icon type="ios-search" color="#40A8F0" size="14" style="cursor:pointer" v-show="subjectList.length && blockList.length" @click="isSearchBlock = true" />
 						</div>
 					</div>
 					<div class="ns-header-search" v-else>
@@ -184,11 +178,11 @@
 								</p>
 								<span class="btn-edit" v-if="$access.can('admin.*|knowledge-upd') || tabIndex === 1"
 									:title="$t('knowledge.edit')" @click.stop="onEditBlock(index)">
-									<Icon type="md-create" size="20" color="#d2d2d2" />
+									<Icon type="md-create" size="20" color="#40A8F0" />
 								</span>
 								<span class="btn-delete" v-if="$access.can('admin.*|knowledge-upd') || tabIndex === 1"
 									:title="$t('knowledge.delete')" @click.stop="onDeleteBlock(item)">
-									<Icon type="md-trash" size="22" color="#d2d2d2" />
+									<Icon type="md-trash" size="22" color="#40A8F0" />
 								</span>
 							</div>
 						</div>
@@ -1157,30 +1151,31 @@
 	.new-syllabus-header .ivu-select-single .ivu-select-selection,
 	.funnel-box .ivu-select-single .ivu-select-selection {
 		width: 140px;
-		background-color: #252525e3 !important;
+		/* background-color: #252525e3 !important; */
 		border-radius: 0;
-		border-color: #96969640 !important;
-		color: #D0D0D0;
+		/* border-color: #96969640 !important; */
+		/* color: #D0D0D0; */
 	}
 
 	.new-syllabus-header .ivu-select-single .ivu-select-arrow,
 	.funnel-box .ivu-select-single .ivu-select-arrow {
-		color: #fbfbfb;
+		/* color: #fbfbfb; */
 	}
 
 	.ns-header .ivu-input {
-		background: #3c3c3c;
 		border-radius: 50px;
-		color: #fff;
-		border: none;
 		padding: 4px 15px;
 		height: 30px;
 		font-size: 12px;
+		/* background: #3c3c3c; */
+		/* color: #fff; */
+		/* border: none; */
+		height: 35px;
 	}
 
 	.ns-header .ivu-input-icon {
 		font-size: 20px;
-		color: #cfc7c7;
+		/* color: #cfc7c7; */
 		line-height: 30px;
 		cursor: pointer;
 	}
@@ -1191,8 +1186,8 @@
 	}
 
 	.point-modal .ivu-modal-content {
-		background: #3c3c3c;
-		color: #fff;
+		/* background: #3c3c3c; */
+		/* color: #fff; */
 	}
 
 	.point-modal .ivu-modal-header {
@@ -1209,7 +1204,7 @@
 	/* 修改iview popper样式 */
 
 	.ns-col .ivu-poptip-inner {
-		background: #3c3c3c;
+		/* background: #3c3c3c; */
 	}
 
 	.ns-col .ivu-poptip-title:after {

+ 4 - 4
TEAMModelOS/ClientApp/src/view/knowledge-point/index/operation/AddBlock.vue

@@ -135,16 +135,16 @@
 
 <style>
     .form-container .ivu-form .ivu-form-item-label {
-        color: #fff;
+        /* color: #fff; */
         margin: 10px 0;
         font-size: 16px;
     }
 
     .form-container .ivu-input {
-        background: #575757;
-        border-color: transparent;
+        /* background: #575757; */
+        /* border-color: transparent; */
         height: 35px;
-        color: #fff;
+        /* color: #fff; */
     }
 
         .form-container .ivu-input::-webkit-input-placeholder {

+ 4 - 4
TEAMModelOS/ClientApp/src/view/knowledge-point/index/operation/AddPoint.vue

@@ -134,16 +134,16 @@
 
 <style>
     .form-container .ivu-form .ivu-form-item-label {
-        color: #fff;
+        /* color: #fff; */
         margin: 10px 0;
         font-size: 16px;
     }
 
     .form-container .ivu-input {
-        background: #575757;
-        border-color: transparent;
+        /* background: #575757; */
+        /* border-color: transparent; */
         height: 35px;
-        color: #fff;
+        /* color: #fff; */
     }
 
         .form-container .ivu-input::-webkit-input-placeholder {

+ 26 - 20
TEAMModelOS/ClientApp/src/view/knowledge-point/index/operation/ComposeBlock.vue

@@ -150,19 +150,24 @@
 		font-family: 'NotoSerif', '微软正黑体', 'Microsoft JhengHei UI', 'Microsoft JhengHei', Sans-serif;
     }
 
-        .compose-container .ivu-tabs-nav .ivu-icon {
-            font-size:20px;
-            margin-right:15px;
-        }
+    .compose-container .ivu-tabs-nav .ivu-icon {
+        font-size:20px;
+        margin-right:15px;
+    }
 
     .compose-container .ivu-tabs-nav .ivu-tabs-tab {
         width:50%;
         text-align:center;
-        color:#fff;
+        /* color:#fff; */
         margin:0;
         padding-bottom:20px;
     }
 
+    .compose-container .ivu-tabs-nav .ivu-tabs-tab-active,
+    .compose-container .ivu-tabs-nav .ivu-tabs-tab:hover {
+        color: #0b9775 !important;
+    }
+
     .compose-container .ivu-tabs-bar {
         border-bottom:none;
     }
@@ -186,7 +191,7 @@
     }
 
     .compose-container .tab-title {
-        color:#fff;
+        /* color:#fff; */
         margin:10px 0 20px 5px;
     }
 
@@ -200,10 +205,10 @@
      }
 
     .compose-container .ivu-input {
-        background: #575757;
-        border-color: transparent;
+        /* background: #575757; */
+        /* border-color: transparent; */
         height: 35px;
-        color: #fff;
+        /* color: #fff; */
     }
 
     .compose-container .ivu-input::-webkit-input-placeholder {
@@ -219,14 +224,15 @@
        flex-wrap:wrap;
     }
 
-        .compose-container .show-list .point-item {
-            margin: 10px;
-            padding: 5px 30px;
-            border-radius: 50px;
-            background: #828282;
-            box-shadow: 1px 4px 0px 0px #313131;
-            cursor: pointer;
-        }
+    .compose-container .show-list .point-item {
+        margin: 10px;
+        padding: 5px 30px;
+        border-radius: 50px;
+        /* background: #828282; */
+        box-shadow: 1px 4px 0px 0px #dddddd;
+        border: 1px solid var(--border-color);
+        cursor: pointer;
+    }
 
     .compose-container .ivu-btn {
         width: 92%;
@@ -239,9 +245,9 @@
     }
 
     .compose-container .ivu-select-single .ivu-select-selection {
-        background: #575757;
-        color: #fbfbfb;
-        border-color: transparent;
+        /* background: #575757; */
+        /* color: #fbfbfb; */
+        /* border-color: transparent; */
         height: 35px;
     }
 

+ 9 - 8
TEAMModelOS/ClientApp/src/view/learnactivity/AutoCreateNew.less

@@ -2,23 +2,24 @@
 	width: 100%;
 	min-height: 75vh;
 	height: 75vh;
-	background-color: #404040;
+	// background-color: #404040;
 	padding: 20px;
 	overflow: auto;
 	
 	.auto-create-title{
 		text-align: center;
-		color: #fff;
+		// color: #fff;
 		font-size: 20px;
 		font-weight: bold;
 		letter-spacing: 1px;
 	}
 	
 	.auto-filter-wrap{
-		color:#fff;
+		// color:#fff;
+		border: 1px solid var(--border-color);
 		font-size:14px;
 		margin: 2% 3%;
-		background-color: #515151;
+		// background-color: #515151;
 		padding: 10px 20px;
 		border-radius: 5px;
 		
@@ -40,13 +41,13 @@
 			
 			.ivu-select-selection{
 				min-width: 100px;
-				color:#fff;
-				border-color: #7d7d7d;
-				background-color: transparent;
+				// color:#fff;
+				// border-color: #7d7d7d;
+				// background-color: transparent;
 			}
 			
 			.ivu-input-number-input{
-				color: #fff;
+				// color: #fff;
 				width: 60px;
 			}
 			

+ 18 - 13
TEAMModelOS/ClientApp/src/view/learnactivity/CreateSchoolEva.less

@@ -1,14 +1,14 @@
 @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;
 @second-fontSize: 16px;
 
 .create-school-container {
     width: 100%;
     height: 100%;
-    background: #242328;
+    // background: #242328;
 
     .create-header {
         width: 100%;
@@ -31,6 +31,10 @@
             cursor: pointer;
             margin-top: 6px;
             margin-right: 10px;
+
+            &:hover{
+                color: #40A8F0;
+            }
         }
     }
 
@@ -50,7 +54,7 @@
         padding-left: 20px;
 
         .wrap-label {
-            color: white;
+            // color: white;
             font-size: @primary-fontSize;
             height: 40px;
             line-height: 40px;
@@ -64,7 +68,7 @@
         padding-left: 20px;
 
         .wrap-label {
-            color: white;
+            // color: white;
             font-size: @primary-fontSize;
             height: 40px;
             line-height: 40px;
@@ -101,7 +105,7 @@
 
             .subject-item-active {
                 color: @primary-textColor;
-                border-bottom: 2px solid white;
+                border-bottom: 2px solid var(--tabs-bottom-color);
                 font-weight: 600;
 
                 /*.delete-subject-btn {
@@ -112,7 +116,7 @@
     }
 }
 .evaluation-question-main /deep/ .ivu-tabs-bar {
-    border-color: #404040;
+    // border-color: #404040;
     margin-bottom: 0px;
     border-bottom: none;
 }
@@ -123,9 +127,9 @@
 .evaluation-question-main /deep/ .ivu-tabs .ivu-tabs-tabpane {
 }
 .evaluation-question-main .ivu-tabs.ivu-tabs-card /deep/ .ivu-tabs-bar .ivu-tabs-tab {
-    border: none;
-    background-color: #303030;
-    color: white;
+    // border: none;
+    // background-color: #303030;
+    // color: white;
     margin-right: 2px;
 }
 .evaluation-attr-form {
@@ -146,7 +150,7 @@
 
 .add-subject-icon {
     margin-left:15px;
-    color:white;
+    color:var(--normal-icon-color);
     font-size:16px;
     margin-top: 8px;
     cursor: pointer;
@@ -195,7 +199,8 @@
 }
 .teacher-preview-container {
     height: 100%;
-    background: #404040;
+    // background: #404040;
+    border: 1px solid @borderColor;
     padding: 10px;
     padding-bottom: 30px;
     position:relative;

+ 11 - 8
TEAMModelOS/ClientApp/src/view/learnactivity/CreateSchoolEva.vue

@@ -12,7 +12,7 @@
         <div class="create-body">
             <div class="evaluation-attr-wrap">
                 <p class="wrap-label">{{$t('learnActivity.createEv.baseInfo')}}</p>
-                <div style="width:100%; height:calc(100% - 45px);padding-top:30px;" class="dark-iview-form ivu-select-nochoose dark-el-cascader">
+                <div style="width:100%; height:calc(100% - 45px);padding-top:30px;" class="ivu-select-nochoose">
                     <vuescroll>
                         <Form ref="evaForm" :model="evaluationInfo" label-position="top" class="evaluation-attr-form " label-colon :rules="ruleValidate">
                             <FormItem :label="$t('learnActivity.createEv.evName')" prop="name">
@@ -51,7 +51,7 @@
                             </FormItem>
                             <FormItem :label="$t('learnActivity.createEv.publishType')" prop="publish">
                                 <Checkbox v-model="evaluationInfo.publish" :true-value="$GLOBAL.PUBLISH_TYPE()[0].value" :false-value="$GLOBAL.PUBLISH_TYPE()[1].value" @on-change="publishChange">
-                                    <span style="color:white;margin-left:5px;user-select: none;">{{$GLOBAL.PUBLISH_TYPE()[0].label}}</span>
+                                    <span style="margin-left:5px;user-select: none;">{{$GLOBAL.PUBLISH_TYPE()[0].label}}</span>
                                 </Checkbox>
                             </FormItem>
                             <FormItem :label="$t('learnActivity.createEv.startTime')" v-if="evaluationInfo.publish == 1" prop="startTime">
@@ -100,14 +100,14 @@
                 </div>
             </div>
         </div>
-        <Modal v-model="addSubjectStatus" :title="$t('learnActivity.createEv.addSubject')" class-name="dark-iview-modal" @on-ok="confirmAddSubject">
+        <Modal v-model="addSubjectStatus" :title="$t('learnActivity.createEv.addSubject')" @on-ok="confirmAddSubject">
             <div style="padding:20px 0px;">
-                <CheckboxGroup v-model="evaluationInfo.subjectIds" style="color:white;">
+                <CheckboxGroup v-model="evaluationInfo.subjectIds">
                     <Checkbox v-for="(subjectItem,index) in curSubjects" :key="index" :label="subjectItem.id">
                         <span>{{subjectItem.name}}</span>
                     </Checkbox>
                 </CheckboxGroup>
-                <p v-if="!evaluationInfo.period.id" style="color:white; text-align:center;">{{$t('learnActivity.createEv.noSubject1')}}</p>
+                <p v-if="!evaluationInfo.period.id" style="text-align:center;">{{$t('learnActivity.createEv.noSubject1')}}</p>
             </div>
         </Modal>
     </div>
@@ -967,16 +967,16 @@ export default {
 <style scoped lang="less">
 @import "./CreateSchoolEva.less";
 </style>
-<style>
+<style lang="less">
 .evaluation-attr-wrap .ivu-form .ivu-form-item-label {
-    color: #a5a5a5;
+    color: var(--second-text-color);
 }
 
 .evaluation-question-main
     .ivu-tabs.ivu-tabs-card
     .ivu-tabs-bar
     .ivu-tabs-tab-active {
-    background-color: #404040 !important;
+    // background-color: #404040 !important;
     font-weight: 600;
 }
 .teacher-preview-container .paper-main-wrap {
@@ -991,4 +991,7 @@ export default {
 .evaluation-question-main .ivu-tabs-bar {
     margin-bottom: 0px;
 }
+.create-header .ivu-btn-ghost{
+    color: var(--second-text-color);
+}
 </style> 

+ 5 - 5
TEAMModelOS/ClientApp/src/view/learnactivity/ManualCreate.less

@@ -1,15 +1,15 @@
-@main-bgColor: rgb(40,40,40); //主背景颜
+@main-bgColor: rgb(40,40,40); //锟斤拷锟斤拷锟斤拷锟斤拷
 @borderColor: #424242;
-@primary-textColor: #fff; //文本主颜
-@second-textColor: #a5a5a5; //文本副级颜
+@primary-textColor: var(--primary-text-color); //锟侥憋拷锟斤拷锟斤拷
+@second-textColor: #a5a5a5; //锟侥憋拷锟斤拷锟斤拷锟斤拷
 @primary-fontSize: 14px;
 @second-fontSize: 16px;
 
 .manual-filter-wrap {
   width: 100%;
-  border-bottom: 1px dashed #606060;
+  border-bottom: 1px dashed @borderColor;
   padding: 15px 15px 0px 15px;
-  color: white;
+  color: @primary-textColor;
   display: flex;
   flex-direction: row;
 

+ 1 - 1
TEAMModelOS/ClientApp/src/view/learnactivity/ManualCreate.vue

@@ -1,5 +1,5 @@
 <template>
-    <div style="height: 100%;background: #404040;position:relative;">
+    <div style="height: 100%;position:relative;">
         <Poptip padding="0px 0px" offset="10" placement="top-end" width="300" trigger="hover" :class="shoppingCarClass">
             <Badge type="primary" :count="shoppingQuestionList.length" show-zero :offset="[-3,-3]"  @mouseenter.native="changeActive($event)" @mouseleave.native="removeActive($event)">
                 <Icon custom="iconfont icon-sp-car" color="#1cc0f3" size="50"/>

+ 12 - 10
TEAMModelOS/ClientApp/src/view/learnactivity/ManualPaper.less

@@ -1,21 +1,22 @@
 @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;
 @second-fontSize: 16px;
 
 .manual-paper-container {
     width: 100%;
     height: 100%;
-    background: #404040;
+    // background: #404040;
+    border: 1px solid @borderColor;
     position: relative;
-    color:white;
+    color: @primary-textColor;
     padding-bottom:30px;
 }
 .manual-filter-wrap {
     width: 100%;
-    border-bottom: 1px dashed #606060;
+    border-bottom: 1px dashed @borderColor;
     padding: 15px 15px 0px 15px;
     color: white;
     display: flex;
@@ -49,14 +50,14 @@
     margin-left: 15px;
     margin-right: 15px;
     margin-bottom: 5px;
-    background: #505050;
+    // background: #505050;
     align-items: start;
     border-radius: 2px;
     position: relative;
 
     &:hover {
-        background: #606060;
-        box-shadow: 0px 4px 5px #191919;
+        background: var(--hover-text-color);
+        // box-shadow: 0px 4px 5px #191919;
     }
 
     &-name {
@@ -79,10 +80,11 @@
         .info-item {
             font-size: 12px;
             padding: 0 10px;
+            color: @second-textColor;
 
             .info-bold {
                 font-weight: bold;
-                color: #CCCCCC;
+                color: @primary-textColor;
             }
         }
 

+ 3 - 3
TEAMModelOS/ClientApp/src/view/learnactivity/MgtPrivEva.vue

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

+ 30 - 29
TEAMModelOS/ClientApp/src/view/learnactivity/MgtSchoolEva.less

@@ -1,9 +1,9 @@
 @main-bgColor: rgb(40,40,40); //主背景颜色
-@borderColor: #424242;
 @primary-textColor: #fff; //文本主颜色
 @second-textColor: #a5a5a5; //文本副级颜色
 @primary-fontSize: 14px;
 @second-fontSize: 16px;
+@borderColor: #424242; 
 
 .manage-evaluation-container {
     width: 100%;
@@ -12,16 +12,13 @@
     flex-direction: row;
 
     .evaluation-list-wrap {
-        /*width: 400px;*/
         width:100%;
         height: 100%;
-        /*border-right: 1px solid @borderColor;*/
-        padding-left: 15px;
-        color: white;
+        padding-left: 0px;
+        color: var(--second-text-color);
     }
 
     .evaluation-detail-wrap {
-        /*width: ~"calc(100% - 400px)";*/
         width:100%;
         height: 100%;
         padding-left: 15px;
@@ -44,8 +41,9 @@
         width: 100%;
         height: 45px;
         line-height: 45px;
-        border-bottom: 1px solid @borderColor;
-        color: @second-textColor;
+        padding-left: 15px;
+        border-bottom: 1px solid var(--border-color);
+        // color: @second-textColor;
     }
 
     .evaluation-list-main {
@@ -53,18 +51,27 @@
         height: ~"calc(100% - 45px)";
 
         .evaluation-item {
-            border-bottom: 1px solid @borderColor;
-            padding: 15px 10px 15px 0px;
+            border-bottom: 1px solid var(--border-color);
+            padding: 15px 10px 15px 15px;
             cursor: pointer;
 
+            &:hover{
+                background: var(--hover-text-color);
+            }
+
             .evaluation-name {
                 font-size: 16px;
+                color: var(--primary-text-color);
             }
 
             .evaluation-type {
-                color: #AAA;
+                color: @second-textColor;
                 margin-top: 8px;
                 font-size: 12px;
+
+                .ivu-icon{
+                    color: var(--assist-color-light);
+                }
             }
 
             .evaluation-type span {
@@ -80,7 +87,7 @@
         width: 100%;
         height: 45px;
         line-height: 45px;
-        border-bottom: 1px solid @borderColor;
+        border-bottom: 1px solid var(--border-color);
         color: @second-textColor;
 
         .edit-evaluation {
@@ -96,7 +103,6 @@
         }
 
         .evalustion-bar-item {
-            margin-right: 10px;
             display: inline-block;
             cursor: pointer;
             line-height: 38px;
@@ -115,13 +121,13 @@
         .evalustion-base-attr {
             width: 350px;
             height: 100%;
-            border-right: 1px solid @borderColor;
+            border-right: 1px solid var(--border-color);
 
             .evalustion-base-attr-header {
                 height: 45px;
                 line-height: 45px;
                 color: @second-textColor;
-                border-bottom: 1px solid @borderColor;
+                border-bottom: 1px solid var(--border-color);
                 margin-bottom: 25px;
             }
 
@@ -134,10 +140,10 @@
         .evaluation-test-paper-header {
             height: 35px;
             line-height: 35px;
-            color: #a5a5a5;
-            /* border-bottom: 1px solid #424242; */
-            margin-bottom: 5px;
-            margin-top: 5px;
+            color: @second-textColor;
+            border-bottom: 1px solid @borderColor;
+            margin: 5px 0 5px 15px;
+            padding-left: 15px;
         }
     }
 }
@@ -145,7 +151,7 @@
 .subject-item {
     display: inline-block;
     margin-right: 15px;
-    color: #a5a5a5;
+    color: var(--second-text-color);
     cursor: pointer;
     line-height: 22px;
     min-width: 45px;
@@ -156,9 +162,8 @@
 }
 
 .subject-item-active {
-    color: @primary-textColor;
-    border-bottom: 2px solid white;
-    // font-weight: 500;
+    color: var(--primary-text-color);
+    border-bottom: 2px solid #70B1E7;
 }
 
 .test-paper-detail {
@@ -182,12 +187,8 @@
     margin-right: 20px;
     margin-top: 12px;
     cursor: pointer;
-    color: white;
+    color: var(--normal-icon-color);
     font-size: 18px;
-    &:hover{
-        color:aqua;
-        /*display:flex;*/
-    }
 }
 
 .test-paper-detail .back-to-top {
@@ -238,7 +239,7 @@
     margin: 10px 5px;
 }
 .ev-info-tag{
-    color: #dadada;
+    color: var(--label-text-color);
     border: 1px solid #a5a5a5;
     border-radius: 2px;
     padding: 1px 2px;

+ 7 - 8
TEAMModelOS/ClientApp/src/view/learnactivity/MgtSchoolEva.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="manage-evaluation-container dark-iview-split">
+    <div class="manage-evaluation-container custom-iview-split">
         <Loading :top="200" type="1" style="text-align:center" v-show="isLoading"></Loading>
         <Split v-model="split1">
             <!--评测列表-->
@@ -21,7 +21,7 @@
                         <Icon type="md-create" v-show="evaListShow.length && evaListShow[curEvaIndex] && evaListShow[curEvaIndex].progress == 'pending'" class="to-create-icon" @click="editEvaluation" :title="$t('learnActivity.mgtScEv.edit')" v-if="$access.can('admin.*|schoolAc-upd')" />
                         <!-- 筛选 -->
                         <Poptip style="float:right" trigger="click" :offset="-10" theme="light">
-                            <Icon type="ios-funnel" class="to-create-icon" :color="filter.status || filter.type || filter.mode ? '#2d8cf0':'#fff'" />
+                            <Icon type="ios-funnel" class="to-create-icon"/>
                             <div slot="content">
                                 <div class="filter-item">
                                     <span>{{$t('learnActivity.mgtScEv.ftStatus')}}</span>
@@ -47,7 +47,7 @@
                         </Poptip>
                         <Icon type="md-search" class="to-create-icon" @click="isSearch = !isSearch" :title="$t('learnActivity.mgtScEv.search')" />
                     </div>
-                    <div v-else class="dark-iview-input" style="float:right;width:calc(100% - 150px);padding-right:10px;">
+                    <div v-else style="float:right;width:calc(100% - 150px);padding-right:10px;">
                         <Input icon="ios-close" v-model="keyword" :placeholder="$t('schoolBaseInfo.codeSearchHolder')" autofocus style="width:100%" @on-click="closeKeySearch" @on-change="filterByName" />
                     </div>
                 </div>
@@ -113,7 +113,6 @@
                     <span v-show="isDev" :class="curBarIndex == 2 ? 'evalustion-bar-item line-bottom-active line-bottom':'evalustion-bar-item line-bottom'" @click="selectBar(2)">
                         {{$t('learnActivity.mgtScEv.markSetting')}}
                     </span>
-                    <span v-show="isDev" style="color:#1cc0f3;margin-left:-10px">({{$t('system.menu.preview')}})</span>
 
                     <!--取消一键作答和一键评分功能-->
                     <!--<div style="float:right;" v-if="$access.ability('admin','mock-eva').validateAll" v-show="evaListShow[curEvaIndex] && evaListShow[curEvaIndex].progress == 'going'">
@@ -660,16 +659,16 @@ export default {
 }
 .sort-dropdown {
     .title {
-        color: white;
+        color: var(--primary-text-color);
         font-size: 14px;
     }
     .ivu-select-dropdown {
-        background-color: #2d2d2d;
+        // background-color: #2d2d2d;
         border-radius: 2px;
-        border: 1px #464646 solid;
+        // border: 1px #464646 solid;
         .ivu-dropdown-menu {
             li {
-                color: #ccc;
+                // color: #ccc;
                 font-size: 12px !important;
                 &:hover {
                     color: #2d2d2d;

+ 1 - 4
TEAMModelOS/ClientApp/src/view/learnactivity/Scoring.less

@@ -44,15 +44,12 @@
 }
 .scoring-main-wrap {
     width: ~"calc(100% - 10px)";
-    // width: 100%;
     height: ~"calc(100% - 45px)";
 }
 
 .ev-target-box {
-    // margin-top: 20px;
     width: ~"calc(100% - 10px)";
-    color: #ffffff;
-    background: rgba(50, 50, 50, 1);
+    color: var(--label-text-color);
     padding: 10px 10px 10px 5px;
     position: sticky;
     top: 0px;

+ 55 - 51
TEAMModelOS/ClientApp/src/view/learnactivity/Scoring.vue

@@ -1,19 +1,19 @@
 <template>
-    <div class="ev-scoring dark-iview-table">
+    <div class="ev-scoring">
         <vuescroll ref="score-main-warp">
             <SimpleAnalysis :examInfo="examInfo" v-show="!showTest" :overviewInfo="overviewInfo"></SimpleAnalysis>
-            <div class="ev-target-box dark-iview-select dark-iview-cascader">
+            <div class="ev-target-box">
                 <!-- 筛选班级 -->
                 <span>{{$t('learnActivity.score.classLabel')}}</span>
-                <Cascader size="small" v-model="chooseTarget" :data="targetsData" transfer @on-change="targetChange" style="width:200px;display:inline-block;margin-right:15px"></Cascader>
+                <Cascader v-model="chooseTarget" :data="targetsData" transfer @on-change="targetChange" style="width:200px;display:inline-block;margin-right:15px"></Cascader>
                 <!-- 筛选学科 应该根据owner判断是否需要筛选学科 -->
                 <span class="filter-label" v-if="examInfo.owner == 'school'">{{$t('learnActivity.score.subjectLabel')}}</span>
-                <Select filterable v-model="chooseSubject" class="filter-select" size="small" @on-change="getCurPaper" v-if="examInfo.owner == 'school'" transfer>
+                <Select filterable v-model="chooseSubject" class="filter-select" @on-change="getCurPaper" v-if="examInfo.owner == 'school'" transfer>
                     <Option v-for="(item,index) in examInfo.subjects" :value="item.id" :key="index">{{ item.name }}</Option>
                 </Select>
                 <!-- 筛选学生 -->
                 <span style="margin-left:5px" v-show="showTest && markType== 'byStu'">{{$t('learnActivity.score.stuLabel')}}</span>
-                <Select v-model="chooseStudent.id" label-in-value class="filter-select" style="width:140px;" size="small" @on-change="setStuInfo" v-show="showTest && markType== 'byStu'" transfer>
+                <Select v-model="chooseStudent.id" label-in-value class="filter-select" style="width:140px;"  @on-change="setStuInfo" v-show="showTest && markType== 'byStu'" transfer>
                     <Option v-for="(item,index) in tableData" :value="item.id" :key="index">
                         <span class="select-status-tag" :style="{'background':getStudentStatus(item) == 1 ? '#ed4014' : getStudentStatus(item) == 2 ? '#ff9900' : '#19be6b'}"></span>
                         {{ item.name }}
@@ -46,16 +46,16 @@
                     <Loading slot="loading" :top="-50"></Loading>
                 </Table>
                 <!-- 分页 -->
-                <div class="page-wrap dark-ivew-select" v-show="!showTest">
+                <div class="page-wrap" v-show="!showTest">
                     <Page show-total size="small" :current="currentPage" :total="studentScore.length" :page-size="pageSize" :page-size-opts="pageSizeOpts" @on-change="pageChange" @on-page-size-change="pageSizeChange" show-sizer />
                 </div>
                 <!-- 按人批阅 -->
-                <div class="dark-iview-table scoring-handle-box" v-show="showTest && markType== 'byStu'">
+                <div class="scoring-handle-box" v-show="showTest && markType== 'byStu'">
                     <ByStuMark @toggleMarkType="(data)=>{ markType = data }" @updScore="updScore" ref="byStuMark" :defaultIndex="defaultIndex" :examId="examInfo.id" :owner="examInfo.owner" :examScope="examInfo.scope" :paper="paperInfo" :pStudentAnswer="chooseStudent" :subjectId="chooseSubject" @nextStu="getNextStu" style="color:#515a6e;"></ByStuMark>
                     <Loading :top="200" type="1" style="text-align:center" v-show="dataLoading"></Loading>
                 </div>
                 <!-- 按题批阅 -->
-                <div class="dark-iview-table scoring-handle-box" v-show="showTest && markType== 'byQu'">
+                <div class="scoring-handle-box" v-show="showTest && markType== 'byQu'">
                     <ByQuMark :paper="paperInfo" :examInfo="examInfo" :stusInfo="studentScore" :classId="chooseClass" :subjectId="chooseSubject" @toggleMarkType="(data)=>{ markType = data }"></ByQuMark>
                     <Loading :top="200" type="1" style="text-align:center" v-show="dataLoading"></Loading>
                 </div>
@@ -716,59 +716,61 @@ export default {
 @import "./Scoring.less";
 </style>
 <style lang="less">
-.scoring-main-wrap .ivu-table-fixed-body {
-    background: #353535;
-    // background: #2b2b2e;
-    // max-height: 653px;
-}
-.scoring-main-wrap .ivu-table-tip {
-    position: relative;
-    z-index: 9999;
-}
-.scoring-main-wrap .ivu-table-fixed-right::before,
-.scoring-main-wrap .ivu-table-fixed::before {
-    display: none;
-}
-.scoring-main-wrap .ivu-table-fixed-header thead tr th {
-    background: #353535;
-    // background: #2b2b2e;
-    border-color: #606060;
-    color: white;
-}
-.scoring-main-wrap {
-    .ivu-table-header thead tr th {
-        // background: #353535;
-        background: rgba(53, 53, 53, 0.5);
-    }
-    .ivu-table td {
-        // background: #353535;
-        background: rgba(53, 53, 53, 0.5);
-    }
-}
+// .scoring-main-wrap .ivu-table-fixed-body {
+//     background: #353535;
+// }
+// .scoring-main-wrap .ivu-table-tip {
+//     position: relative;
+//     z-index: 9999;
+// }
+// .scoring-main-wrap .ivu-table-fixed-right::before,
+// .scoring-main-wrap .ivu-table-fixed::before {
+//     display: none;
+// }
+// .scoring-main-wrap .ivu-table-fixed-header thead tr th {
+//     background: #353535;
+//     border-color: #606060;
+//     color: white;
+// }
+// .scoring-main-wrap {
+//     .ivu-table-header thead tr th {
+//         // background: #353535;
+//         background: rgba(53, 53, 53, 0.5);
+//     }
+//     .ivu-table td {
+//         // background: #353535;
+//         background: rgba(53, 53, 53, 0.5);
+//     }
+// }
 .page-wrap .ivu-page-item {
-    background: rgba(40, 40, 40, 0.5);
+    // background: rgba(40, 40, 40, 0.5);
 }
 
 .page-wrap .ivu-page-item:hover {
-    border-color: #e4eadb;
+    border-color: #2d8cf0;
 }
 
 .page-wrap .ivu-page-item-active {
-    background: #bfbfb9;
+    // background: #bfbfb9;
+    background: #2d8cf0;
+
+    a{
+        color: #FFF !important;
+    }
 }
 
 .page-wrap .ivu-page-item a {
-    color: #f1f1f1;
+    color: #7a7a7a;
 }
 
 .page-wrap .ivu-page-next,
 .page-wrap .ivu-page-prev {
-    background: rgba(0, 0, 0, 0);
+    // background: rgba(0, 0, 0, 0);
 }
 
 .page-wrap .ivu-page-next a,
 .page-wrap .ivu-page-prev a {
-    color: #e4eadb;
+    // color: #e4eadb;
 }
 
 .page-wrap .ivu-page-next:hover,
@@ -776,13 +778,15 @@ export default {
     border-color: #e4eadb;
 }
 
-.page-wrap .ivu-page-item-active,
-.page-wrap .ivu-page-item:hover a {
-    border-color: #e4eadb;
+.page-wrap .ivu-page-item:hover {
+    background: #2d8cf0;
+    a{
+        color: #FFF;
+    }
 }
 
 .page-wrap .ivu-page-item-active a {
-    color: #595959;
+    // color: #595959;
 }
 .page-wrap
     .ivu-select-small.ivu-select-single
@@ -794,10 +798,10 @@ export default {
 }
 .page-wrap .ivu-select-single .ivu-select-selection {
     height: 30px;
-    background: transparent;
-    border: 1px solid #595959;
-    box-shadow: none;
-    color: #cecece;
+    // background: transparent;
+    // border: 1px solid #595959;
+    // box-shadow: none;
+    // color: #cecece;
 }
 
 .page-wrap .ivu-select-single .ivu-select-placeholder {

+ 3 - 3
TEAMModelOS/ClientApp/src/view/learnactivity/echarts/AvgCompare.vue

@@ -63,7 +63,7 @@ export default {
                     "left": 0,
                     "top": 0,
                     "textStyle": {
-                        "color": "#FFF",
+                        "color": "#303030",
                         fontSize: 14
                     }
                 },
@@ -98,7 +98,7 @@ export default {
                     },
                     splitLine: {
                         lineStyle: {
-                            color: ['#505050']
+                            color: ['#AAA']
                         }
                     }
                 },
@@ -150,7 +150,7 @@ export default {
                         this.newOption.legend.data.push({
                             name: item.subjectId, //不显示班级名称
                             textStyle: {
-                                color: '#FFF'
+                                color: '#303030'
                             }
                         })
                     })

+ 1 - 1
TEAMModelOS/ClientApp/src/view/learnactivity/echarts/ScoreMatrix.vue

@@ -25,7 +25,7 @@ export default {
                     "left": "center",
                     "top": 0,
                     "textStyle": {
-                        "color": "#FFF",
+                        "color": "#303030",
                         fontSize: 14
                     }
                 },

+ 11 - 9
TEAMModelOS/ClientApp/src/view/learnactivity/markpaper/MarkData.vue

@@ -7,7 +7,7 @@
                     {{$t('learnActivity.mark.subData')}}
                     <span style="color:rgb(45, 183, 245)">(预览)</span>
                 </p>
-                <div class="setting-content dark-iview-table">
+                <div class="setting-content">
                     <Table :columns="subCol" :data="subData" class="sub-info-table">
                         <template slot-scope="{ row }" slot="scanPerc">
                             {{ `${row.scanNum}/${row.num}` }}
@@ -40,7 +40,7 @@
                     {{$t('learnActivity.mark.teaProgress')}}
                     <span style="color:rgb(45, 183, 245)">(预览)</span>
                 </p>
-                <div class="setting-content dark-iview-table">
+                <div class="setting-content">
                     <Table :columns="teaCol" :data="teaData" class="sub-info-table">
                         <template slot-scope="{ row }" slot="header">
                             <PersonalPhoto :name="row.name" :picture="row.picture" />
@@ -262,23 +262,25 @@ export default {
 }
 
 .setting-content {
-    background: #2b2a2f;
-    box-shadow: 1px 1px 13px #141414;
+    // background: #2b2a2f;
+    // box-shadow: 1px 1px 13px #141414;
     padding: 15px 10px;
     border-radius: 5px;
     margin-right: 12px;
     margin-top: 8px;
-    box-shadow: 0 26px 40px -24px rgb(30, 31, 33);
+    // box-shadow: 0 26px 40px -24px rgb(30, 31, 33);
 }
 .setting-item-wrap {
     margin-bottom: 10px;
     padding-right: 15px;
 }
 .block-title {
-    color: rgb(190, 190, 190);
+    color: var(--second-text-color);
     line-height: 12px;
-    padding-left: 4px;
+    padding-left: 10px;
     user-select: none;
+    border-left: 2px solid var(--tabs-bottom-color);
+    margin-left: 5px;
 }
 .count-wrap {
     flex: 1;
@@ -347,9 +349,9 @@ export default {
     height: 0px;
 }
 .sub-info-table .ivu-table td {
-    border-color: #323232;
+    // border-color: #323232;
 }
 .sub-info-table .ivu-table-header thead tr th {
-    border-color: #323232;
+    // border-color: #323232;
 }
 </style>

+ 16 - 16
TEAMModelOS/ClientApp/src/view/learnactivity/markpaper/MarkSetting.vue

@@ -1,9 +1,9 @@
 <template>
-    <div class="mark-setting-wrap dark-iview-form">
+    <div class="mark-setting-wrap">
         <div v-show="!isSetting" class="publish-status-box">
             <Icon type="ios-information-circle-outline" class="tips-icon" />
             <p class="status-text">
-                <span style="font-size:16px;color:white">{{$t('learnActivity.mark.noPublish')}}</span>
+                <span style="font-size:16px;">{{$t('learnActivity.mark.noPublish')}}</span>
             </p>
             <span class="setting-btn" @click="isSetting = !isSetting">{{$t('learnActivity.mark.publish')}}</span>
         </div>
@@ -28,7 +28,7 @@
                             <!-- 分配方式 -->
                             <Col :md="24" :lg="24" :xl="12" :xxl="8">
                             <FormItem :label="$t('learnActivity.mark.allocation')" class="setting-item-wrap" prop="mode">
-                                <RadioGroup v-model="setting.mode" style="color:white">
+                                <RadioGroup v-model="setting.mode">
                                     <Radio label="stu">
                                         {{$t('learnActivity.mark.allocationByStu')}}
                                         <Tooltip :content="$t('learnActivity.mark.byStuTips')">
@@ -48,7 +48,7 @@
                             <Col :md="24" :lg="24" :xl="12" :xxl="8">
                             <FormItem :label="$t('learnActivity.mark.markTimes')" class="setting-item-wrap" prop="num">
                                 <!-- <InputNumber :max="2" class="attr-value-wrap" :min="1" v-model="setting.point"></InputNumber> -->
-                                <RadioGroup v-model="setting.num" style="color:white">
+                                <RadioGroup v-model="setting.num">
                                     <Radio :label="1">{{$t('learnActivity.mark.markNum1')}}</Radio>
                                     <Radio :label="2" style="margin-left:0px">{{$t('learnActivity.mark.markNum2')}}</Radio>
                                     <Radio :label="3" style="margin-left:0px">{{$t('learnActivity.mark.markNum3')}}</Radio>
@@ -98,7 +98,7 @@
                             </Col>
                             <Col :md="24" :lg="24" :xl="24" :xxl="24" v-if="setting.mode == 'stu'">
                             <!-- 阅卷老师 -->
-                            <FormItem :label="$t('learnActivity.mark.markRole')" class="setting-item-wrap dark-iview-table" prop="markers">
+                            <FormItem :label="$t('learnActivity.mark.markRole')" class="setting-item-wrap" prop="markers">
                                 <Table :columns="teaCol" :data="markers" border :no-data-text="$t('learnActivity.mark.noTea')">
                                     <template slot-scope="{ row }" slot="header">
                                         <PersonalPhoto :name="row.name" :picture="row.picture" />
@@ -126,7 +126,7 @@
                             </Col>
                             <Col :md="24" :lg="24" :xl="24" :xxl="24" v-else>
                             <!-- 题目划块 -->
-                            <FormItem :label="$t('learnActivity.mark.quBlock')" class="setting-item-wrap dark-iview-table">
+                            <FormItem :label="$t('learnActivity.mark.quBlock')" class="setting-item-wrap">
                                 <Table :columns="blockCol" :data="quBlockData" border>
                                     <template slot-scope="{ row,index }" slot="action">
                                         <Button type="info" size="small" style="margin-right:10px" @click="editBlock(row)">
@@ -168,7 +168,7 @@
             <MarkData v-show="isShowData"></MarkData>
         </vuescroll>
         <!-- 按人分配设置阅卷老师 -->
-        <Modal v-model="addTeaStatus" :title="$t('learnActivity.mark.addTeaTitle')" class-name="dark-iview-modal dark-iview-table" @on-ok="okAddTea" :width="1000">
+        <Modal v-model="addTeaStatus" :title="$t('learnActivity.mark.addTeaTitle')" @on-ok="okAddTea" :width="1000">
             <Table ref="sltTea" :columns="teacherCol" :data="teacherList" style="margin-top:10px" @on-selection-change="(selection)=>{sltTeachers = selection}" height="600">
                 <template slot-scope="{ row }" slot="picture">
                     <PersonalPhoto :name="row.name" :picture="row.picture" />
@@ -179,7 +179,7 @@
             </Table>
         </Modal>
         <!-- 按题分配设置题块和老师 -->
-        <Modal v-model="setQuStatus" class-name="dark-iview-modal dark-iview-table" @on-ok="okSetQu" :width="1000" :loading="mLoading">
+        <Modal v-model="setQuStatus" @on-ok="okSetQu" :width="1000" :loading="mLoading">
             <Tabs value="name1" style="color:white">
                 <TabPane :label="$t('learnActivity.mark.quLabel')" name="name1">
                     <CheckboxGroup v-model="quIds" style="margin-left:10px">
@@ -1024,12 +1024,12 @@ export default {
 .publish-status-box {
     width: 360px;
     height: 315px;
-    background: #37363a;
+    // background: #37363a;
     margin: 60px auto;
     padding: 20px;
     border-radius: 20px;
     position: relative;
-    box-shadow: 0 0px 10px 0px rgb(0 0 0);
+    box-shadow: 0 0px 10px 0px #d5d5d5;
 
     &:hover {
         // background: #3c3c41;
@@ -1040,10 +1040,10 @@ export default {
         margin-top: 6%;
         font-size: 80px;
         margin-right: 5px;
-        color: #eeeeee;
+        // color: #eeeeee;
     }
     .status-text {
-        color: #ccc;
+        // color: #ccc;
         text-align: center;
         margin-top: 40px;
         font-size: 14px;
@@ -1088,7 +1088,7 @@ export default {
     cursor: pointer;
 }
 .filter-tab-item-active {
-    background: #2b2a2f;
+    background: #70B1E7;
     color: white;
 }
 .mark-setting-wrap {
@@ -1100,9 +1100,9 @@ export default {
 }
 
 .setting-content {
-    background: #2b2a2f;
-    box-shadow: 1px 1px 13px #141414;
-    // border: 1px solid rgba(98, 97, 101, 0.4);
+    // background: #2b2a2f;
+    // box-shadow: 1px 1px 13px #141414;
+    border-bottom: 1px solid var(--border-color);
     padding: 10px;
     border-radius: 5px;
     margin-right: 12px;

+ 3 - 2
TEAMModelOS/ClientApp/src/view/newcourse/ClassTable.less

@@ -26,6 +26,7 @@
 }
 
 .week-day-cell:hover {
+    background: var(--hover-text-color);
     .toggle-status-btn {
         display: inline-block;
     }
@@ -68,11 +69,11 @@
     right: 0px;
     top: 0px;
     bottom: 0px;
-    background: rgba(100,100,100,.8);
+    background: var(--hover-text-color);
     display: none;
 }
 .cell-action-icon{
-    color:white;
+    color:var(--second-text-color);
     font-size:22px;
     margin:25px 5px 0px 5px;
     &:hover{

+ 5 - 5
TEAMModelOS/ClientApp/src/view/newcourse/ClassTable.vue

@@ -1,7 +1,7 @@
 <template>
-    <div class="cus-table-container dark-iview-table cus-table">
+    <div class="cus-table-container cus-table">
         <vuescroll>
-            <div class="cus-table-top dark-iview-input dark-iview-select">
+            <div class="cus-table-top">
                 <div class="class-filter-wrap">
                 </div>
             </div>
@@ -114,7 +114,7 @@
                 </template>
             </Table>
         </vuescroll>
-        <Modal v-model="modalStatus" :title="$t('cusMgt.cusClass')" @on-ok="modalOk" @on-cancel="modalCancel" :loading="mLoading" class-name="dark-iview-modal dark-iview-form dark-iview-select">
+        <Modal v-model="modalStatus" :title="$t('cusMgt.cusClass')" @on-ok="modalOk" @on-cancel="modalCancel" :loading="mLoading">
             <Form ref="setCusForm" :model="schd" :label-width="80" label-colon :rules="ruleValidate">
                 <FormItem :label="$t('cusMgt.course')" prop="setCus">
                     <Select v-show="cusListShow.length" v-model="schd.setCus" filterable style="width:90%;" @on-change="getCusFullInfo">
@@ -127,7 +127,7 @@
                     </Select>
                 </FormItem>
                 <FormItem :label="$t('cusMgt.nameListType')">
-                    <RadioGroup v-model="schd.isClass" style="color:white">
+                    <RadioGroup v-model="schd.isClass">
                         <Radio :label="1">
                             <span>{{$t('cusMgt.scClass')}}</span>
                         </Radio>
@@ -619,6 +619,6 @@ export default {
     width: 100%;
 }
 .ivu-table .custom-bg {
-    background: #404040 !important;
+    // background: #404040 !important;
 }
 </style>

+ 23 - 12
TEAMModelOS/ClientApp/src/view/newcourse/CoursePlan.less

@@ -1,9 +1,9 @@
 @first-bgColor: #141414;
 @second-bgColor: #1b1b1b;
 @third-bgColor: #222222;
-@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;
 @second-fontSize: 16px;
 
@@ -14,7 +14,7 @@
     .class-list-wrap {
         width: 100%;
         height: ~"calc(100% - 45px)";
-        padding-left: 15px;
+        // padding-left: 15px;
     }
 
     .cus-table-wrap {
@@ -24,20 +24,25 @@
     }
 }
 .class-list-header {
+    // padding-left: 15px;
     display:block;
-    color:@second-textColor;
-    height: 45px;
+    color: @second-textColor;
+    /* height: 45px;
     width: 100%;
-    line-height: 45px;
-    border-bottom: 1px solid @borderColor;
+    line-height: 45px; */
+    // border-bottom: 1px solid @borderColor;
+    border-left: 3px solid var(--tabs-bottom-color);
+        margin: 12px 0;
+        padding-left: 10px;
+        margin-left: 15px;
 }
 .action-btn-icon{
-    color:white;
+    color: var(--normal-icon-color);
     float:right;
     cursor:pointer;
     margin-right:15px;
     font-size:20px;
-    margin-top:10px;
+    // margin-top:10px;
 }
 .class-list-content{
     width:100%;
@@ -48,8 +53,10 @@
     border-bottom:1px solid @borderColor;
     cursor: pointer;
     position: relative;
+    padding-left: 15px;
 
     &:hover {
+        background: var(--hover-text-color);
         .active-item-bg,
         .period-btn-edit {
             display: inline-block;
@@ -63,7 +70,7 @@
 
 .class-name {
     font-size: 18px;
-    color: white;
+    color: @primary-textColor;
     // font-weight: 00;
 }
 .head-teacher{
@@ -159,11 +166,15 @@
 
 .action-btn-wrap {
     float: right;
-    color: @primary-textColor;
+    color: @second-textColor;
 
     .action-btn {
         cursor: pointer;
         margin-right: 20px;
+
+        &:hover{
+            color: #40A8F0;
+        }
         
         span{
             margin-left: 8px;

+ 6 - 6
TEAMModelOS/ClientApp/src/view/newcourse/CoursePlan.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="course-plan-container dark-iview-split">
+    <div class="course-plan-container">
         <div class="course-table-header">
             <BasePdSelect @pd-change="filterByPeriod"></BasePdSelect>
             <div class="action-btn-wrap">
@@ -20,7 +20,7 @@
                         <span>{{$t('cusMgt.roomLabel')}}</span>
                         <Icon type="md-search" class="action-btn-icon" @click="toggleSearch" />
                     </div>
-                    <div v-else class="dark-iview-input">
+                    <div v-else>
                         <Input icon="ios-close" v-model="classFilter.keyWord" :placeholder="$t('cusMgt.searchHolder')" autofocus style="width:calc(100% - 100px);float:right;margin-top:6px;margin-right:8px" @on-click="toggleSearch" @on-change="onSearchClass" @on-enter="onSearchClass" />
                     </div>
                 </div>
@@ -43,7 +43,7 @@
                 </div>
             </div>
             <div class="cus-table-wrap" slot="right">
-                <div class="cus-table-content dark-iview-table">
+                <div class="cus-table-content">
                     <vuescroll>
                         <!-- 班级课程表 -->
                         <ClassTable v-if="this.roomListShow[this.curClassIndex]" :schedData="roomCus" :roomId="roomListShow[curClassIndex].id" :periodId="pdId" @selectCell="selectCell" @cancelCell="cancelCell"></ClassTable>
@@ -54,7 +54,7 @@
         </Split>
 
         <!--导入课表功能尚未开发-->
-        <Modal v-model="importCusStatus" title="导入课表" width="1000" class-name="dark-iview-modal" @on-ok="confImpStatus = true" @on-cancel="cancelImport">
+        <Modal v-model="importCusStatus" title="导入课表" width="1000" @on-ok="confImpStatus = true" @on-cancel="cancelImport">
             <ImportExcel ref="impXls" :headerKeys="headerKeys" :headerTitles="headerTitles" @getTableData="getTableData"></ImportExcel>
             <div class="error-tips-wrap">
                 <span style="color:#ed4014;" v-if="errorCourse.length > 0">
@@ -71,7 +71,7 @@
                 </span>
             </div>
         </Modal>
-        <Modal v-model="confImpStatus" title="确认导入" class-name="dark-iview-modal dark-iview-form" @on-ok="importCus">
+        <Modal v-model="confImpStatus" title="确认导入" @on-ok="importCus">
             <p style="color:white;font-size:16px;">批量导入课程将覆盖班级原来的课表,确认批量导入并且覆盖原来的课表?</p>
         </Modal>
     </div>
@@ -492,6 +492,6 @@ export default {
 }
 
 .ivu-table .custom-bg {
-    background: #404040 !important;
+    /* background: #404040 !important; */
 }
 </style>

+ 11 - 15
TEAMModelOS/ClientApp/src/view/newcourse/MyCourse.less

@@ -1,7 +1,6 @@
 @first-bgColor: #141414;
 @second-bgColor: #1b1b1b;
 @third-bgColor: #222222;
-@borderColor: #424242;
 @primary-textColor: #fff; //文本主颜色
 @second-textColor: #a5a5a5; //文本副级颜色
 @primary-fontSize: 14px;
@@ -16,12 +15,9 @@
     .course-list {
         width: 100%;
         height: 100%;
-        // border-right: 1px solid @borderColor;
-        padding-left: 10px;
     }
 
     .course-info-wrap {
-        // width: ~"calc(100% - 400px)";
         width: 100%;
         height: 100%;
         padding-left: 15px;
@@ -32,7 +28,7 @@
 .course-list-header {
     width: 100%;
     height: 45px;
-    border-bottom: 1px solid @borderColor;
+    border-bottom: 1px solid var(--border-color);
     line-height: 45px;
     color: white;
 
@@ -69,15 +65,15 @@
         color: @second-textColor;
         display: block;
         padding: 4px 0px 4px 15px;
-        border-bottom: 1px solid @borderColor;
+        border-bottom: 1px solid var(--border-color);
         font-weight: 800;
     }
 
     .course-list-item {
         width: 100%;
-        padding: 10px 0px 10px 5px;
+        padding: 10px 0px 10px 15px;
         color: @second-textColor;
-        border-bottom: 1px solid @borderColor;
+        border-bottom: 1px solid var(--border-color);
         position: relative;
         cursor: pointer;
 
@@ -114,7 +110,7 @@
     width: 100%;
     height: 45px;
     line-height: 45px;
-    border-bottom: 1px solid @borderColor;
+    border-bottom: 1px solid var(--border-color);
 
     .setting-label {
         color: @second-textColor;
@@ -158,7 +154,7 @@
 .tea-class-item{
     padding: 10px;
     color: white;
-    border-bottom: 1px solid @borderColor;
+    border-bottom: 1px solid var(--border-color);
     cursor: pointer;
     .class-attr-item{
         margin: 5px 0px;
@@ -267,7 +263,7 @@
         width: 100%;
         height: 45px;
         line-height: 45px;
-        border-bottom: 1px solid @borderColor;
+        border-bottom: 1px solid var(--border-color);
 
         .add-classroom-icon {
             float: right;
@@ -288,7 +284,7 @@
             padding: 10px 0px 10px 10px;
             width: 100%;
             cursor: pointer;
-            border-bottom: 1px solid @borderColor;
+            border-bottom: 1px solid var(--border-color);
             color: @second-textColor;
             position: relative;
 
@@ -311,7 +307,7 @@
         width: 100%;
         height: 45px;
         line-height: 45px;
-        border-bottom: 1px solid @borderColor;
+        border-bottom: 1px solid var(--border-color);
 
         .course-classroom-label {
             margin-right: 20px;
@@ -385,11 +381,11 @@
     color: #2d8cf0;
 }
 .cus-type-item{
+    margin-right: 20px;
+    margin-left: 10px;
     color: #a5a5a5;
     cursor: pointer;
     user-select: none;
-    line-height: 45px;
-    display: inline-block;
 }
 .create-list-title{
     font-size: 16px;

+ 3 - 3
TEAMModelOS/ClientApp/src/view/newcourse/MyCourse.vue

@@ -1,12 +1,12 @@
 <template>
-    <div class="my-course-container dark-iview-split">
+    <div class="my-course-container custom-iview-split">
         <Loading v-if="listLoading" bgColor="rgba(103, 103, 103, 0.27)"></Loading>
         <Split v-show="!isShowSchd" v-model="split1">
             <!--课程列表-->
             <div class="course-list" slot="left">
                 <!-- 列表头部 -->
-                <div class="course-list-header">
-                    <span v-for="(item,index) in cusType" :key="index" @click="tabClick(item.value)" :class="['cus-type-item','line-bottom', item.value == listType ? 'line-bottom-active':'']">
+                <div class="course-list-header tab-box">
+                    <span v-for="(item,index) in cusType" :key="index" @click="tabClick(item.value)" :class="{ active: item.value == listType }" class="cus-type-item pane">
                         {{item.label}}
                     </span>
                     <div style="margin-top:0px;float:right;">

+ 58 - 34
TEAMModelOS/ClientApp/src/view/newcourse/NewCusMgt.less

@@ -1,9 +1,9 @@
 @first-bgColor: #141414;
 @second-bgColor: #1b1b1b;
 @third-bgColor: #222222;
-@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;
 @second-fontSize: 16px;
 
@@ -17,7 +17,7 @@
         line-height: 45px;
         border-bottom: 1px solid @borderColor;
         padding-left:10px;
-        color: #a5a5a5;
+        color: @second-textColor;
     }
 
     .mgt-course-body {
@@ -27,11 +27,15 @@
 }
 .action-btn-wrap {
     float: right;
-    color: @primary-textColor;
+    color: @second-textColor;
 
     .action-btn {
         cursor: pointer;
         margin-right: 20px;
+
+        &:hover{
+            color: #40A8F0;
+        }
         
         span{
             margin-left: 8px;
@@ -54,42 +58,51 @@
     height: ~"calc(100% - 45px)";
 }
 .cus-list-content{
-    padding-left: 8px;
+    // padding-left: 8px;
     height: ~"calc(100% - 40px)";
 }
 .cus-list-header{
-    height: 40px;
-    line-height: 40px;
+    // padding-left: 8px;
+    /* height: 40px;
+    line-height: 40px; */
     padding: 0px 8px;
-    border-bottom: 1px solid #424242;
-    color: #a5a5a5;
+    // border-bottom: 1px solid @borderColor;
+    color: @second-textColor;
     display: flex;
     flex-direction: row;
     justify-content: space-between;
     align-items: center;
+    // border-left: 3px solid var(--tabs-bottom-color);
+    margin: 12px 0;
+    // padding-left: 10px;
+    // margin-left: 8px;
 }
 .cus-item{
     width: 100%;
-    padding: 10px 8px 10px 0px;
-    color: white;
-    border-bottom: 1px solid #424242;
+    padding: 10px 8px 10px 8px;
+    color: @primary-textColor;
+    // border-bottom: 1px solid @borderColor;
     cursor: pointer;
+
+    &:hover{
+        background: var(--hover-text-color);
+    }
     .cus-name{
         font-size: 20px;
-        color: #fff;
+        color: @primary-textColor;
         font-weight: 500;
     }
     .cus-id{
-        color: #0ff;
+        color: var(--assist-color-light);
         font-size: 14px;
         margin-right: 5px;
-        border: 1px solid #0ff;
+        border: 1px solid var(--assist-color-light);
         padding: 0px 3px;
         border-radius: 3px;
         vertical-align: middle;
     }
     .attr-label{
-        color: #a5a5a5;
+        color: @second-textColor;
         font-size: 12px;
     }
     .cus-subject{
@@ -107,16 +120,20 @@
     height: ~"calc(100% - 40px)";
 }
 .teacher-list-header{
-    height: 40px;
-    line-height: 40px;
+    /* height: 40px;
+    line-height: 40px; */
     padding-right: 10px;
-    border-bottom: 1px solid #424242;
-    color: #a5a5a5;
+    // border-bottom: 1px solid @borderColor;
+    color: @second-textColor;
+    // border-left: 3px solid var(--tabs-bottom-color);
+    margin: 12px 0;
+    // padding-left: 10px;
+    margin-left: 8px;
 }
 .tea-action-icon{
     float: right;
-    color: white;
-    line-height: 40px;
+    color: var(--normal-icon-color);
+    // line-height: 40px;
     margin-left: 15px;
     cursor: pointer;
 }
@@ -131,16 +148,19 @@
     cursor: pointer;
     position: relative;
     display: inline-block;
-    height: 40px;
-    line-height: 40px !important;
+    /* height: 40px;
+    line-height: 40px !important; */
 }
 .tea-item{
     width: 100%;
-    padding: 10px 8px 10px 5px;
-    color: white;
-    border-bottom: 1px solid #424242;
+    padding: 12px 8px 12px 5px;
+    color: @primary-textColor;
+    // border-bottom: 1px solid @borderColor;
     cursor: pointer;
     display: flex;
+    &:hover{
+        background: var(--hover-text-color);
+    }
     .tea-info{
         margin-left: 10px;
     }
@@ -149,7 +169,7 @@
     }
     .tea-id{
         font-size: 12px;
-        color: #a5a5a5;
+        color: @second-textColor;
     }
 }
 .cus-time-setting{
@@ -171,14 +191,18 @@
 }
 .tea-class-item{
     padding: 10px;
-    color: white;
-    border-bottom: 1px solid @borderColor;
+    color: @primary-textColor;
+    // border-bottom: 1px solid @borderColor;
     cursor: pointer;
+
+    &:hover{
+        background: var(--hover-text-color);
+    }
     .class-attr-item{
         margin: 5px 0px;
     }
     .attr-label{
-        color: #a5a5a5;
+        color: @second-textColor;
     }
     .class-name{
         font-size: 14px;
@@ -216,7 +240,7 @@
     align-items: center;
     margin-right: 15px;
     &-icon {
-        color: white;
+        color: var(--normal-icon-color);
         font-size: 16px;
         margin-right: 12px;
         margin-left: 10px;
@@ -253,7 +277,7 @@
     padding-left: 15px;
     position: sticky;
     top: 0px;
-    background: #303030;
+    // background: #303030;
     z-index: 99;
     .add-list-label{
         color: #a5a5a5;

+ 14 - 14
TEAMModelOS/ClientApp/src/view/newcourse/NewCusMgt.vue

@@ -1,12 +1,12 @@
 <template>
-    <div class="manage-course-container dark-iview-split">
+    <div class="manage-course-container custom-iview-split">
         <Loading v-if="listLoading" bgColor="rgba(103, 103, 103, 0.27)"></Loading>
         <!-- 头部 -->
         <div class="mgt-course-header">
             <Dropdown class="sort-dropdown" trigger="click" placement="bottom-start" @on-click="function(e){ filterPeriod = e }" @on-visible-change="dropdownStates" v-if="$store.state.user.schoolProfile.school_base">
                 <span style="cursor: pointer;">
                     {{$t('schoolBaseInfo.pdLabel')}}
-                    <b class="title" style="color:white">{{ filterPeriodName }}</b>
+                    <b class="title">{{ filterPeriodName }}</b>
                     <Icon type="ios-arrow-down" style="margin-left:8px;"></Icon>
                 </span>
                 <DropdownMenu slot="list" v-for="(item,index) in schoolBase.period" :value="item.id" :key="index">
@@ -23,7 +23,7 @@
         <Split v-model="split1">
             <!-- 课程列表 -->
             <div slot="left" class="cus-list-box">
-                <div class="cus-list-header dark-iview-input">
+                <div class="cus-list-header">
                     <span>
                         {{$t('cusMgt.course')}}
                         <Tooltip :content="$t('tip.cusInfo')" transfer theme="light" max-width="180">
@@ -86,7 +86,7 @@
                     <!-- 上课名单、上课时段设置 -->
                     <div slot="right" class="class-setting" v-show="!addListStatus && !addTeaStatus">
                         <div class="teacher-list-header">
-                            <span class="tab-label" style="padding-left:10px">
+                            <span class="tab-label">
                                 {{$t('cusMgt.cusNameList')}}
                             </span>
                             <Tooltip :content="$t('tip.sCusClass')" transfer theme="light" max-width="180">
@@ -126,7 +126,7 @@
                                         </div>
                                     </div>
                                     <!-- 设置班级名单 -->
-                                    <div slot="right" class="set-stu-list dark-iview-table dark-el-cascader" v-if="schdList[curClassIndex]">
+                                    <div slot="right" class="set-stu-list" v-if="schdList[curClassIndex]">
                                         <vuescroll>
                                             <Table v-if="schdList[curClassIndex]" :columns="schdList[curClassIndex].stulist ? listColumn : classColumn" :data="students" class="stu-list-table" :loading="stuLoading" :no-data-text="$t('cusMgt.noStu')">
                                                 <Loading slot="loading" :top="0" bgColor="rgba(103, 103, 103, 0.27)"></Loading>
@@ -168,7 +168,7 @@
                         </div>
                     </div>
                     <!-- 添加班级名单UI 批量添加-->
-                    <div slot="right" class="class-setting dark-iview-input dark-iview-select dark-iview-table" v-show="addListStatus">
+                    <div slot="right" class="class-setting" v-show="addListStatus">
                         <vuescroll>
                             <div class="add-tea-header">
                                 <RadioGroup v-model="addType" type="button" button-style="solid" size="small">
@@ -199,7 +199,7 @@
                         </vuescroll>
                     </div>
                     <!-- 添加授课教师UI -->
-                    <div slot="right" class="class-setting dark-iview-input dark-iview-table" v-show="addTeaStatus">
+                    <div slot="right" class="class-setting" v-show="addTeaStatus">
                         <vuescroll>
                             <div class="add-tea-header">
                                 <!-- <Input search :placeholder="$t('cusMgt.searchHolder')" style="width:240px;margin-top:4px" size="small" /> -->
@@ -228,7 +228,7 @@
             </div>
         </Split>
         <!-- 添加课程表单 -->
-        <Modal v-model="addCourseStatus" :title="actionType == 0 ? $t('cusMgt.addCus'):$t('cusMgt.editCus')" class-name="dark-iview-form dark-iview-modal" @on-ok="addCourse" :loading="modalLoading">
+        <Modal v-model="addCourseStatus" :title="actionType == 0 ? $t('cusMgt.addCus'):$t('cusMgt.editCus')" @on-ok="addCourse" :loading="modalLoading">
             <Form ref="courseBaseInfo" :model="courseBaseInfo" :rules="courseBaseValidate" label-position="right" label-colon :label-width="100">
                 <FormItem :label="$t('cusMgt.cusSubject')" prop="subject.id">
                     <Select v-model="courseBaseInfo.subject.id" :placeholder="$t('cusMgt.sjHolder')">
@@ -1386,14 +1386,14 @@ export default {
     line-height: 26px;
 }
 .add-tea-header .ivu-radio-wrapper-checked {
-    background: white !important;
-    border-color: white !important;
-    color: #515a6e !important;
+    /* background: white !important; */
+    /* border-color: white !important; */
+    /* color: #515a6e !important; */
 }
 .add-tea-header .ivu-radio-group-button .ivu-radio-wrapper {
-    background: #606060;
-    color: white;
-    border-color: #606060;
+    /* background: #606060; */
+    /* color: white; */
+    /* border-color: #606060; */
 }
 .add-tea-header .ivu-radio-group-button .ivu-radio-wrapper-checked,
 .add-tea-header

+ 1 - 1
TEAMModelOS/ClientApp/src/view/newcourse/TeaTable.vue

@@ -347,6 +347,6 @@ export default {
     width: 100%;
 }
 .ivu-table .custom-bg {
-    background: #404040 !important;
+    // background: #404040 !important;
 }
 </style>

+ 0 - 0
TEAMModelOS/ClientApp/src/view/notify/CreateNotify.less


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini