Ver código fonte

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

upon 1 ano atrás
pai
commit
dda2c7bc6a

+ 3 - 3
TEAMModelOS.SDK/Models/Service/Common/ActivityService.cs

@@ -561,12 +561,12 @@ namespace TEAMModelOS.SDK
               
             //先获取邀请制的
             string sqlInvite = $"select value c from c join t in c.inviteTeachers where   t.id='{tmdid}' and c.pk='ActivityTeacher'";
-            var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<ActivityTeacher>(sqlInvite);
-            inviteActivityIds= result.list.Select(z => z.id).ToHashSet();
+            var result = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityTeacher>(sqlInvite);
+            inviteActivityIds= result.list.Where(x=>!string.IsNullOrWhiteSpace(x.activityId)).Select(z => z.activityId).ToHashSet();
             if (inviteActivityIds.Count>0)
             {
                 string sqlActivity = $"select value c from c  where c.id in ({string.Join(",", inviteActivityIds.Select(z => $"'{z}'"))}) {yearSql} ";
-                var resultActivity = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<TeacherActivityDto>(sqlInvite, "Activity");
+                var resultActivity = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Common).GetList<TeacherActivityDto>(sqlActivity, "Activity");
                 if (resultActivity.list.IsNotEmpty())
                 {
                     activities.AddRange(resultActivity.list);

+ 53 - 0
TEAMModelOS.SDK/Models/Service/GroupListService.cs

@@ -18,6 +18,7 @@ using TEAMModelOS.SDK.Models;
 using System.Net.Http;
 using DocumentFormat.OpenXml.Wordprocessing;
 using static TEAMModelOS.SDK.GroupListService;
+using DocumentFormat.OpenXml.Drawing.Charts;
 
 namespace TEAMModelOS.SDK
 {
@@ -1088,6 +1089,58 @@ namespace TEAMModelOS.SDK
                 return (members, groupLists);
             }
         }
+        /// <summary>
+        /// 根据名单类型获取名单及成员信息。
+        /// </summary>
+        /// <param name="_coreAPIHttpService"></param>
+        /// <param name="client"></param>
+        /// <param name="type"></param>
+        /// <param name="scopes"></param>
+        /// <param name="school"></param>
+        /// <param name="_dingDing"></param>
+        /// <param name="graduate">毕业类型0在校,1毕业 , -1查全部。</param>
+        /// <returns></returns>
+        public static async Task<List<GroupListDto>> GetGroupListByType(CosmosClient client, string type, School school, Models.Period period, int graduate = -1)
+        {
+            List<GroupListDto> classes = new List<GroupListDto>();
+            List<int> grd = new List<int> ();
+            int index = 0;
+            period.grades.ForEach(z => { grd.Add(index); index+=1; });
+            var yearsdata = SchoolService.GetYears(school, period.id, grd);
+            List<int> years = yearsdata.years.ToList();
+          
+            if (years.IsNotEmpty()) {
+                StringBuilder sql = new StringBuilder($"select  c.id,c.code,c.name,c.no,c.periodId,c.scope,c.school,c.creatorId,c.type,c.year,c.tcount,c.scount,c.teacher.id as leader  ,c.graduate from  c where c.year in ({string.Join(",", years)}) and c.periodId='{period.id}' ");
+                if (graduate!=-1) {
+                    sql.Append($" and c.graduate={graduate} ");
+                }
+                var result = await client.GetContainer(Constant.TEAMModelOS, Constant.School).GetList<RGroupList>(sql.ToString(), $"Class-{school.id}");
+
+                foreach (var item in result.list)
+                {
+                    GroupListDto group = new GroupListDto
+                    {
+                        id = item.id,
+                        code = $"GroupList-{school.id}",
+                        name = item.name,
+                        periodId = item.periodId,
+                        scope = "school",
+                        school = school.id,
+                        type = "class",
+                        expire= item.expire,
+                        year = item.year,
+                        no = item.no,
+                        leader = item.leader,
+                        pk = "GroupList",
+                        graduate = item.graduate,
+                        grades= new HashSet<int> { item.year }
+                    };
+                    classes.Add(group);
+                }
+            }
+            return classes;
+        }
+
         /// <summary>
         /// 根据名单类型获取名单及成员信息。
         /// </summary>

