Kaynağa Gözat

默认封面 && 报名后显示上传进行中 && 个人活动展示奖项列表

XW 1 yıl önce
ebeveyn
işleme
b7583ecbe4

BIN
Contest/contest.client/src/assets/img/no-poster-cn.jpg


+ 12 - 17
Contest/contest.client/src/view/activitylist/ActivityInfo.vue

@@ -93,7 +93,6 @@
                 </div>
                 </div>
             </el-scrollbar>
             </el-scrollbar>
         </div>
         </div>
-            <!-- <el-button type="success" @click="joinBtn">报名</el-button> -->
         <el-drawer v-model="joinDra">
         <el-drawer v-model="joinDra">
             <template #header>
             <template #header>
                 <h4>活动报名</h4>
                 <h4>活动报名</h4>
@@ -278,12 +277,6 @@ const validateInfo = (rule, value, callback) => {
     }
     }
 }
 }
 
 
-watch(() => enrollData.cipher, (newdata) => {
-    codeSearch.value = true
-    teamMembers.value = []
-    enrollData.teamName = ''
-})
-
 onMounted(() => {
 onMounted(() => {
     getListInfo()
     getListInfo()
 })
 })
@@ -297,7 +290,7 @@ function getListInfo() {
     let params = {activityId: infoId.value}
     let params = {activityId: infoId.value}
     proxy.$api.getActInfo(params).then(async res => {
     proxy.$api.getActInfo(params).then(async res => {
         if(res.code === 200) {
         if(res.code === 200) {
-            res.activity.posterSas = !res?.activity.poster ? require('@/assets/img/no-poster-cn.png') : res?.activity.url + res?.activity.poster + '?' + res?.activity.sas
+            res.activity.posterSas = !res?.activity.poster ? require('@/assets/img/no-poster-cn.jpg') : res?.activity.url + res?.activity.poster + '?' + res?.activity.sas
             res?.activity.attachment.forEach(item => {
             res?.activity.attachment.forEach(item => {
                 item.urlShow = res?.activity.url + item.url + '?' + res?.activity.sas
                 item.urlShow = res?.activity.url + item.url + '?' + res?.activity.sas
             })
             })
@@ -359,10 +352,12 @@ function getEnroll() {
     proxy.$api.teaContest(params).then(res => {
     proxy.$api.teaContest(params).then(res => {
         if(res?.enroll) {
         if(res?.enroll) {
             registered.value = 1
             registered.value = 1
+            contestStep.value = (!contestStep.value && registered.value === 1 && contest.value.upload.actState === 'going') ? 1 : contestStep.value
             return
             return
         }
         }
         if(registered.value != 3 && actInfo.value?.scope != 'school') {
         if(registered.value != 3 && actInfo.value?.scope != 'school') {
             registered.value = schoolList.length ? (res.code === 200 ? 1 : 0) : 2
             registered.value = schoolList.length ? (res.code === 200 ? 1 : 0) : 2
+            contestStep.value = (!contestStep.value && registered.value === 1 && contest.value.upload.actState === 'going') ? 1 : contestStep.value
         }
         }
     }).finally(() => {
     }).finally(() => {
     })
     })
@@ -492,9 +487,10 @@ function signContest() {
                         message: '报名成功'
                         message: '报名成功'
                     })
                     })
                     registered.value = 1
                     registered.value = 1
+                    contestStep.value = (!contestStep.value && contest.value.upload.actState === 'going') ? 1 : contestStep.value
                     joinDra.value = false
                     joinDra.value = false
                     break
                     break
-                default: 
+                default:
                     ElMessage({
                     ElMessage({
                         type: 'error',
                         type: 'error',
                         message: '报名失败'
                         message: '报名失败'
@@ -508,14 +504,6 @@ function signContest() {
     })
     })
 }
 }
 
 
-function joinBtn() {
-    ElMessageBox.confirm('确认报名该活动吗?').then(() => {
-        ElMessage({
-            type: 'success',
-            message: '报名成功'
-        })
-    })
-}
 function openDraw() {
 function openDraw() {
     if(registered.value === 1) {
     if(registered.value === 1) {
         return
         return
@@ -550,6 +538,13 @@ async function onPreview(item) {
         previewStatus.value = true
         previewStatus.value = true
     }
     }
 }
 }
+
+watch(() => enrollData.cipher, (newdata) => {
+    codeSearch.value = true
+    teamMembers.value = []
+    enrollData.teamName = ''
+})
+
 </script>
 </script>
 
 
 <style scoped lang="less">
 <style scoped lang="less">

+ 2 - 2
Contest/contest.client/src/view/homepage/HomePage.vue

@@ -98,7 +98,7 @@ onMounted(() => {
     })
     })
     if(!carousel.value.length) {
     if(!carousel.value.length) {
         carousel.value.push({
         carousel.value.push({
-            img: require('@/assets/img/no-poster-cn.png'),
+            img: require('@/assets/img/no-poster-cn.jpg'),
             title: '醍摩豆',
             title: '醍摩豆',
             subtitle: ''
             subtitle: ''
         })
         })
@@ -128,7 +128,7 @@ function getActList() {
     proxy.$api.getActivityList(params).then(res => {
     proxy.$api.getActivityList(params).then(res => {
         if(res.activities) {
         if(res.activities) {
             res.activities.forEach(item => {
             res.activities.forEach(item => {
-                item.posterShow = !item.poster ? require('@/assets/img/no-poster-cn.png') : item.url + item.poster + '?' + item.sas
+                item.posterShow = !item.poster ? require('@/assets/img/no-poster-cn.jpg') : item.url + item.poster + '?' + item.sas
                 lessonList.value.push(item)
                 lessonList.value.push(item)
             })
             })
             lessonList.value = lessonList.value.sort((a, b) => b.createTime - a.createTime)
             lessonList.value = lessonList.value.sort((a, b) => b.createTime - a.createTime)

+ 43 - 4
Contest/contest.client/src/view/myactivity/MyActivity.vue

@@ -126,10 +126,10 @@
                                                 <el-button size="small" type="danger" @click="deleteMem(scope.$index, scope.row)" v-if="isLeader && !scope.row.myself && !scope.row.identity">
                                                 <el-button size="small" type="danger" @click="deleteMem(scope.$index, scope.row)" v-if="isLeader && !scope.row.myself && !scope.row.identity">
                                                     删除
                                                     删除
                                                 </el-button>
                                                 </el-button>
-                                                <el-button size="small" type="primary" v-if="scope.row.myself && scoreData.detailScore.length">
+                                                <el-button size="small" type="primary" @click="viewScore()" v-if="scope.row.myself && scoreData.detailScore.length">
                                                     查看得分
                                                     查看得分
                                                 </el-button>
                                                 </el-button>
-                                                <el-button size="small" @click="exitAct(scope.$index, scope.row)" v-if="scope.row.myself">
+                                                <el-button size="small" @click="exitAct(scope.$index, scope.row)" v-if="scope.row.myself && (contest.sign.actState === 'going' || contest.upload.actState === 'going')">
                                                     退出
                                                     退出
                                                 </el-button>
                                                 </el-button>
                                             </template>
                                             </template>
@@ -280,6 +280,18 @@
                 </span>
                 </span>
                 </template>
                 </template>
         </el-dialog>
         </el-dialog>
+        <el-drawer v-model="scoreDrawer" title="细项得分" size="50%">
+            <el-table :data="scoreRule" row-key="id" default-expand-all>
+                <el-table-column prop="label" label="规则" align="center" width="170" />
+                <el-table-column prop="desc" label="描述" align="center" />
+                <!-- <el-table-column prop="oldScore" label="分值" align="center" width="100" /> -->
+                <el-table-column label="作品分数" align="center" width="150">
+                    <template #default="scope">
+                        <p v-for="(item, index) in scope.row.review" :key="index">{{ item.name }}: {{ item.score }}</p>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-drawer>
     </div>
     </div>
 </template>
 </template>
 
 
@@ -309,13 +321,16 @@ let skModule = ref(true)
 let isLeader = ref(false)
 let isLeader = ref(false)
 let previewStatus = ref(false)
 let previewStatus = ref(false)
 let uploadDia = ref(false)
 let uploadDia = ref(false)
+let scoreDrawer = ref(false)
 let actList = ref([])
 let actList = ref([])
+let ruleTree = ref([])
 let actListShow = ref([])
 let actListShow = ref([])
 let memberData = ref([])
 let memberData = ref([])
 let fileList = ref([])
 let fileList = ref([])
 let uploadList = ref([])
 let uploadList = ref([])
 let modalList = ref([])
 let modalList = ref([])
 let contestScores = ref([])
 let contestScores = ref([])
+let scoreRule = ref([])
 let actInfo = ref({attachment: []})
 let actInfo = ref({attachment: []})
 let contest = ref({})
 let contest = ref({})
 let research = ref({}) //教研
 let research = ref({}) //教研
@@ -369,7 +384,7 @@ function getListInfo(info, index) {
     uploadList.value = []
     uploadList.value = []
     accept.value = ''
     accept.value = ''
     uploadName.value = ''
     uploadName.value = ''
-    scoreData.value = {}
+    scoreData.value = {detailScore: []}
     if(!info.isJoin) return
     if(!info.isJoin) return
     /* loading = ElLoading.service({
     /* loading = ElLoading.service({
         lock: true,
         lock: true,
@@ -379,11 +394,12 @@ function getListInfo(info, index) {
     let params = {activityId: info.id}
     let params = {activityId: info.id}
     proxy.$api.getActInfo(params).then(async res => {
     proxy.$api.getActInfo(params).then(async res => {
         if(res.code === 200) {
         if(res.code === 200) {
-            res.activity.posterSas = !res?.activity.poster ? require('@/assets/img/no-poster-cn.png') : res?.activity.url + res?.activity.poster + '?' + res?.activity.sas
+            res.activity.posterSas = !res?.activity.poster ? require('@/assets/img/no-poster-cn.jpg') : res?.activity.url + res?.activity.poster + '?' + res?.activity.sas
             res?.activity.attachment.forEach(item => {
             res?.activity.attachment.forEach(item => {
                 item.urlShow = res?.activity.url + item.url + '?' + res?.activity.sas
                 item.urlShow = res?.activity.url + item.url + '?' + res?.activity.sas
             })
             })
             actInfo.value = res.activity
             actInfo.value = res.activity
+            ruleTree.value = res.reviewRule?.trees || []
             if(res.contest?.upload.type === 'file') accept.value = res.contest?.upload.fileType.map(item => '.' + item).join()
             if(res.contest?.upload.type === 'file') accept.value = res.contest?.upload.fileType.map(item => '.' + item).join()
             let nowDate = new Date().getTime()
             let nowDate = new Date().getTime()
             res.contest.modules.forEach((item, index) => {
             res.contest.modules.forEach((item, index) => {
@@ -504,6 +520,29 @@ function changeLeader(index, data) {
     })
     })
 }
 }
 
 
+function viewScore() {
+    scoreRule.value = getRuleScore(ruleTree.value)
+    scoreDrawer.value = true
+}
+function getRuleScore(arr) {
+    arr.forEach((item, index) => {
+        item.review = []
+        scoreData.value.detailScore.forEach((detScore, index) => {
+            let scoreInfo = detScore.detailScore.find(score => score.id === item.id)
+            if(scoreInfo) {
+                item.review.push({
+                    name: `专家${index + 1}`,
+                    score: scoreInfo.score
+                })
+            }
+        })
+        if(item?.children.length) {
+            getRuleScore(item.children)
+        }
+    })
+    return arr
+}
+
 function exitAct(index, info) {
 function exitAct(index, info) {
     if(info.identity) {
     if(info.identity) {
         ElMessage({
         ElMessage({

+ 1 - 1
Contest/contest.client/src/view/myactivity/MyReview.vue

@@ -263,7 +263,7 @@ function getListInfo(info, index) {
     actInfo.value = {attachment: []}
     actInfo.value = {attachment: []}
     proxy.$api.getActInfo({activityId: info.activityId}).then(res => {
     proxy.$api.getActInfo({activityId: info.activityId}).then(res => {
         if(res.code === 200) {
         if(res.code === 200) {
-            res.activity.posterSas = !res?.activity.poster ? require('@/assets/img/no-poster-cn.png') : res?.activity.url + res?.activity.poster + '?' + res?.activity.sas
+            res.activity.posterSas = !res?.activity.poster ? require('@/assets/img/no-poster-cn.jpg') : res?.activity.url + res?.activity.poster + '?' + res?.activity.sas
             res?.activity.attachment.forEach(item => {
             res?.activity.attachment.forEach(item => {
                 item.urlShow = res?.activity.url + item.url + '?' + res?.activity.sas
                 item.urlShow = res?.activity.url + item.url + '?' + res?.activity.sas
             })
             })