You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kaohe/ruoyi-ui/src/views/votepage.vue

651 lines
21 KiB

<template>
<div class="app-container">
<div class="title">{{ kaohexiang.vote.voteTitle }}</div>
<div class="time">投票时间{{ kaohexiang.vote.sTime }} - {{ kaohexiang.vote.eTime }}</div>
<div class="des">{{ kaohexiang.vote.vDescription }}</div>
<div class="tou_piao" v-if="kaohexiang.type===2||kaohexiang.type===5">
<div v-for="item in voteList" class="tou_piao_item">
<div class="emp_name">{{ item.label }}</div>
<div>
<el-input-number v-model="item.value" controls-position="right" :min="0" :max="100"></el-input-number>
</div>
</div>
</div>
<div class="tou_piao" v-if="kaohexiang.type===1">
<div v-for="item in voteList" class="tou_piao_item">
<div class="emp_name">{{ item.label }}</div>
<div>
<el-radio v-model="item.value" label="1" border size="small"></el-radio>
<el-radio v-model="item.value" label="2" border size="small"></el-radio>
<el-radio v-model="item.value" label="3" border size="small"></el-radio>
<el-radio v-model="item.value" label="4" border size="small"></el-radio>
</div>
</div>
</div>
<div style="text-align: right; margin-top: 40px;">
<el-button type="primary" icon="el-icon-s-promotion">提交</el-button>
</div>
</div>
</template>
<script>
import { getVote } from "@/api/kaohe/vote"
import { listVote_emp } from "@/api/kaohe/vote_emp"
export default {
name: "votepage",
data() {
return {
kaohexiang: null,
loading:null,
voteList: [
{
"id": 200,
"label": "生命科学系",
"value": null
},
{
"id": 201,
"label": "海洋学院",
"value": null
},
{
"id": 202,
"label": "历史文化与法学系",
"value": null
},
{
"id": 203,
"label": "物理科学与技术学院",
"value": null
},
{
"id": 204,
"label": "教育学院",
"value": null
},
{
"id": 205,
"label": "资源管理系",
"value": null
},
{
"id": 206,
"label": "马克思主义学院",
"value": null
},
{
"id": 207,
"label": "美术学院",
"value": null
},
{
"id": 208,
"label": "计算机科学技术系",
"value": null
},
{
"id": 209,
"label": "化学系",
"value": null
},
{
"id": 210,
"label": "数学与计算科学学院",
"value": null
},
{
"id": 211,
"label": "继续教育学院",
"value": null
},
{
"id": 212,
"label": "外国语学院",
"value": null
},
{
"id": 213,
"label": "体育系",
"value": null
},
{
"id": 214,
"label": "文学院",
"value": null
},
{
"id": 215,
"label": "音乐系",
"value": null
},
],
pingceList: [
{
id: 1,
pcTitle: '党建与行政目标任务',
pcDescription: '党建与行政目标任务考核描述',
templateId: 2,
templateName: '党建与行政目标任务模板',
state: '2',
khdx: '1',
remark: '备注',
deptCheckStrictly: false,
pcEmps:[],
checkedKeys: [ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215 ],
kaohexiang: [
{
id: 6,
itemName: '政治建设',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '政治建设评分',
options: [],
maxNum: 100,
percentage: 0.2, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '政治建设评分详情描述', //评分详情描述
remark: '政治建设备注', //备注
}
},
{
id: 7,
itemName: '宣传与思想政治工作',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '宣传与思想政治工作评分',
options: [],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '宣传与思想政治工作评分详情描述', //评分详情描述
remark: '宣传与思想政治工作备注', //备注
}
},
{
id: 8,
itemName: '作风纪律',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '作风纪律评分',
options: [],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '作风纪律评分详情描述', //评分详情描述
remark: '作风纪律备注', //备注
}
},
{
id: 9,
itemName: '安全稳定',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '安全稳定评分',
options: [],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '安全稳定评分详情描述', //评分详情描述
remark: '安全稳定备注', //备注
}
},
{
id: 10,
itemName: '师资队伍与师德师风',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '师资队伍与师德师风评分',
options: [],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '师资队伍与师德师风评分详情描述', //评分详情描述
remark: '师资队伍与师德师风备注', //备注
}
},
{
id: 11,
itemName: '财务工作',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '财务工作评分',
options: [],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '财务工作评分详情描述', //评分详情描述
remark: '财务工作备注', //备注
}
},
{
id: 12,
itemName: '依法治校与综合治理',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '依法治校与综合治理评分',
options: [],
maxNum: 100,
percentage: 0.05, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '依法治校与综合治理评分详情描述', //评分详情描述
remark: '依法治校与综合治理备注', //备注
}
},
{
id: 13,
itemName: '国有资产管理',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '国有资产管理评分',
options: [],
maxNum: 100,
percentage: 0.02, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '国有资产管理评分详情描述', //评分详情描述
remark: '国有资产管理备注', //备注
}
},
{
id: 14,
itemName: '实验室管理',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '实验室管理评分',
options: [],
maxNum: 100,
percentage: 0.03, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '实验室管理评分详情描述', //评分详情描述
remark: '实验室管理备注', //备注
}
},
{
id: 15,
itemName: '招生就业与创新创业工作',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '招生就业与创新创业工作评分',
options: [],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '招生就业与创新创业工作评分详情描述', //评分详情描述
remark: '招生就业与创新创业工作备注', //备注
}
},
{
id: 16,
itemName: '对外交流与合作',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '对外交流与合作评分',
options: [],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '对外交流与合作评分详情描述', //评分详情描述
remark: '对外交流与合作备注', //备注
}
}
]
},
{
id: 2,
pcTitle: '事业发展',
pcDescription: '事业发展考核描述',
templateId: 3,
templateName: '事业发展模板',
state: '2',
khdx: '1',
remark: '备注',
deptCheckStrictly: false,
pcEmps:[],
checkedKeys: [ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215 ],
kaohexiang: [
{
id: 17,
itemName: '教学工作',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '教学工作评分',
options: [],
maxNum: 100,
percentage: 0.2, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '教学工作评分详情描述', //评分详情描述
remark: '教学工作备注', //备注
}
},
{
id: 18,
itemName: '科研工作',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '科研工作评分',
options: [],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '科研工作评分详情描述', //评分详情描述
remark: '科研工作备注', //备注
}
},
{
id: 19,
itemName: '学生工作',
type: 2,
typeName: '占比评分',
vote:{
voteTitle: '学生工作评分',
options: [],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '学生工作评分详情描述', //评分详情描述
remark: '学生工作备注', //备注
}
}
]
},
{
id: 3,
pcTitle: '民主测评',
pcDescription: '民主测评考核描述',
templateId: 4,
templateName: '民主测评模板',
state: '2',
khdx: '1',
remark: '备注',
deptCheckStrictly: false,
pcEmps:[],
checkedKeys: [ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215 ],
kaohexiang: [
{
id: 20,
itemName: '师院领导班子',
type: 1,
typeName: '选项评分',
vote:{
voteTitle: '师院领导班子评分',
options: [
{
value: 1,
label: '优秀'
},
{
value: 2,
label: '合格'
},
{
value: 3,
label: '基本合格'
},
{
value: 4,
label: '不合格'
}
],
maxNum: 100,
percentage: 0.2, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '师院领导班子评分详情描述', //评分详情描述
remark: '师院领导班子备注', //备注
}
},
{
id: 21,
itemName: '师院处级领导干部',
type: 1,
typeName: '选项评分',
vote:{
voteTitle: '师院处级领导干部评分',
options: [
{
value: 1,
label: '优秀'
},
{
value: 2,
label: '合格'
},
{
value: 3,
label: '基本合格'
},
{
value: 4,
label: '不合格'
}
],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '师院处级领导干部评分详情描述', //评分详情描述
remark: '师院处级领导干部备注', //备注
}
},
{
id: 22,
itemName: '服务对象代表',
type: 1,
typeName: '选项评分',
vote:{
voteTitle: '服务对象代表评分',
options: [
{
value: 1,
label: '优秀'
},
{
value: 2,
label: '合格'
},
{
value: 3,
label: '基本合格'
},
{
value: 4,
label: '不合格'
}
],
maxNum: 100,
percentage: 0.1, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '服务对象代表评分详情描述', //评分详情描述
remark: '服务对象代表备注', //备注
}
}
]
},
{
id: 4,
pcTitle: '特色创新',
pcDescription: '特色创新考核描述',
templateId: 5,
templateName: '特色创新模板',
state: '2',
khdx: '1',
remark: '备注',
deptCheckStrictly: false,
pcEmps:[],
checkedKeys: [ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215 ],
kaohexiang: [
{
id: 23,
itemName: '分数满分10分',
type: 5,
typeName: '单独评分',
vote:{
voteTitle: '特色创新分数满分10分评分',
options: [],
maxNum: 10,
percentage: null, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '特色创新分数满分10分评分详情描述', //评分详情描述
remark: '特色创新分数满分10分备注', //备注
}
}
]
},
{
id: 5,
pcTitle: '综合评价',
pcDescription: '综合评价考核描述',
templateId: 6,
templateName: '综合评价模板',
state: '2',
khdx: '1',
remark: '备注',
deptCheckStrictly: false,
pcEmps:[],
checkedKeys: [ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215 ],
kaohexiang: [
{
id: 24,
itemName: '分数(加减分项,值域可以为负)',
type: 5,
typeName: '单独评分',
vote:{
voteTitle: '综合评价分数(加减分项,值域可以为负)',
options: [],
maxNum: 10,
percentage: null, //评分占比
state: '2', //状态
sTime: '2025-06-15', //开始时间
eTime: '2025-06-20', //结束时间
vDescription: '综合评价分数(加减分项,值域可以为负)评分详情描述', //评分详情描述
remark: '综合评价分数(加减分项,值域可以为负)备注', //备注
}
}
]
}
],
}
},
created() {
// this.getVote()
if(this.$route.query.index&&this.$route.query.index1){
this.kaohexiang = this.pingceList[this.$route.query.index].kaohexiang[this.$route.query.index1];
console.log(this.kaohexiang);
}
},
methods: {
getVote(){
this.loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
getVote(this.$route.query.id).then(response => {
this.vote = response.data;
this.getList()
})
},
/** 查询投票评测列表 */
getList() {
listVote_emp({
voteId: this.$route.query.id,
pageNum: 1,
pageSize: 10000000,
}).then(response => {
this.voteList = response.rows;
this.loading.close()
})
},
}
}
</script>
<style scoped lang="scss">
.app-container{
width: 1200px;
margin: 0 auto;
.title{
font-size: 24px;
text-align: center;
margin-bottom: 50px;
}
.des{
padding: 10px;
color: #666666;
}
.time{
padding: 10px;
color: #bb1313;
}
.tou_piao{
.tou_piao_item{
margin: 10px;
border: 1px solid #eeeeee;
padding: 10px;
display: flex;
justify-content: space-between;
.emp_name{
height: 30px;
line-height: 30px;
font-size: 14px;
}
}
}
}
</style>