+ 23 - 7
TEAMModelOS/ClientApp/public/lang/en-US.js

@@ -3793,7 +3793,7 @@ const LANG_EN_US = {
         scType2: 'Higher Education Institutions (HEIs)',
         openLessonRecord: 'Lesson Record Management',
         getLoginUrl:'Student Login Portal',
-        goNormalLogin: 'Switch to Ordinary Login',
+        goNormalLogin: 'Switch to Standard Login Page',
         proSetting: 'Professional Subject',
         curSemSta: 'Current Status:',
         schoolNameLabel: 'School Name:',
@@ -5871,7 +5871,7 @@ const LANG_EN_US = {
     system: {
         lockTip1: 'The school management service license has expired and is currently unavailable',
         lockTip2: '',
-        lockTip3: 'please contact customer service',
+        lockTip3: 'please contact customer service.',
         updateTip1: 'Notification',
         updateTip2: 'The current version has been updated to',
         updateTip3: 'Update Content',
@@ -7674,7 +7674,7 @@ const LANG_EN_US = {
             numAndproportion: 'Quantity & Proportion',
         },
         lessons: {
-            title: 'Lesson and Application History Chart',
+            title: 'Lesson & Application History Chart',
             classroomNums: 'Lessons',
             productionNums: 'Works',
             topicNums: 'Questions',
@@ -7689,11 +7689,11 @@ const LANG_EN_US = {
             examination: 'Assessment',
         },
         basicsChat: {
-            title: 'Basic data',
+            title: 'Basic Data',
             roomnum: 'Classrooms',
             teachnum: 'Teachers',
-            frequency: 'frequency',
-            time: 'time',
+            frequency: 'Frequency',
+            time: 'Time',
         }
     },
     areaIot: {
@@ -7847,5 +7847,21 @@ const LANG_EN_US = {
         addNewTable: 'Add a "new" score sheet',
         InheritTable: '"Continue with existing score sheet',
         addTableNotice: 'Note: The scores of the newly added score sheet are based on the current scores in the system, and the scores are not linked to other functions.',
-    }
+    },
+    activity: {
+        scoreWord: {
+            only: '按评审分数',
+            avg: '按平均分',
+            top: '按最高分',
+            rmLowAvg: '去掉最低分的平均分',
+            rmTopAvg: '去掉最高分的平均分',
+            rmLowTopAvg: '去掉最高分和最低分的平均分',
+        },
+        distributeWord: {
+            none: '不需要匹配',
+            period: '只匹配学段',
+            subject: '只匹配学科',
+            periodAndSubject: '同时匹配学科和学段',
+        },
+    },
 }

+ 17 - 1
TEAMModelOS/ClientApp/public/lang/zh-TW.js

@@ -7848,7 +7848,23 @@ const LANG_ZH_TW = {
         addNewTable:'新增"新"成績表',
         InheritTable:'沿用成績表',
         addTableNotice:'注意:新增的成績表成績以當下系統有的成績為準,成績表成績沒有跟其他功能連動',
-    }
+    },
+    activity: {
+        scoreWord: {
+            only: '按评审分数',
+            avg: '按平均分',
+            top: '按最高分',
+            rmLowAvg: '去掉最低分的平均分',
+            rmTopAvg: '去掉最高分的平均分',
+            rmLowTopAvg: '去掉最高分和最低分的平均分',
+        },
+        distributeWord: {
+            none: '不需要匹配',
+            period: '只匹配学段',
+            subject: '只匹配学科',
+            periodAndSubject: '同时匹配学科和学段',
+        },
+    },
 
 
 

+ 22 - 12
TEAMModelOS/ClientApp/src/view/signupActivity/createActivity.vue

@@ -254,33 +254,43 @@
                     </div>
                     <div v-show="current === 2" class="create-form submit-act">
                         <p class="submit-title">{{ createData.name }}</p>
-                        <img :src="posterFile.url" alt="">
+                        <img :src="posterFile.url" alt="" v-show="posterFile.url">
+                        <img src="@/assets/image/no-poster-cn1.png" alt="" v-show="!posterFile.url">
                         <div class="submit-content">
                             <p>主题:{{ createData.subject }}</p>
-                            <p>简介:{{ createData.description }}</p>
-                            <p>地点:{{ createData.address }}</p>
+                            <p>简介:{{ createData.description || '-' }}</p>
+                            <p>地点:{{ createData.address || '-' }}</p>
                             <p>时间:{{ actAllTime[0][0] }} - {{ actAllTime[0][1] }}</p>
                             <p>主办:
                                 <span v-for="(item, index) in createData.zb" :key="index" class="multiple-box">
-                                    {{ item }}
+                                    {{ item || '-' }}
                                 </span>
                             </p>
                             <p>承办:
                                 <span v-for="(item, index) in createData.cb" :key="index" class="multiple-box">
-                                    {{ item }}
+                                    {{ item || '-' }}
                                 </span>
                             </p>
                             <p v-if="isArea">学校:
-                                <span v-for="(item, index) in createData.invitedSchools" :key="index" class="multiple-box">
-                                    {{ item.name }}
+                                <span v-if="createData.invitedSchools.length">
+                                    <span v-for="(item, index) in createData.invitedSchools" :key="index" class="multiple-box">
+                                        {{ item.name }}
+                                    </span>
                                 </span>
-                            </p>
-                            <p>免责声明:{{ createData.mzsm }}</p>
-                            <p>附件:
-                                <span v-for="(item, index) in attachment" :key="index" class="multiple-box">
-                                    {{ item.name }}
+                                <span v-else>
+                                    所有学校
                                 </span>
                             </p>
+                            <p>免责声明:{{ createData.mzsm || '-' }}</p>
+                            <div style="display: flex;">
+                                <p style="min-width: 50px;">附件:</p>
+                                <div v-if="attachment.length">
+                                    <span v-for="(item, index) in attachment" :key="index" class="multiple-box">
+                                        {{ item.name || '-' }}
+                                    </span>
+                                </div>
+                                <span v-else>-</span>
+                            </div>
                             <p v-if="createData.modules && createData.modules.length">
                                 模块:
                                 <span v-for="(item, index) in createData.modules" :key="index">

+ 6 - 4
TEAMModelOS/ClientApp/src/view/signupActivity/infoComponent/skContent.vue

@@ -45,14 +45,16 @@
                             <PersonalPhoto :name="row.name || row.iname" :picture="row.picture" />
                         </template>
                         <template #joinStatus="{row}">
-                            <Tag color="blue" v-if="row.inviteStatus && row.signContestStatus === 1">已报名</Tag>
+                            <span v-if="row.inviteStatus && row.signContestStatus === 1">
+                                <Tag color="blue">已报名</Tag>
+                                <Tag color="orange" v-show="!row.reviewContestAssignCount">未分配</Tag>
+                            </span>
                             <template v-else-if="!row.inviteStatus">
                                 <Tag color="green">已邀请</Tag>
                                 <Tag color="orange" v-show="!row.signContestStatus">未报名</Tag>
                                 <Tag color="default" v-show="row.signContestStatus === -2">未到报名时间</Tag>
                             </template>
                             <span v-else-if="row.inviteStatus != -2">-</span>
-                            <Tag color="orange" v-show="!row.reviewContestAssignCount">未分配</Tag>
                         </template>
                         <template #uploadContestType="{row}">
                             <span>{{ row.uploadContestType === 'file' ? '文件' : (row.uploadContestType ? '苏格拉底' : '-') }}</span>
@@ -78,7 +80,7 @@
                             </div>
                             <div>
                                 <p>作品分配</p>
-                                <p>{{ $t(`activity.distributeWord[${ruleInfo.distribute}]`) }}</p>
+                                <p>{{ $t(`activity.distributeWord.${ruleInfo.distribute}`) }}</p>
                             </div>
                             <div>
                                 <p>评审方式</p>
@@ -86,7 +88,7 @@
                             </div>
                             <div>
                                 <p>统分规则</p>
-                                <p>{{ $t(`activity.scoreWord[${ruleInfo.scoreRule}]`) }}</p>
+                                <p>{{ $t(`activity.scoreWord.${ruleInfo.scoreRule}`) }}</p>
                             </div>
                         </div>
                         <div class="tab-header">

+ 7 - 2
TEAMModelOS/ClientApp/src/view/signupActivity/infoGoing.vue

@@ -476,9 +476,14 @@ export default {
     }
 
     img{
-        width: 70%;
+        /* width: 70%;
         height: 400px;
-        margin-left: 15%;
+        margin-left: 15%; */
+        max-width: 100%;
+        height: 500px;
+        display: block;
+        border-radius: 10px;
+        margin: auto;
     }
     
     .sk-title{

+ 133 - 129
TEAMModelOS/ClientApp/src/view/signupActivity/infoReleased.vue

@@ -25,142 +25,146 @@
                     </template>
                 </div>
             </div>
-            <div class="info-box">
-                <div class="activity-info">
-                    <template>
-                        <img :src="actInfo.posterShow" alt="">
-                        <div>
-                            <span>主题:</span>
-                            <span>{{ actInfo.subject }}</span>
-                        </div>
-                        <div>
-                            <span>简介:</span>
-                            <span>{{ actInfo.description || '-' }}</span>
-                        </div>
-                        <div>
-                            <span>地点:</span>
-                            <span>{{ actInfo.address || '-' }}</span>
-                        </div>
-                        <div>
-                            <span>时间:</span>
-                            <span class="time-border">{{ actInfo.startTime }} - {{ actInfo.endTime }}</span>
-                        </div>
-                        <div>
-                            <span>主办:</span>
-                            <span v-if="!actInfo.zb.length">-</span>
-                            <span v-else>
-                                <span v-for="(item, index) in actInfo.zb" :key="index" style="margin-right: 10px;">{{ item || '-' }}</span>
-                            </span>
-                        </div>
-                        <div>
-                            <span>承办:</span>
-                            <span v-if="!actInfo.cb.length">-</span>
-                            <span v-else>
-                                <span v-for="(item, index) in actInfo.cb" :key="index" style="margin-right: 10px;">{{ item || '-' }}</span>
-                            </span>
-                        </div>
-                        <div v-if="actInfo.scope != 'school' && isArea">
-                            <span>学校:</span>
-                            <span v-if="actInfo.invitedSchools.length">
-                                <span v-for="item in actInfo.invitedSchools" :key="item.id">{{ item.name }}</span>
-                            </span>
-                            <span v-else>未限制学校</span>
-                        </div>
-                        <div>
-                            <span>免责声明:</span>
-                            <span>{{ actInfo.mzsm || '-' }}</span>
-                        </div>
-                        <div style="display: flex;">
-                            <p style="min-width: 50px;">附件:</p>
-                            <div v-if="actInfo.attachment.length">
-                                <p v-for="item in actInfo.attachment" :key="item.blob" @click="onPreview(item)" class="attach-name">{{ item.name }}</p>
-                            </div>
-                            <span v-else>-</span>
-                        </div>
-                    </template>
-                </div>
-                <div class="check-module">
-                    <Tabs value="sk" class="sk-box">
-                        <TabPane key="sk" label="优课评选" name="sk" v-if="contestInfo">
-                            <p class="sk-title">
-                                <span>报名时间</span>
-                                <span class="time-border">
-                                    {{ contestInfo.sign.startTime }} - {{ contestInfo.sign.endTime }}
-                                </span>
-                            </p>
-                            <div class="sk-info">
-                                <p>填报信息:
-                                    <span class="info-border" v-for="(item, index) in contestInfo.sign.fields" :key="index">{{ item.label }}</span>
-                                </p>
-                                <p>报名人数:
-                                    <!-- <span class="info-border">{{ '28' }}人</span> -->
-                                    <span v-if="contestInfo.sign.limit">{{ contestInfo.sign.limit }}人</span>
-                                    <span v-else>不限制</span>
-                                </p>
-                                <p>参赛方式:
-                                    <!-- <span class="info-border">{{ '团队赛' }}</span> -->
-                                    {{ contestInfo.sign.type ? '团队赛' : '个人赛' }}
-                                </p>
-                            </div>
-                            <template v-if="contestInfo.upload">
-                                <p class="sk-title">
-                                    <span>上传作品</span>
-                                    <span class="time-border">
-                                        {{ contestInfo.upload.startTime }} - {{ contestInfo.upload.endTime }}
+            <div style="height: 90%;">
+                <vuescroll>
+                    <div class="info-box">
+                        <div class="activity-info">
+                            <template>
+                                <img :src="actInfo.posterShow" alt="">
+                                <div>
+                                    <span>主题:</span>
+                                    <span>{{ actInfo.subject }}</span>
+                                </div>
+                                <div>
+                                    <span>简介:</span>
+                                    <span>{{ actInfo.description || '-' }}</span>
+                                </div>
+                                <div>
+                                    <span>地点:</span>
+                                    <span>{{ actInfo.address || '-' }}</span>
+                                </div>
+                                <div>
+                                    <span>时间:</span>
+                                    <span class="time-border">{{ actInfo.startTime }} - {{ actInfo.endTime }}</span>
+                                </div>
+                                <div>
+                                    <span>主办:</span>
+                                    <span v-if="!actInfo.zb.length">-</span>
+                                    <span v-else>
+                                        <span v-for="(item, index) in actInfo.zb" :key="index" style="margin-right: 10px;">{{ item || '-' }}</span>
                                     </span>
-                                </p>
-                                <div class="sk-info">
-                                    <!-- <p>上传时间:
-                                        <span class="time-border">{{ '2023.08.06 - 2023.08.20' }}</span>
-                                    </p> -->
-                                    <p>作品类型:
-                                        <span v-if="contestInfo.upload.type === 'file'">
-                                            <span style="margin-right: 10px;">文件</span>
-                                            <span class="info-border" v-for="(item, index) in contestInfo.upload.fileType" :key="index">
-                                                {{ item }}
-                                            </span>
-                                        </span>
-                                        <span v-else>苏格拉底影片</span>
-                                    </p>
-                                    <p>作品要求:{{ contestInfo.upload.desc || '-' }}</p>
-                                    <p>上传方式:{{ contestInfo.upload.captainUpload ? '由队长统一上传' : '个人上传作品' }}</p>
                                 </div>
-                            </template>
-                            <template v-if="contestInfo.review">
-                                <p class="sk-title">
-                                    <span>作品评审</span>
-                                    <span class="time-border">
-                                        {{ contestInfo.review.startTime }} - {{ contestInfo.review.endTime }}
+                                <div>
+                                    <span>承办:</span>
+                                    <span v-if="!actInfo.cb.length">-</span>
+                                    <span v-else>
+                                        <span v-for="(item, index) in actInfo.cb" :key="index" style="margin-right: 10px;">{{ item || '-' }}</span>
                                     </span>
-                                </p>
-                                <div class="sk-info">
-                                    <!-- <p>评审时间:
-                                        <span class="time-border">{{ '2023.08.21 - 2023.08.30' }}</span>
-                                    </p> -->
-                                    <p>评审规则:
-                                        <span @click="ruleDrawer = true" style="cursor: pointer;">{{ contestInfo.review.ruleName }}</span>
-                                    </p>
                                 </div>
-                            </template>
-                            <template v-if="contestInfo.score">
-                                <p class="sk-title">
-                                    <span>成绩公示</span>
-                                    <span class="time-border">
-                                        {{ contestInfo.score.startTime }} - {{ contestInfo.score.endTime }}
+                                <div v-if="actInfo.scope != 'school' && isArea">
+                                    <span>学校:</span>
+                                    <span v-if="actInfo.invitedSchools.length">
+                                        <span v-for="item in actInfo.invitedSchools" :key="item.id">{{ item.name }}</span>
                                     </span>
-                                </p>
-                                <div class="sk-info">
-                                    <!-- <p>公示时间:
-                                        <span class="time-border">{{ '2023.08.31 - 2023.09.10' }}</span>
-                                    </p> -->
+                                    <span v-else>未限制学校</span>
+                                </div>
+                                <div>
+                                    <span>免责声明:</span>
+                                    <span>{{ actInfo.mzsm || '-' }}</span>
+                                </div>
+                                <div style="display: flex;">
+                                    <p style="min-width: 50px;">附件:</p>
+                                    <div v-if="actInfo.attachment.length">
+                                        <p v-for="item in actInfo.attachment" :key="item.blob" @click="onPreview(item)" class="attach-name">{{ item.name }}</p>
+                                    </div>
+                                    <span v-else>-</span>
                                 </div>
                             </template>
-                        </TabPane>
-                        <!-- <TabPane key="jy" label="教研活动" name="jy">
-                            暂未填写内容
-                        </TabPane> -->
-                    </Tabs>
-                </div>
+                        </div>
+                        <div class="check-module">
+                            <Tabs value="sk" class="sk-box">
+                                <TabPane key="sk" label="优课评选" name="sk" v-if="contestInfo">
+                                    <p class="sk-title">
+                                        <span>报名时间</span>
+                                        <span class="time-border">
+                                            {{ contestInfo.sign.startTime }} - {{ contestInfo.sign.endTime }}
+                                        </span>
+                                    </p>
+                                    <div class="sk-info">
+                                        <p>填报信息:
+                                            <span class="info-border" v-for="(item, index) in contestInfo.sign.fields" :key="index">{{ item.label }}</span>
+                                        </p>
+                                        <p>报名人数:
+                                            <!-- <span class="info-border">{{ '28' }}人</span> -->
+                                            <span v-if="contestInfo.sign.limit">{{ contestInfo.sign.limit }}人</span>
+                                            <span v-else>不限制</span>
+                                        </p>
+                                        <p>参赛方式:
+                                            <!-- <span class="info-border">{{ '团队赛' }}</span> -->
+                                            {{ contestInfo.sign.type ? '团队赛' : '个人赛' }}
+                                        </p>
+                                    </div>
+                                    <template v-if="contestInfo.upload">
+                                        <p class="sk-title">
+                                            <span>上传作品</span>
+                                            <span class="time-border">
+                                                {{ contestInfo.upload.startTime }} - {{ contestInfo.upload.endTime }}
+                                            </span>
+                                        </p>
+                                        <div class="sk-info">
+                                            <!-- <p>上传时间:
+                                                <span class="time-border">{{ '2023.08.06 - 2023.08.20' }}</span>
+                                            </p> -->
+                                            <p>作品类型:
+                                                <span v-if="contestInfo.upload.type === 'file'">
+                                                    <span style="margin-right: 10px;">文件</span>
+                                                    <span class="info-border" v-for="(item, index) in contestInfo.upload.fileType" :key="index">
+                                                        {{ item }}
+                                                    </span>
+                                                </span>
+                                                <span v-else>苏格拉底影片</span>
+                                            </p>
+                                            <p>作品要求:{{ contestInfo.upload.desc || '-' }}</p>
+                                            <p>上传方式:{{ contestInfo.upload.captainUpload ? '由队长统一上传' : '个人上传作品' }}</p>
+                                        </div>
+                                    </template>
+                                    <template v-if="contestInfo.review">
+                                        <p class="sk-title">
+                                            <span>作品评审</span>
+                                            <span class="time-border">
+                                                {{ contestInfo.review.startTime }} - {{ contestInfo.review.endTime }}
+                                            </span>
+                                        </p>
+                                        <div class="sk-info">
+                                            <!-- <p>评审时间:
+                                                <span class="time-border">{{ '2023.08.21 - 2023.08.30' }}</span>
+                                            </p> -->
+                                            <p>评审规则:
+                                                <span @click="ruleDrawer = true" style="cursor: pointer;">{{ contestInfo.review.ruleName }}</span>
+                                            </p>
+                                        </div>
+                                    </template>
+                                    <template v-if="contestInfo.score">
+                                        <p class="sk-title">
+                                            <span>成绩公示</span>
+                                            <span class="time-border">
+                                                {{ contestInfo.score.startTime }} - {{ contestInfo.score.endTime }}
+                                            </span>
+                                        </p>
+                                        <div class="sk-info">
+                                            <!-- <p>公示时间:
+                                                <span class="time-border">{{ '2023.08.31 - 2023.09.10' }}</span>
+                                            </p> -->
+                                        </div>
+                                    </template>
+                                </TabPane>
+                                <!-- <TabPane key="jy" label="教研活动" name="jy">
+                                    暂未填写内容
+                                </TabPane> -->
+                            </Tabs>
+                        </div>
+                    </div>
+                </vuescroll>
             </div>
         </div>
         <Drawer title="评审规则" :width="50" v-model="ruleDrawer">

+ 1 - 3
TEAMModelOS/ClientApp/src/view/signupActivity/processActivity.vue

@@ -51,9 +51,7 @@
                     </div>
                 </div>
             </div>
-            <div v-else>
-                暂无活动
-            </div>
+            <EmptyData :top="100" :textContent="$t('jyzx.common.noData')" v-else />
         </vuescroll>
     </div>
 </template>

+ 7 - 2
TEAMModelOS/Controllers/Client/AClassONEController.cs

@@ -399,13 +399,18 @@ namespace TEAMModelOS.Controllers
             HashSet<string> hashGroupIds = new HashSet<string>();
             List<Class> classes = new List<Class>();
             Period periodSchool = null;
+            //所有行政版
+            List<GroupListDto> allClasses = new List<GroupListDto>();
             if (!string.IsNullOrWhiteSpace(school))
             {
+
                 JsonElement year = default, semesterId = default, _periodId = default;
                 School schoolBase = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).ReadItemAsync<School>(school, new PartitionKey("Base"));
-
                 if (!json.TryGetProperty("periodId", out _periodId)) return BadRequest();
                 var period = schoolBase.period.Find(x => x.id.Equals($"{_periodId}"));
+
+                allClasses=  await GroupListService.GetGroupListByType(_azureCosmos.GetCosmosClient(), "class", schoolBase, period, 0);
+
                 //班主任
                 string sqlClassTeacher = $"select value c from c where c.teacher.id='{tmdid}' and c.periodId='{_periodId}'";
                 var resultClass =   await  _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.School).GetList<Class>(sqlClassTeacher, $"Class-{school}");
@@ -701,7 +706,7 @@ namespace TEAMModelOS.Controllers
                 }
             }
             //暂时先注释不需要的
