|
@@ -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({
|