|
@@ -1,57 +1,58 @@
|
|
|
<template>
|
|
|
- <div class="pb_content">
|
|
|
- <div class="pb_head">
|
|
|
+ <div class="pb_content" style="width: 100%">
|
|
|
+ <div
|
|
|
+ class="pb_head"
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: nowrap;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ "
|
|
|
+ >
|
|
|
<div>
|
|
|
<span>评分管理</span>
|
|
|
</div>
|
|
|
+ <div @click="goTo('/eventCenter?steps=' + '1')" class="clear">返回</div>
|
|
|
</div>
|
|
|
<div class="touTop" v-if="CourseType.length > 0">
|
|
|
<div class="touLeft">
|
|
|
- <!-- <div>
|
|
|
- <div>案例分类</div>
|
|
|
- <el-select v-model="anliType" clearable>
|
|
|
- <el-option value="0" label="所有分类"></el-option>
|
|
|
- </el-select>
|
|
|
- </div> -->
|
|
|
- <div>
|
|
|
- <div
|
|
|
- class="all_choose"
|
|
|
- v-for="(item, index) in CourseType[0]"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- <span>{{ item.name }}</span>
|
|
|
- <el-select
|
|
|
- v-model="courseTypeId[item.id]"
|
|
|
- placeholder="请选择"
|
|
|
- @change="search"
|
|
|
+ <div class="sTop">
|
|
|
+ <div>
|
|
|
+ <div
|
|
|
+ class="all_choose"
|
|
|
+ v-for="(item, index) in CourseType[0]"
|
|
|
+ :key="index"
|
|
|
>
|
|
|
- <el-option label="全部" value="1">全部</el-option>
|
|
|
- <el-option
|
|
|
- v-for="item1 in CourseTypeJson[item.id]"
|
|
|
- :key="item1.id"
|
|
|
- :label="item1.name"
|
|
|
- :value="item1.id"
|
|
|
+ <span>{{ item.name }}</span>
|
|
|
+ <el-select
|
|
|
+ v-model="courseTypeId[item.id]"
|
|
|
+ placeholder="请选择"
|
|
|
+ @change="search"
|
|
|
>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
+ <el-option label="全部" value="1">全部</el-option>
|
|
|
+ <el-option
|
|
|
+ v-for="item1 in CourseTypeJson[item.id]"
|
|
|
+ :key="item1.id"
|
|
|
+ :label="item1.name"
|
|
|
+ :value="item1.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <!-- <div class="anliCss">
|
|
|
- <div>案例筛选</div>
|
|
|
- <el-select v-model="anliBox" clearable @change="search">
|
|
|
- <el-option value="" label="全部"></el-option>
|
|
|
- <el-option value="1" label="经典案例"></el-option>
|
|
|
- <el-option value="0" label="平台案例"></el-option>
|
|
|
- </el-select>
|
|
|
- </div> -->
|
|
|
+ <div @click="clear" class="clear">重置</div>
|
|
|
</div>
|
|
|
- <div @click="clear" class="clear">重置</div>
|
|
|
<div class="aName">
|
|
|
+ <div class="search" @click="search">
|
|
|
+ <img src="../../../assets/icon/search.png" alt="" />
|
|
|
+ </div>
|
|
|
<el-input
|
|
|
v-model="anliName"
|
|
|
auto-complete="off"
|
|
|
placeholder="请输入案例名称"
|
|
|
- @input="search"
|
|
|
></el-input>
|
|
|
+ <!-- @input="search" -->
|
|
|
</div>
|
|
|
</div>
|
|
|
<!-- 导出所有评分数据 -->
|
|
@@ -93,14 +94,19 @@
|
|
|
:header-cell-style="{ background: '#f1f1f1', fontSize: '17px' }"
|
|
|
:row-class-name="tableRowClassName"
|
|
|
>
|
|
|
- <el-table-column label="排名" min-width="10" align="center">
|
|
|
+ <el-table-column label="序号" min-width="10" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
|
{{ (page - 1) * 10 + scope.$index + 1 }}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="创建人" min-width="10" align="center">
|
|
|
+ <el-table-column
|
|
|
+ label="创建人"
|
|
|
+ min-width="10"
|
|
|
+ align="center"
|
|
|
+ v-if="tType == 0"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div class="userImg">
|
|
|
<div>
|
|
@@ -116,27 +122,87 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column label="评委" min-width="10" align="center">
|
|
|
+ <el-table-column
|
|
|
+ label="我的评分"
|
|
|
+ min-width="10"
|
|
|
+ align="center"
|
|
|
+ v-if="tType == 2"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
- <div>{{ scope.row.scoreName ? scope.row.scoreName : "-" }}</div>
|
|
|
+ <div>{{ scope.row.ownScore ? scope.row.ownScore : "-" }}</div>
|
|
|
</template>
|
|
|
- </el-table-column> -->
|
|
|
- <el-table-column label="评委1" min-width="10" align="center">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="所属单位"
|
|
|
+ min-width="10"
|
|
|
+ align="center"
|
|
|
+ v-if="tType == 0"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
- <div>{{ scope.row.firstPw ? scope.row.firstPw : "-" }}</div>
|
|
|
+ <div>
|
|
|
+ {{ scope.row.school ? scope.row.school : "暂无单位" }}
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="评委2" min-width="10" align="center">
|
|
|
+ <el-table-column
|
|
|
+ label="评委姓名/分数"
|
|
|
+ min-width="10"
|
|
|
+ align="center"
|
|
|
+ v-if="tType == 0"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
- <div>{{ scope.row.secondPw ? scope.row.secondPw : "-" }}</div>
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in scope.row.scoreList"
|
|
|
+ :key="index"
|
|
|
+ v-if="scope.row.scoreList.length > 0"
|
|
|
+ >
|
|
|
+ {{ item.name + "/" + item.score }}
|
|
|
+ </div>
|
|
|
+ <div v-else>"-"</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="评分结果" min-width="10" align="center">
|
|
|
+ <!-- <el-table-column
|
|
|
+ label="评委姓名/分数"
|
|
|
+ min-width="10"
|
|
|
+ align="center"
|
|
|
+ v-if="tType == 0"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div>
|
|
|
+ {{
|
|
|
+ scope.row.secondPw
|
|
|
+ ? scope.row.secondPw.name + "/" + scope.row.secondPw.score
|
|
|
+ : "-"
|
|
|
+ }}
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column> -->
|
|
|
+ <el-table-column
|
|
|
+ label="平均得分"
|
|
|
+ min-width="10"
|
|
|
+ align="center"
|
|
|
+ v-if="tType == 0"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{ scope.row.sum ? scope.row.sum : "-" }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="所获奖项" min-width="10" align="center">
|
|
|
+ <el-table-column
|
|
|
+ label="案例分类"
|
|
|
+ min-width="20"
|
|
|
+ align="center"
|
|
|
+ v-if="tType == 2"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div>{{ scope.row.typename ? scope.row.typename : "-" }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!-- <el-table-column
|
|
|
+ label="所获奖项"
|
|
|
+ min-width="10"
|
|
|
+ align="center"
|
|
|
+ v-if="tType == 2"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
|
{{
|
|
@@ -154,17 +220,58 @@
|
|
|
}}
|
|
|
</div>
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="时间" min-width="10" align="center">
|
|
|
+ </el-table-column> -->
|
|
|
+ <el-table-column
|
|
|
+ label="时间"
|
|
|
+ min-width="10"
|
|
|
+ align="center"
|
|
|
+ v-if="tType == 2"
|
|
|
+ >
|
|
|
<template slot-scope="scope">
|
|
|
<div>{{ scope.row.scoreTime ? scope.row.scoreTime : "-" }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" min-width="20">
|
|
|
+ <el-table-column label="操作" min-width="20" v-if="tType == 2">
|
|
|
<template slot-scope="scope">
|
|
|
<div class="tableButton">
|
|
|
- <div @click="lookDetail(scope.row.id)">案例详情</div>
|
|
|
- <div @click="openScore(scope.row, 1)">立即评分</div>
|
|
|
+ <div
|
|
|
+ v-if="tType == 0"
|
|
|
+ @click="
|
|
|
+ goTo(
|
|
|
+ '/anliDetail?aid=' +
|
|
|
+ scope.row.id +
|
|
|
+ '&userid=' +
|
|
|
+ userid +
|
|
|
+ '&oid=' +
|
|
|
+ oid +
|
|
|
+ '&org=' +
|
|
|
+ org +
|
|
|
+ '&tType=' +
|
|
|
+ tType
|
|
|
+ )
|
|
|
+ "
|
|
|
+ >
|
|
|
+ 案例详情
|
|
|
+ </div>
|
|
|
+ <!-- <div @click="openScore(scope.row, 1)">立即评分</div> -->
|
|
|
+ <div
|
|
|
+ @click="
|
|
|
+ goTo(
|
|
|
+ '/anliDetail?aid=' +
|
|
|
+ scope.row.id +
|
|
|
+ '&userid=' +
|
|
|
+ userid +
|
|
|
+ '&oid=' +
|
|
|
+ oid +
|
|
|
+ '&org=' +
|
|
|
+ org +
|
|
|
+ '&tType=' +
|
|
|
+ tType
|
|
|
+ )
|
|
|
+ "
|
|
|
+ >
|
|
|
+ 立即评分
|
|
|
+ </div>
|
|
|
<!-- <div @click="openScore(scope.row, 2)">推荐</div> -->
|
|
|
</div>
|
|
|
</template>
|
|
@@ -315,6 +422,10 @@
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ userid: this.$route.query.userid,
|
|
|
+ oid: this.$route.query.oid,
|
|
|
+ org: this.$route.query.org,
|
|
|
+ tType: this.$route.query.type,
|
|
|
page: 1,
|
|
|
total: 0,
|
|
|
// anliType: "",
|
|
@@ -469,7 +580,7 @@ export default {
|
|
|
for (var i = 0; i < this.CourseType[0].length; i++) {
|
|
|
if (this.courseTypeId[this.CourseType[0][i].id] == "1") {
|
|
|
// typeE.push(this.CourseType[0][i].id);
|
|
|
- typeE = []
|
|
|
+ typeE = [];
|
|
|
} else if (this.courseTypeId[this.CourseType[0][i].id] != "") {
|
|
|
if (this.CourseType[0][i].name == "案例组别") {
|
|
|
typea = this.courseTypeId[this.CourseType[0][i].id];
|
|
@@ -526,6 +637,7 @@ export default {
|
|
|
for (var j = 0; j < p.length; j++) {
|
|
|
let sum = 0;
|
|
|
let isScore = 0;
|
|
|
+ p[j].scoreList = [];
|
|
|
for (var i = 0; i < scoreList.length; i++) {
|
|
|
if (p[j].id == scoreList[i].rid) {
|
|
|
var point = JSON.parse(scoreList[i].score);
|
|
@@ -535,13 +647,23 @@ export default {
|
|
|
var sumScore = Math.round((a + b + c) / 3);
|
|
|
sum += sumScore;
|
|
|
isScore++;
|
|
|
- if (!p[j].firstPw) {
|
|
|
- p[j].firstPw = sumScore;
|
|
|
- } else {
|
|
|
- if (!p[j].secondPw) {
|
|
|
- p[j].secondPw = sumScore;
|
|
|
+ if (scoreList[i].scorer == this.userid) {
|
|
|
+ if (!p[j].ownScore) {
|
|
|
+ p[j].ownScore = sumScore;
|
|
|
}
|
|
|
}
|
|
|
+ p[j].scoreList.push({
|
|
|
+ name: scoreList[i].scoreName,
|
|
|
+ score: sumScore,
|
|
|
+ });
|
|
|
+ // else {
|
|
|
+ // if (!p[j].secondPw) {
|
|
|
+ // p[j].secondPw = {
|
|
|
+ // score: sumScore,
|
|
|
+ // name: scoreList[i].scoreName,
|
|
|
+ // };
|
|
|
+ // }
|
|
|
+ // }
|
|
|
}
|
|
|
}
|
|
|
p[j].sum = isScore == 0 ? 0 : (sum / isScore).toFixed(2);
|
|
@@ -553,68 +675,6 @@ export default {
|
|
|
console.error(err);
|
|
|
});
|
|
|
},
|
|
|
- // getAnliList(rc) {
|
|
|
- // this.isLoading = true;
|
|
|
- // var typeE = [];
|
|
|
- // var typea, typeb, typec, typed;
|
|
|
- // for (var i = 0; i < this.CourseType[0].length; i++) {
|
|
|
- // if (this.courseTypeId[this.CourseType[0][i].id] == "1") {
|
|
|
- // typeE.push(this.CourseType[0][i].id);
|
|
|
- // } else if (this.courseTypeId[this.CourseType[0][i].id] != "") {
|
|
|
- // if (this.CourseType[0][i].name == "案例组别") {
|
|
|
- // typea = this.courseTypeId[this.CourseType[0][i].id];
|
|
|
- // } else if (this.CourseType[0][i].name == "年级") {
|
|
|
- // typeb = this.courseTypeId[this.CourseType[0][i].id];
|
|
|
- // } else if (this.CourseType[0][i].name == "学科") {
|
|
|
- // typec = this.courseTypeId[this.CourseType[0][i].id];
|
|
|
- // }
|
|
|
- // this.courseTypeSon.push(this.courseTypeId[this.CourseType[0][i].id]);
|
|
|
- // }
|
|
|
- // }
|
|
|
- // let params = {
|
|
|
- // typea: typea != undefined ? typea : "",
|
|
|
- // typeb: typeb != undefined ? typeb : "",
|
|
|
- // typec: typec != undefined ? typec : "",
|
|
|
- // typed: typed != undefined ? typed : "",
|
|
|
- // typeE: typeE.join(","),
|
|
|
- // cn: this.anliBox == "" ? 0 : this.anliBox,
|
|
|
- // cid: rc ? rc : "",
|
|
|
- // title: this.anliName,
|
|
|
- // page: this.page,
|
|
|
- // };
|
|
|
- // this.ajax
|
|
|
- // .get(this.$store.state.api + "selectPoint", params)
|
|
|
- // .then((res) => {
|
|
|
- // this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
|
|
|
- // this.tableData = res.data[0];
|
|
|
- // for (var i = 0; i < this.tableData.length; i++) {
|
|
|
- // this.tableData[i].info = JSON.parse(this.tableData[i].info);
|
|
|
- // this.tableData[i].overview = JSON.parse(this.tableData[i].overview);
|
|
|
- // this.tableData[i].process = JSON.parse(this.tableData[i].process);
|
|
|
- // this.tableData[i].proact = JSON.parse(this.tableData[i].proact);
|
|
|
- // this.tableData[i].proexc = JSON.parse(this.tableData[i].proexc);
|
|
|
- // this.tableData[i].results = JSON.parse(this.tableData[i].results);
|
|
|
- // if (this.tableData[i].score != null) {
|
|
|
- // var point = JSON.parse(this.tableData[i].score);
|
|
|
- // var a = parseInt(point.first);
|
|
|
- // var b = parseInt(point.second);
|
|
|
- // var c = parseInt(point.third);
|
|
|
- // // var d = parseInt(point.fourth);
|
|
|
- // // var e = parseInt(point.fivth);
|
|
|
- // // var sumScore = Math.round((a + b + c + d + e) / 5);
|
|
|
- // var sumScore = Math.round((a + b + c) / 3);
|
|
|
- // this.tableData[i].sum = sumScore;
|
|
|
- // }
|
|
|
- // var a = JSON.parse(JSON.stringify(this.tableData));
|
|
|
- // a.sort((item1, item2) => item2.sum - item1.sum);
|
|
|
- // this.tableData = a;
|
|
|
- // }
|
|
|
- // this.isLoading = false;
|
|
|
- // })
|
|
|
- // .catch((err) => {
|
|
|
- // console.error(err);
|
|
|
- // });
|
|
|
- // },
|
|
|
selectType(rc) {
|
|
|
this.ajax
|
|
|
.get(this.$store.state.api + "selectMatTypeYT")
|
|
@@ -642,7 +702,7 @@ export default {
|
|
|
},
|
|
|
getAdmin() {
|
|
|
let params = {
|
|
|
- uid: this.$store.state.userInfo.userid,
|
|
|
+ uid: this.userid,
|
|
|
cn: "",
|
|
|
page: this.page,
|
|
|
};
|
|
@@ -656,7 +716,7 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
getReviewerOrAdmin() {
|
|
|
- if (this.$store.state.userInfo.type == 6) {
|
|
|
+ if (this.tType == 6) {
|
|
|
this.getUser();
|
|
|
} else {
|
|
|
this.selectType();
|
|
@@ -664,7 +724,7 @@ export default {
|
|
|
},
|
|
|
getUser() {
|
|
|
let params = {
|
|
|
- uid: this.$store.state.userInfo.userid,
|
|
|
+ uid: this.userid,
|
|
|
};
|
|
|
this.ajax
|
|
|
.get(this.$store.state.api + "selectCaseUser", params)
|
|
@@ -691,7 +751,7 @@ export default {
|
|
|
getScore(id, t) {
|
|
|
let params = {
|
|
|
rid: id,
|
|
|
- suser: this.$store.state.userInfo.userid,
|
|
|
+ suser: this.userid,
|
|
|
};
|
|
|
this.ajax
|
|
|
.get(this.$store.state.api + "selectScore", params)
|
|
@@ -747,7 +807,7 @@ export default {
|
|
|
let params = [
|
|
|
{
|
|
|
rid: this.scoreDetail[0].id,
|
|
|
- suser: this.$store.state.userInfo.userid,
|
|
|
+ suser: this.userid,
|
|
|
s: JSON.stringify(this.scoreDetail[0].scoreAll),
|
|
|
},
|
|
|
];
|
|
@@ -804,9 +864,19 @@ export default {
|
|
|
console.error(err);
|
|
|
});
|
|
|
},
|
|
|
- lookDetail(aid) {
|
|
|
- window.open(window.origin + "/#/anliDetail?aid=" + aid);
|
|
|
- },
|
|
|
+ // lookDetail(aid) {
|
|
|
+ // window.open(
|
|
|
+ // window.origin +
|
|
|
+ // "/#/anliDetail?aid=" +
|
|
|
+ // aid +
|
|
|
+ // "&userid=" +
|
|
|
+ // this.$store.state.userInfo.userid +
|
|
|
+ // "&oid=" +
|
|
|
+ // this.$store.state.userInfo.oid +
|
|
|
+ // "&tType=" +
|
|
|
+ // this.$store.state.userInfo.type
|
|
|
+ // );
|
|
|
+ // },
|
|
|
exportAllScore() {
|
|
|
this.ajax
|
|
|
.get(this.$store.state.api + "selectAllScore")
|
|
@@ -866,7 +936,7 @@ export default {
|
|
|
.then((res) => {
|
|
|
var scoreList = res.data[0];
|
|
|
let params = {
|
|
|
- uid: this.$store.state.userInfo.userid,
|
|
|
+ uid: this.userid,
|
|
|
};
|
|
|
this.ajax
|
|
|
.get(this.$store.state.api + "selectScoreByUid", params)
|
|
@@ -1017,29 +1087,31 @@ export default {
|
|
|
flex-wrap: nowrap;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
- width: 95%;
|
|
|
+ width: 94%;
|
|
|
}
|
|
|
.touLeft {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
flex-wrap: nowrap;
|
|
|
align-items: baseline;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 100%;
|
|
|
}
|
|
|
-.touLeft > div:nth-child(1) {
|
|
|
+.sTop > div:nth-child(1) {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
flex-wrap: wrap;
|
|
|
align-items: center;
|
|
|
}
|
|
|
|
|
|
-.touLeft > div > div {
|
|
|
+.sTop > div > div {
|
|
|
margin: 0 10px 0 0;
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
align-items: center;
|
|
|
}
|
|
|
|
|
|
-.touLeft > div > div {
|
|
|
+.sTop > div > div {
|
|
|
margin-right: 10px;
|
|
|
}
|
|
|
|
|
@@ -1237,6 +1309,7 @@ export default {
|
|
|
border-radius: 5px;
|
|
|
line-height: 35px;
|
|
|
cursor: pointer;
|
|
|
+ font-size: 16px;
|
|
|
}
|
|
|
.anliCss {
|
|
|
display: flex;
|
|
@@ -1429,11 +1502,34 @@ export default {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
-.aName {
|
|
|
- margin-left: 10px;
|
|
|
-}
|
|
|
|
|
|
.aName >>> .el-input__inner {
|
|
|
width: 300px;
|
|
|
}
|
|
|
+
|
|
|
+.sTop {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: nowrap;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+
|
|
|
+.aName {
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+
|
|
|
+.search {
|
|
|
+ width: 25px;
|
|
|
+ position: absolute;
|
|
|
+ top: 7px;
|
|
|
+ right: 10px;
|
|
|
+ z-index: 9;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+
|
|
|
+.search > img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
</style>
|