-            return Ok(new {/* teahcerCourses, schoolCourses, groupIdsRel, */groupLists });
+            return Ok(new {/* teahcerCourses, schoolCourses, groupIdsRel, */groupLists, allClasses });
         }
 
    

+ 15 - 0
TEAMModelOS/Controllers/Common/ActivityController.cs

@@ -1187,6 +1187,7 @@ namespace TEAMModelOS.Controllers
                                             }
                                         }
                                         var teachers = activityTeacher.inviteTeachers.FindAll(z => z.school.Equals(school));
+                                        activityTeacher.activityId=$"{_activityId}";
                                         await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).UpsertItemAsync(activityTeacher, new PartitionKey($"ActivityTeacher-{_activityId}"));
                                         return Ok(new { inviteTeachers = teachers, inviteTeachersInvalid, removeTeachersInvalid });
                                     }
@@ -2117,7 +2118,21 @@ namespace TEAMModelOS.Controllers
                             if (!request.TryGetProperty("activityId", out JsonElement _activityId)) return BadRequest();
                             if (!request.TryGetProperty("uploadId", out JsonElement _uploadId)) return BadRequest();
                             if (!request.TryGetProperty("expertId", out JsonElement _expertId)) return BadRequest();
+                         //   if (!request.TryGetProperty("expertId", out JsonElement _expertId)) return BadRequest();
+                            string sql = $"select value c from c where c.upload.uploadId='{_uploadId}' and c.pk='ActivityEnroll'";
+                            var result =  await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).GetList<ActivityEnroll>(sql, $"ActivityEnroll-{_activityId}");
+                            if (result.list.IsNotEmpty())
+                            {
+                                ActivityExpert activityExpert = await _azureCosmos.GetCosmosClient().GetContainer(Constant.TEAMModelOS, Constant.Teacher).ReadItemAsync<ActivityExpert>(_activityId.GetString(), new PartitionKey("ActivityExpert"));
+                                Expert expert=  activityExpert.experts.Find(z => !string.IsNullOrWhiteSpace(z.id)  &&   z.id.Equals(_expertId.GetString()));
+                                if (expert!=null) { 
+                                    
+                                }
 
+                            }
+                            else {
+                                return Ok(new { code=1,msg ="作品不存在!"});
+                            }
                             break;
                         }
                 }