parent
89383052c3
commit
e4e99fc2a5
@ -1,24 +1,373 @@
|
||||
<template>
|
||||
<div class="score-record-div">
|
||||
|
||||
|
||||
<div class="search-div">
|
||||
<div class="task-search-div">
|
||||
<div class="search-title">评价任务</div>
|
||||
<div class="search-dom">
|
||||
<a-select :value="taskName" style="width: 200px" @change="taskChange">
|
||||
<a-select-option v-for="item in taskList" :key="item.task_id + '-' + item.task_name">
|
||||
{{ item.task_name }}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="time-search-div">
|
||||
<DateChoose @flushDate="flushDate" :begin_date="begin_date" :end_date="end_date"></DateChoose>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="showLoading" class="show-loading-div">
|
||||
<a-spin/>
|
||||
</div>
|
||||
<div v-if="!showLoading && recordList.length == 0" class="no-data-div">
|
||||
<a-empty/>
|
||||
</div>
|
||||
<div v-if="!showLoading && recordList.length > 0" class="record-list-div">
|
||||
<div class="line-style">
|
||||
<a-icon class="line-icon-style" type="down" :style="{ fontSize: '16px', color: '#31a8fa' }"/>
|
||||
</div>
|
||||
<div class="record-row-div" v-for="(item,index) in recordList" :key="item.score_id + '-' + index">
|
||||
<div :class="'record-item ' + (index%2 == 0?'':' transform-item')">
|
||||
<div v-if="index%2 == 0" class="message-icon-div">
|
||||
<img src="./image/messageIcon.png"/>
|
||||
</div>
|
||||
<div v-if="index%2 == 1" class="message-time-div">
|
||||
{{item.last_updated_time}}
|
||||
</div>
|
||||
<div class="message-info-div">
|
||||
<div>
|
||||
<span style="color: #8400FF">{{'[' + item.class_name + ']'}}</span>
|
||||
<span style="color: #808000">{{'[' + item.be_evaluated_person_name + ']'}}</span>
|
||||
同学
|
||||
<span style="color: #0000FF">{{'“' + item.plandetail_name + '”'}}</span>
|
||||
被
|
||||
<span :class="parseInt(item.score) == 0?'default-style':(parseInt(item.score) > 0?'add-style':'reduce-style')">
|
||||
{{(parseInt(item.score) == 0 ? '[评分' : (parseInt(item.score) > 0 ? '[加分' : '[减分')) + item.score + ']'}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="index%2 == 0" class="message-time-div">
|
||||
{{item.last_updated_time}}
|
||||
</div>
|
||||
<div v-if="index%2 == 1" class="message-icon-div transform-div">
|
||||
<img src="./image/messageIcon.png"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="!showLoading && recordList.length > 0" class="page-dom-div">
|
||||
<a-icon type="left-circle" title="上一页"
|
||||
:class="'page-icon-dom '+ (pageNumber == 1?'cannot-click':'can-click')"
|
||||
v-on:click="changePage('previous')"/>
|
||||
<span class="total-num-span">共{{totolNum}}条</span>
|
||||
<a-icon type="right-circle" title="下一页"
|
||||
:class="'page-icon-dom '+ (pageNumber == totalPage?'cannot-click':'can-click')"
|
||||
v-on:click="changePage('next')"/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import interConfig from './interConfig';
|
||||
import {Select, Spin, Empty, Icon} from 'ant-design-vue';
|
||||
import DateChoose from '../common/dateChoose.vue';
|
||||
import moment from 'moment';
|
||||
export default{
|
||||
data(){
|
||||
return {}
|
||||
return {
|
||||
showLoading: true,
|
||||
taskId: "",//当前任务ID
|
||||
taskName: "",//当前任务名称
|
||||
taskList: [],//任务列表
|
||||
begin_date: null,
|
||||
end_date: null,
|
||||
pageNumber: 1,
|
||||
pageSize: 12,
|
||||
totolNum: 0,
|
||||
totalPage: 0,
|
||||
recordList: [],
|
||||
currentDate:"",
|
||||
}
|
||||
},
|
||||
mounted(){
|
||||
this.getRecordParam();
|
||||
},
|
||||
methods: {
|
||||
getNowTime: function () {
|
||||
let _this = this;
|
||||
let p = new Promise(function (resolve, reject) {
|
||||
_this.InterfaceConfig.callInterface([{
|
||||
url: interConfig.getNowTime.url,
|
||||
params: {},
|
||||
method: interConfig.getNowTime.method,
|
||||
isTestLogin: interConfig.getNowTime.isTestLogin,
|
||||
}], (result) => {
|
||||
let resData = result[0].data;
|
||||
if (result[0].status === 200) {
|
||||
if (resData.code === 2000) {
|
||||
let year = resData.data.year;
|
||||
let month = resData.data.month;
|
||||
let day = resData.data.day;
|
||||
resolve({
|
||||
begin_date: moment(year + "-" + month + "-01"),
|
||||
end_date: moment(year + "-" + month + "-" + day),
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
return p;
|
||||
},
|
||||
getTaskList: function () {
|
||||
let _this = this;
|
||||
let p = new Promise(function (resolve, reject) {
|
||||
let param = {
|
||||
org_id: _this.BaseConfig.person_info_my.bureau_id,
|
||||
}
|
||||
_this.InterfaceConfig.callInterface([{
|
||||
url: interConfig.getClassListByTask.url,
|
||||
params: param,
|
||||
method: interConfig.getClassListByTask.method,
|
||||
isTestLogin: interConfig.getClassListByTask.isTestLogin,
|
||||
}], (result) => {
|
||||
let resData = result[0].data;
|
||||
if (result[0].status === 200) {
|
||||
if (resData.code === 2000) {
|
||||
resolve(resData.data);
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
return p;
|
||||
},
|
||||
getRecordParam: function () {
|
||||
//数据汇总前的参数获取
|
||||
let _this = this;
|
||||
this.getNowTime().then(function (data) {
|
||||
_this.begin_date = data.begin_date;
|
||||
_this.end_date = data.end_date;
|
||||
return _this.getTaskList();
|
||||
}).then(function (data) {
|
||||
_this.taskList = data.task_list;
|
||||
if (_this.taskList && _this.taskList.length > 0) {
|
||||
_this.taskId = _this.taskList[0].task_id;
|
||||
_this.taskName = _this.taskList[0].task_name;
|
||||
}
|
||||
//是否已汇总
|
||||
let gather = data.gather;
|
||||
if (gather && gather.gather_flag == 1 && gather.gather_info == 'true') {
|
||||
_this.begin_date = moment(gather.begin_time.split(" ")[0]);
|
||||
_this.end_date = moment(gather.end_time.split(" ")[0]);
|
||||
}
|
||||
_this.listSuperfusionTaskScore();
|
||||
}).catch(function (reason) {
|
||||
console.log(reason)
|
||||
})
|
||||
},
|
||||
listSuperfusionTaskScore: function () {
|
||||
this.showLoading = true;
|
||||
let param = {
|
||||
org_id: this.BaseConfig.person_info_my.bureau_id,
|
||||
task_id: this.taskId,
|
||||
begin_date: moment(this.begin_date).format("YYYY-MM-DD"),
|
||||
end_date: moment(this.end_date).format("YYYY-MM-DD"),
|
||||
page_number: this.pageNumber,
|
||||
page_size: this.pageSize,
|
||||
};
|
||||
this.InterfaceConfig.callInterface([{
|
||||
url: interConfig.listSuperfusionTaskScore.url,
|
||||
params: param,
|
||||
method: interConfig.listSuperfusionTaskScore.method,
|
||||
isTestLogin: interConfig.listSuperfusionTaskScore.isTestLogin,
|
||||
}], (result) => {
|
||||
this.showLoading = false;
|
||||
let resData = result[0].data;
|
||||
if (result[0].status === 200) {
|
||||
if (resData.code === 2000) {
|
||||
this.recordList = resData.data.list;
|
||||
this.totolNum = resData.data.total_row;
|
||||
this.totalPage = resData.data.total_page;
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
taskChange: function (value) {
|
||||
let taskId = value.substring(0, value.indexOf('-'));
|
||||
if (parseInt(this.taskId) != parseInt(taskId)) {
|
||||
this.taskId = taskId;
|
||||
this.taskName = value.substring(value.indexOf('-') + 1);
|
||||
}
|
||||
},
|
||||
flushDate: function (param) {
|
||||
this.begin_date = param.beginDate;
|
||||
this.end_date = param.endDate;
|
||||
this.listSuperfusionTaskScore();
|
||||
},
|
||||
changePage: function (type) {
|
||||
if (type == 'previous') {
|
||||
if (this.pageNumber == 1) {
|
||||
return;
|
||||
}
|
||||
this.pageNumber--;
|
||||
} else if (type == 'next') {
|
||||
if (this.pageNumber == this.totalPage) {
|
||||
return;
|
||||
}
|
||||
this.pageNumber++;
|
||||
}
|
||||
this.listSuperfusionTaskScore();
|
||||
},
|
||||
},
|
||||
components: {
|
||||
ASelect: Select,
|
||||
ASelectOption: Select.Option,
|
||||
DateChoose,
|
||||
ASpin: Spin,
|
||||
AEmpty: Empty,
|
||||
AIcon: Icon
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.score-record-div{
|
||||
.score-record-div {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.search-div {
|
||||
width: 100%;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
.task-search-div {
|
||||
width: 50%;
|
||||
display: flex;
|
||||
.search-title {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 13px;
|
||||
}
|
||||
.search-dom {
|
||||
width: calc(100% - 100px);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
.time-search-div {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
.record-list-div {
|
||||
width: 100%;
|
||||
min-height: 20rem;
|
||||
position: relative;
|
||||
display: flex;
|
||||
/*flex-direction: column;*/
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
.line-style {
|
||||
/*min-height: 20rem;*/
|
||||
width: 1px;
|
||||
height: 100%;
|
||||
background-color: #31a8fa;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
.line-icon-style {
|
||||
position: absolute;
|
||||
bottom: -8px;
|
||||
left: -7.5px;
|
||||
}
|
||||
}
|
||||
.record-row-div {
|
||||
width: 50%;
|
||||
padding: 0 0.5rem;
|
||||
min-height: 2rem;
|
||||
margin-top: 0.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.record-item {
|
||||
width: 100%;
|
||||
min-height: 2rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.message-icon-div {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.transform-div {
|
||||
transform: rotateY(180deg); /* 水平镜像翻转 */
|
||||
}
|
||||
.message-info-div {
|
||||
width: 50%;
|
||||
margin-left: 0.5rem;
|
||||
padding: 0.5rem;
|
||||
background-color: #f2f2f2;
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
font-size: 12px;
|
||||
.add-style {
|
||||
color: #a5c94b;
|
||||
}
|
||||
.reduce-style {
|
||||
color: #fc012c;
|
||||
}
|
||||
}
|
||||
.message-time-div {
|
||||
margin-left: 0.5rem;
|
||||
color: #AAAAAA;
|
||||
}
|
||||
}
|
||||
.transform-item{
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
.message-time-div{
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
.message-info-div {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.page-dom-div {
|
||||
height: 2.5rem;
|
||||
line-height: 2.5rem;
|
||||
text-align: right;
|
||||
padding-right: 0.5rem;
|
||||
.page-icon-dom {
|
||||
font-size: 1.2rem;
|
||||
border: none;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
.cannot-click {
|
||||
background-color: #a3b0c0;
|
||||
color: white;
|
||||
}
|
||||
.can-click {
|
||||
background-color: #31a8fa;
|
||||
color: white;
|
||||
}
|
||||
.total-num-span {
|
||||
margin-left: 1rem;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
}
|
||||
.show-loading-div {
|
||||
min-height: 15rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.no-data-div {
|
||||
min-height: 15rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
</style>
|
Loading…
Reference in new issue