Commit bab149c7 by zhaopanyu

zpy 1.10

parent 26879d26
import request from "@/utils/request";
// 查询学生嘉奖列表(全部)
export function listStudentAward(query) {
return request({
url: "/school/studentAward/list",
method: "get",
params: query,
});
}
// 查询学生嘉奖列表(个人)
export function listStudentAwardgr(query) {
return request({
url: "/school/studentAward/listGr",
method: "get",
params: query,
});
}
// 查询学生嘉奖列表(已通过)
export function listStudentAwardtg(query) {
return request({
url: "/school/studentAward/listYtg",
method: "get",
params: query,
});
}
// 查询学生嘉奖详细
export function getStudentAward(id) {
return request({
url: "/school/studentAward/" + id,
method: "get",
});
}
// 新增学生嘉奖(个人)
export function addStudentAwardgr(data) {
return request({
url: "/school/studentAward/addGr",
method: "post",
data: data,
});
}
// 新增学生嘉奖(管理员)
export function addStudentAward(data) {
return request({
url: "/school/studentAward",
method: "post",
data: data,
});
}
// 修改学生嘉奖
export function updateStudentAward(data) {
return request({
url: "/school/studentAward",
method: "put",
data: data,
});
}
// 删除学生嘉奖
export function delStudentAward(id) {
return request({
url: "/school/studentAward/" + id,
method: "delete",
});
}
//提交审核
export function reviewStudentAward(data) {
return request({
url: "/school/studentAward/submit",
method: "post",
data: data,
});
}
import request from "@/utils/request";
// 查询学生成绩列表
export function listStudentAchievement(query) {
return request({
url: "/school/studentAchievement/list",
method: "get",
params: query,
});
}
// 查询学生成绩列表个人
export function listStudentAchievementgr(query) {
return request({
url: "/school/studentAchievement/listGr",
method: "get",
params: query,
});
}
// 查询学生成绩详细
export function getStudentAchievement(id) {
return request({
url: "/school/studentAchievement/" + id,
method: "get",
});
}
// 新增学生成绩
export function addStudentAchievement(data) {
return request({
url: "/school/studentAchievement",
method: "post",
data: data,
});
}
// 修改学生成绩
export function updateStudentAchievement(data) {
return request({
url: "/school/studentAchievement",
method: "put",
data: data,
});
}
// 删除学生成绩
export function delStudentAchievement(id) {
return request({
url: "/school/studentAchievement/" + id,
method: "delete",
});
}
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787088632" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8386" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M251.289 468.826h-5.794c-46.348-28.968-69.523-81.111-69.523-133.252v-121.665c0-11.588 11.587-23.174 23.174-23.174h86.903v-46.348c0-11.588 11.588-23.174 28.968-23.174h399.757c17.381 0 28.968 11.587 28.968 23.174v46.348h81.111c11.588 0 23.174 11.588 23.174 23.174v121.665c0 52.142-23.174 104.285-69.523 133.252 0 0 0 0-5.794 0l-11.588 5.794c0 0-5.794 5.794-5.794 5.794v0 0c-5.794 0-17.381 0-23.174 5.794-11.588 34.762-28.968 75.316-57.936 104.285-28.968 40.555-81.111 75.316-133.252 81.111v121.665c0 11.588 5.794 11.588 11.587 11.588h133.252c17.381 0 28.968 11.588 28.968 28.968s-11.588 28.968-28.968 28.968h-347.615c-17.381 0-28.968-11.588-28.968-28.968s11.588-28.968 28.968-28.968h133.252c11.587 0 11.587-5.794 11.587-11.588v-121.665c-52.142-5.794-98.49-40.555-133.252-81.111-23.174-28.968-46.348-69.523-52.142-104.285-11.588-5.794-17.381-5.794-23.174-5.794-5.794-5.794-17.381-5.794-23.174-11.587zM245.495 399.303l17.381 17.381c5.794 5.794 5.794 5.794 11.588 5.794 0 5.794 5.794 5.794 5.794 5.794v-191.187h-52.142v98.49c0 23.174 5.794 46.348 17.381 63.729zM784.299 237.083h-40.555v191.187c5.794 0 5.794 0 11.588-5.794 0 0 0 0 5.794 0 0-5.794 5.794-5.794 5.794-11.587 23.174-17.381 34.762-46.348 34.762-75.316v-98.49h-17.381zM512 161.767h-185.394v237.536c0 63.729 23.174 121.665 57.936 162.219s75.316 63.729 127.459 63.729c52.142 0 98.49-23.174 127.459-63.729 34.762-40.555 57.936-98.49 57.936-162.219v-237.536h-185.394zM622.078 219.702v0c17.381 0 28.968 11.588 28.968 28.968v191.187c0 17.381-11.588 28.968-28.968 28.968v0c-11.588 0-28.968-11.588-28.968-28.968v-191.187c0-17.381 17.381-28.968 28.968-28.968z" p-id="8387" fill="#0084c8"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787088632" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8386" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M251.289 468.826h-5.794c-46.348-28.968-69.523-81.111-69.523-133.252v-121.665c0-11.588 11.587-23.174 23.174-23.174h86.903v-46.348c0-11.588 11.588-23.174 28.968-23.174h399.757c17.381 0 28.968 11.587 28.968 23.174v46.348h81.111c11.588 0 23.174 11.588 23.174 23.174v121.665c0 52.142-23.174 104.285-69.523 133.252 0 0 0 0-5.794 0l-11.588 5.794c0 0-5.794 5.794-5.794 5.794v0 0c-5.794 0-17.381 0-23.174 5.794-11.588 34.762-28.968 75.316-57.936 104.285-28.968 40.555-81.111 75.316-133.252 81.111v121.665c0 11.588 5.794 11.588 11.587 11.588h133.252c17.381 0 28.968 11.588 28.968 28.968s-11.588 28.968-28.968 28.968h-347.615c-17.381 0-28.968-11.588-28.968-28.968s11.588-28.968 28.968-28.968h133.252c11.587 0 11.587-5.794 11.587-11.588v-121.665c-52.142-5.794-98.49-40.555-133.252-81.111-23.174-28.968-46.348-69.523-52.142-104.285-11.588-5.794-17.381-5.794-23.174-5.794-5.794-5.794-17.381-5.794-23.174-11.587zM245.495 399.303l17.381 17.381c5.794 5.794 5.794 5.794 11.588 5.794 0 5.794 5.794 5.794 5.794 5.794v-191.187h-52.142v98.49c0 23.174 5.794 46.348 17.381 63.729zM784.299 237.083h-40.555v191.187c5.794 0 5.794 0 11.588-5.794 0 0 0 0 5.794 0 0-5.794 5.794-5.794 5.794-11.587 23.174-17.381 34.762-46.348 34.762-75.316v-98.49h-17.381zM512 161.767h-185.394v237.536c0 63.729 23.174 121.665 57.936 162.219s75.316 63.729 127.459 63.729c52.142 0 98.49-23.174 127.459-63.729 34.762-40.555 57.936-98.49 57.936-162.219v-237.536h-185.394zM622.078 219.702v0c17.381 0 28.968 11.588 28.968 28.968v191.187c0 17.381-11.588 28.968-28.968 28.968v0c-11.588 0-28.968-11.588-28.968-28.968v-191.187c0-17.381 17.381-28.968 28.968-28.968z" p-id="8387" fill="#0084c8"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704786944078" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2567" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M659.1 715.8c-7.3-14.5-30.9-14.5-38.2 0L514.3 929.1c-5.3 10.5-1 23.4 9.5 28.6 10.5 5.2 23.4 1 28.6-9.5l26.1-52.2h123l26.1 52.2c3.8 7.5 11.3 11.8 19.1 11.8 3.2 0 6.5-0.7 9.5-2.3 10.5-5.3 14.8-18.1 9.5-28.6L659.1 715.8z m-59.2 137.5L640 773l40.1 80.3h-80.2zM896 704h-42.7v-42.7c0-11.8-9.6-21.3-21.3-21.3s-21.3 9.6-21.3 21.3V704H768c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.6 21.3 21.3 21.3h42.7v42.7c0 11.8 9.6 21.3 21.3 21.3s21.3-9.6 21.3-21.3v-42.7H896c11.8 0 21.3-9.6 21.3-21.3 0-11.7-9.5-21.3-21.3-21.3zM723.6 597.3c21 0 29.4-27.4 12-39-34.6-23-72.9-40.7-113.8-52.2 74.3-39.4 125-117.4 125-207.4C746.7 169.1 641.6 64 512 64S277.3 169.1 277.3 298.7c0 90 50.7 168 125 207.4C231.9 553.9 106.7 710.2 106.7 896c0 15.5 1.1 30.7 2.9 45.7 1.3 10.5 10.5 18.3 21.1 18.3 12.6 0 22.6-10.8 21.1-23.3-1.6-13.4-2.5-26.9-2.5-40.7 0-200 162.7-362.7 362.7-362.7 73.9 0 142.7 22.3 200.1 60.5 3.4 2.3 7.4 3.5 11.5 3.5zM320 298.7c0-105.9 86.1-192 192-192s192 86.1 192 192-86.1 192-192 192-192-86.2-192-192z" fill="#0084c8" p-id="2568"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704786944078" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2567" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M659.1 715.8c-7.3-14.5-30.9-14.5-38.2 0L514.3 929.1c-5.3 10.5-1 23.4 9.5 28.6 10.5 5.2 23.4 1 28.6-9.5l26.1-52.2h123l26.1 52.2c3.8 7.5 11.3 11.8 19.1 11.8 3.2 0 6.5-0.7 9.5-2.3 10.5-5.3 14.8-18.1 9.5-28.6L659.1 715.8z m-59.2 137.5L640 773l40.1 80.3h-80.2zM896 704h-42.7v-42.7c0-11.8-9.6-21.3-21.3-21.3s-21.3 9.6-21.3 21.3V704H768c-11.8 0-21.3 9.6-21.3 21.3 0 11.8 9.6 21.3 21.3 21.3h42.7v42.7c0 11.8 9.6 21.3 21.3 21.3s21.3-9.6 21.3-21.3v-42.7H896c11.8 0 21.3-9.6 21.3-21.3 0-11.7-9.5-21.3-21.3-21.3zM723.6 597.3c21 0 29.4-27.4 12-39-34.6-23-72.9-40.7-113.8-52.2 74.3-39.4 125-117.4 125-207.4C746.7 169.1 641.6 64 512 64S277.3 169.1 277.3 298.7c0 90 50.7 168 125 207.4C231.9 553.9 106.7 710.2 106.7 896c0 15.5 1.1 30.7 2.9 45.7 1.3 10.5 10.5 18.3 21.1 18.3 12.6 0 22.6-10.8 21.1-23.3-1.6-13.4-2.5-26.9-2.5-40.7 0-200 162.7-362.7 362.7-362.7 73.9 0 142.7 22.3 200.1 60.5 3.4 2.3 7.4 3.5 11.5 3.5zM320 298.7c0-105.9 86.1-192 192-192s192 86.1 192 192-86.1 192-192 192-192-86.2-192-192z" fill="#0084c8" p-id="2568"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787112762" class="icon" viewBox="0 0 1821 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10440" xmlns:xlink="http://www.w3.org/1999/xlink" width="355.6640625" height="200"><path d="M918.933 646.533c-6 2.8-12.933 2.8-18.8 0L577.467 493.6v178c0 8.533 4.666 16.133 12.266 20l309.867 156c6.267 3.067 13.6 3.067 19.733 0l309.867-156c7.467-3.733 12.267-11.467 12.267-20V493.733l-322.534 152.8" fill="#0084c8" p-id="10441"></path><path d="M1431.6 293.6l-514-205.333a21.472 21.472 0 0 0-16.267 0L387.6 293.6c-8.533 3.333-14.133 11.6-14.133 20.667 0 9.2 5.6 17.333 14.133 20.666l190 75.867v33.467l332 157.333 332-157.333V410.8l88.533-35.333v540.666c0 12.267 9.867 22.267 22.134 22.267 12.266 0 22.133-10 22.133-22.267V358.8l-0.133-0.933 57.333-22.934c8.4-3.333 14-11.6 14-20.666 0-9.067-5.6-17.2-14-20.667" fill="#0084c8" p-id="10442"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787112762" class="icon" viewBox="0 0 1821 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10440" xmlns:xlink="http://www.w3.org/1999/xlink" width="355.6640625" height="200"><path d="M918.933 646.533c-6 2.8-12.933 2.8-18.8 0L577.467 493.6v178c0 8.533 4.666 16.133 12.266 20l309.867 156c6.267 3.067 13.6 3.067 19.733 0l309.867-156c7.467-3.733 12.267-11.467 12.267-20V493.733l-322.534 152.8" fill="#0084c8" p-id="10441"></path><path d="M1431.6 293.6l-514-205.333a21.472 21.472 0 0 0-16.267 0L387.6 293.6c-8.533 3.333-14.133 11.6-14.133 20.667 0 9.2 5.6 17.333 14.133 20.666l190 75.867v33.467l332 157.333 332-157.333V410.8l88.533-35.333v540.666c0 12.267 9.867 22.267 22.134 22.267 12.266 0 22.133-10 22.133-22.267V358.8l-0.133-0.933 57.333-22.934c8.4-3.333 14-11.6 14-20.666 0-9.067-5.6-17.2-14-20.667" fill="#0084c8" p-id="10442"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787046669" class="icon" viewBox="0 0 1028 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4954" xmlns:xlink="http://www.w3.org/1999/xlink" width="200.78125" height="200"><path d="M986.074 352.771c-17.458 0-31.304 15.05-31.304 34.314v493.037c0 39.13-29.498 71.036-65.618 71.036H131.236c-36.12 0-65.618-31.906-65.618-71.036V143.878c0-39.13 29.498-71.036 65.618-71.036h512.3c17.459 0 31.305-15.05 31.305-34.314 0-18.662-13.846-34.314-31.304-34.314H131.236C60.2 4.816 3.01 66.822 3.01 143.878v736.244c0 77.056 57.792 139.062 128.226 139.062h757.916c71.036 0 128.226-62.608 128.226-139.062V387.085c0-19.264-13.846-34.314-31.304-34.314z" fill="#0084c8" p-id="4955"></path><path d="M288.96 561.063c-1.205 2.408-3.01 5.418-3.613 7.826l-66.821 222.74c-2.408 9.03 0 18.661 6.622 25.283 4.816 4.816 11.438 7.224 18.06 7.224 2.408 0 4.816-0.602 7.224-1.204l222.74-66.821c3.01-0.602 5.417-1.806 7.825-3.612l533.973-533.973c7.826-7.826 12.04-18.06 12.04-28.896 0-10.836-4.214-21.07-12.04-28.896L879.52 27.09c-15.652-15.652-41.538-15.652-57.19 0L290.765 558.655l-1.806 2.408z m520.126-448.49l42.14-42.14 119.798 119.799-42.14 42.14-119.798-119.798z m-445.479 445.48l409.36-409.36 119.797 119.798-409.359 409.36-119.798-119.798z m-82.474 202.874l47.558-159.53 111.972 111.972-159.53 47.558z" fill="#0084c8" p-id="4956"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787046669" class="icon" viewBox="0 0 1028 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4954" xmlns:xlink="http://www.w3.org/1999/xlink" width="200.78125" height="200"><path d="M986.074 352.771c-17.458 0-31.304 15.05-31.304 34.314v493.037c0 39.13-29.498 71.036-65.618 71.036H131.236c-36.12 0-65.618-31.906-65.618-71.036V143.878c0-39.13 29.498-71.036 65.618-71.036h512.3c17.459 0 31.305-15.05 31.305-34.314 0-18.662-13.846-34.314-31.304-34.314H131.236C60.2 4.816 3.01 66.822 3.01 143.878v736.244c0 77.056 57.792 139.062 128.226 139.062h757.916c71.036 0 128.226-62.608 128.226-139.062V387.085c0-19.264-13.846-34.314-31.304-34.314z" fill="#0084c8" p-id="4955"></path><path d="M288.96 561.063c-1.205 2.408-3.01 5.418-3.613 7.826l-66.821 222.74c-2.408 9.03 0 18.661 6.622 25.283 4.816 4.816 11.438 7.224 18.06 7.224 2.408 0 4.816-0.602 7.224-1.204l222.74-66.821c3.01-0.602 5.417-1.806 7.825-3.612l533.973-533.973c7.826-7.826 12.04-18.06 12.04-28.896 0-10.836-4.214-21.07-12.04-28.896L879.52 27.09c-15.652-15.652-41.538-15.652-57.19 0L290.765 558.655l-1.806 2.408z m520.126-448.49l42.14-42.14 119.798 119.799-42.14 42.14-119.798-119.798z m-445.479 445.48l409.36-409.36 119.797 119.798-409.359 409.36-119.798-119.798z m-82.474 202.874l47.558-159.53 111.972 111.972-159.53 47.558z" fill="#0084c8" p-id="4956"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787060454" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6168" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M837.818182 46.545455a93.090909 93.090909 0 0 1 93.090909 93.090909v744.727272a93.090909 93.090909 0 0 1-93.090909 93.090909H186.181818a93.090909 93.090909 0 0 1-93.090909-93.090909V139.636364a93.090909 93.090909 0 0 1 93.090909-93.090909h651.636364z m0 46.545454H186.181818a46.545455 46.545455 0 0 0-46.219636 41.099636L139.636364 139.636364v744.727272a46.545455 46.545455 0 0 0 41.099636 46.219637L186.181818 930.909091h651.636364a46.545455 46.545455 0 0 0 46.219636-41.099636L884.363636 884.363636V139.636364a46.545455 46.545455 0 0 0-41.099636-46.219637L837.818182 93.090909z" fill="#0084c8" p-id="6169"></path><path d="M279.272727 558.545455m23.272728 0l418.90909 0q23.272727 0 23.272728 23.272727l0 0q0 23.272727-23.272728 23.272727l-418.90909 0q-23.272727 0-23.272728-23.272727l0 0q0-23.272727 23.272728-23.272727Z" fill="#0084c8" p-id="6170"></path><path d="M372.363636 232.727273c1.349818 0.093091 2.466909 0.325818 3.770182 0.605091 0.930909 0.139636 1.908364 0.046545 2.885818 0.418909 0.279273 0.139636 0.512 0.418909 0.791273 0.465454 1.024 0.465455 2.001455 1.210182 2.978909 1.815273 1.210182 0.651636 2.327273 1.349818 3.258182 2.234182 0.837818 0.791273 1.256727 1.629091 1.861818 2.466909 0.884364 1.163636 1.768727 2.327273 2.327273 3.723636 0.232727 0.232727 0.372364 0.418909 0.465454 0.651637l73.541819 195.025454a18.711273 18.711273 0 0 1-11.636364 24.203637 19.781818 19.781818 0 0 1-25.088-11.310546l-17.873455-47.336727H335.034182l-17.92 47.336727a19.781818 19.781818 0 0 1-25.041455 11.310546 18.664727 18.664727 0 0 1-11.636363-24.203637l73.634909-195.025454c0.046545-0.232727 0.325818-0.418909 0.418909-0.651637a20.712727 20.712727 0 0 1 2.327273-3.723636c0.651636-0.837818 1.163636-1.768727 1.861818-2.466909 0.930909-0.930909 2.187636-1.489455 3.304727-2.234182 0.930909-0.605091 1.861818-1.396364 2.978909-1.768727 0.279273-0.186182 0.465455-0.465455 0.791273-0.512 0.930909-0.372364 1.908364-0.279273 2.885818-0.465455C369.850182 233.099636 371.060364 232.727273 372.363636 232.727273zM372.363636 306.781091l-23.133091 61.160727h46.173091l-23.04-61.160727zM605.090909 232.727273c-12.8 0-23.272727 10.472727-23.272727 23.272727v46.545455h-46.545455c-12.8 0-23.272727 10.472727-23.272727 23.272727s10.472727 23.272727 23.272727 23.272727h46.545455v46.545455c0 12.8 10.472727 23.272727 23.272727 23.272727s23.272727-10.472727 23.272727-23.272727v-46.545455h46.545455c12.8 0 23.272727-10.472727 23.272727-23.272727s-10.472727-23.272727-23.272727-23.272727h-46.545455v-46.545455c0-12.8-10.472727-23.272727-23.272727-23.272727z" fill="#0084c8" p-id="6171"></path><path d="M279.272727 744.727273m23.272728 0l418.90909 0q23.272727 0 23.272728 23.272727l0 0q0 23.272727-23.272728 23.272727l-418.90909 0q-23.272727 0-23.272728-23.272727l0 0q0-23.272727 23.272728-23.272727Z" fill="#0084c8" p-id="6172"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787060454" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6168" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M837.818182 46.545455a93.090909 93.090909 0 0 1 93.090909 93.090909v744.727272a93.090909 93.090909 0 0 1-93.090909 93.090909H186.181818a93.090909 93.090909 0 0 1-93.090909-93.090909V139.636364a93.090909 93.090909 0 0 1 93.090909-93.090909h651.636364z m0 46.545454H186.181818a46.545455 46.545455 0 0 0-46.219636 41.099636L139.636364 139.636364v744.727272a46.545455 46.545455 0 0 0 41.099636 46.219637L186.181818 930.909091h651.636364a46.545455 46.545455 0 0 0 46.219636-41.099636L884.363636 884.363636V139.636364a46.545455 46.545455 0 0 0-41.099636-46.219637L837.818182 93.090909z" fill="#0084c8" p-id="6169"></path><path d="M279.272727 558.545455m23.272728 0l418.90909 0q23.272727 0 23.272728 23.272727l0 0q0 23.272727-23.272728 23.272727l-418.90909 0q-23.272727 0-23.272728-23.272727l0 0q0-23.272727 23.272728-23.272727Z" fill="#0084c8" p-id="6170"></path><path d="M372.363636 232.727273c1.349818 0.093091 2.466909 0.325818 3.770182 0.605091 0.930909 0.139636 1.908364 0.046545 2.885818 0.418909 0.279273 0.139636 0.512 0.418909 0.791273 0.465454 1.024 0.465455 2.001455 1.210182 2.978909 1.815273 1.210182 0.651636 2.327273 1.349818 3.258182 2.234182 0.837818 0.791273 1.256727 1.629091 1.861818 2.466909 0.884364 1.163636 1.768727 2.327273 2.327273 3.723636 0.232727 0.232727 0.372364 0.418909 0.465454 0.651637l73.541819 195.025454a18.711273 18.711273 0 0 1-11.636364 24.203637 19.781818 19.781818 0 0 1-25.088-11.310546l-17.873455-47.336727H335.034182l-17.92 47.336727a19.781818 19.781818 0 0 1-25.041455 11.310546 18.664727 18.664727 0 0 1-11.636363-24.203637l73.634909-195.025454c0.046545-0.232727 0.325818-0.418909 0.418909-0.651637a20.712727 20.712727 0 0 1 2.327273-3.723636c0.651636-0.837818 1.163636-1.768727 1.861818-2.466909 0.930909-0.930909 2.187636-1.489455 3.304727-2.234182 0.930909-0.605091 1.861818-1.396364 2.978909-1.768727 0.279273-0.186182 0.465455-0.465455 0.791273-0.512 0.930909-0.372364 1.908364-0.279273 2.885818-0.465455C369.850182 233.099636 371.060364 232.727273 372.363636 232.727273zM372.363636 306.781091l-23.133091 61.160727h46.173091l-23.04-61.160727zM605.090909 232.727273c-12.8 0-23.272727 10.472727-23.272727 23.272727v46.545455h-46.545455c-12.8 0-23.272727 10.472727-23.272727 23.272727s10.472727 23.272727 23.272727 23.272727h46.545455v46.545455c0 12.8 10.472727 23.272727 23.272727 23.272727s23.272727-10.472727 23.272727-23.272727v-46.545455h46.545455c12.8 0 23.272727-10.472727 23.272727-23.272727s-10.472727-23.272727-23.272727-23.272727h-46.545455v-46.545455c0-12.8-10.472727-23.272727-23.272727-23.272727z" fill="#0084c8" p-id="6171"></path><path d="M279.272727 744.727273m23.272728 0l418.90909 0q23.272727 0 23.272728 23.272727l0 0q0 23.272727-23.272728 23.272727l-418.90909 0q-23.272727 0-23.272728-23.272727l0 0q0-23.272727 23.272728-23.272727Z" fill="#0084c8" p-id="6172"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704786975326" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3757" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M356.6 128h330.5v128H356.6zM381.3 395.3h281.3v80H381.3zM381.3 572.4h281.3v80H381.3z" p-id="3758" fill="#0084c8"></path><path d="M520.7 849.4H302.3c-29.1 0-52.7-23.6-52.7-52.7V283c0-29.1 23.6-52.7 52.7-52.7h439.3c29.1 0 52.7 23.6 52.7 52.7v251.6h80V283c0-73.2-59.5-132.7-132.7-132.7H302.3c-73.2 0-132.7 59.5-132.7 132.7v513.8c0 73.2 59.5 132.7 132.7 132.7h218.5v-80.1z" p-id="3759" fill="#0084c8"></path><path d="M515 722.1l132 183 285.1-357-269.5 205.5L578 723z" p-id="3760" fill="#0084c8"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704786975326" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3757" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M356.6 128h330.5v128H356.6zM381.3 395.3h281.3v80H381.3zM381.3 572.4h281.3v80H381.3z" p-id="3758" fill="#0084c8"></path><path d="M520.7 849.4H302.3c-29.1 0-52.7-23.6-52.7-52.7V283c0-29.1 23.6-52.7 52.7-52.7h439.3c29.1 0 52.7 23.6 52.7 52.7v251.6h80V283c0-73.2-59.5-132.7-132.7-132.7H302.3c-73.2 0-132.7 59.5-132.7 132.7v513.8c0 73.2 59.5 132.7 132.7 132.7h218.5v-80.1z" p-id="3759" fill="#0084c8"></path><path d="M515 722.1l132 183 285.1-357-269.5 205.5L578 723z" p-id="3760" fill="#0084c8"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787136787" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12505" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M652.8 510.3c37.9 0 73.6 14.8 100.4 41.6 26.8 26.8 41.6 62.5 41.6 100.4s-14.8 73.6-41.6 100.4c-26.8 26.8-62.5 41.6-100.4 41.6s-73.6-14.8-100.4-41.6c-26.8-26.8-41.6-62.5-41.6-100.4s14.8-73.6 41.6-100.4c26.8-26.8 62.4-41.6 100.4-41.6m0-38c-99.4 0-180 80.6-180 180s80.6 180 180 180 180-80.6 180-180-80.6-180-180-180zM730.8 348h-516c-12.2 0-22-9.8-22-22s9.8-22 22-22h516c12.2 0 22 9.8 22 22s-9.9 22-22 22zM410.8 548h-196c-12.2 0-22-9.8-22-22s9.8-22 22-22h196c12.2 0 22 9.8 22 22s-9.9 22-22 22zM410.8 748h-196c-12.2 0-22-9.8-22-22s9.8-22 22-22h196c12.2 0 22 9.8 22 22s-9.9 22-22 22z" p-id="12506" fill="#0084c8"></path><path d="M894.1 925.5L755.5 786.9c-8.6-8.6-8.6-22.5 0-31.1 8.6-8.6 22.5-8.6 31.1 0l138.6 138.6c8.6 8.6 8.6 22.5 0 31.1-8.6 8.6-22.5 8.6-31.1 0z" p-id="12507" fill="#0084c8"></path><path d="M857.3 64H166.7C110 64 64 110 64 166.7v690.7C64 914 110 960 166.7 960H638c12.2 0 22-9.8 22-22s-9.8-22-22-22H166.7c-32.4 0-58.7-26.3-58.7-58.7V166.7c0-32.4 26.3-58.7 58.7-58.7h690.7c32.4 0 58.7 26.3 58.7 58.7V638c0 12.2 9.8 22 22 22s22-9.8 22-22V166.7C960 110 914 64 857.3 64z" p-id="12508" fill="#0084c8"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1704787136787" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12505" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M652.8 510.3c37.9 0 73.6 14.8 100.4 41.6 26.8 26.8 41.6 62.5 41.6 100.4s-14.8 73.6-41.6 100.4c-26.8 26.8-62.5 41.6-100.4 41.6s-73.6-14.8-100.4-41.6c-26.8-26.8-41.6-62.5-41.6-100.4s14.8-73.6 41.6-100.4c26.8-26.8 62.4-41.6 100.4-41.6m0-38c-99.4 0-180 80.6-180 180s80.6 180 180 180 180-80.6 180-180-80.6-180-180-180zM730.8 348h-516c-12.2 0-22-9.8-22-22s9.8-22 22-22h516c12.2 0 22 9.8 22 22s-9.9 22-22 22zM410.8 548h-196c-12.2 0-22-9.8-22-22s9.8-22 22-22h196c12.2 0 22 9.8 22 22s-9.9 22-22 22zM410.8 748h-196c-12.2 0-22-9.8-22-22s9.8-22 22-22h196c12.2 0 22 9.8 22 22s-9.9 22-22 22z" p-id="12506" fill="#0084c8"></path><path d="M894.1 925.5L755.5 786.9c-8.6-8.6-8.6-22.5 0-31.1 8.6-8.6 22.5-8.6 31.1 0l138.6 138.6c8.6 8.6 8.6 22.5 0 31.1-8.6 8.6-22.5 8.6-31.1 0z" p-id="12507" fill="#0084c8"></path><path d="M857.3 64H166.7C110 64 64 110 64 166.7v690.7C64 914 110 960 166.7 960H638c12.2 0 22-9.8 22-22s-9.8-22-22-22H166.7c-32.4 0-58.7-26.3-58.7-58.7V166.7c0-32.4 26.3-58.7 58.7-58.7h690.7c32.4 0 58.7 26.3 58.7 58.7V638c0 12.2 9.8 22 22 22s22-9.8 22-22V166.7C960 110 914 64 857.3 64z" p-id="12508" fill="#0084c8"></path></svg>
\ No newline at end of file
import Layout from '@/layout' import Layout from "@/layout";
export default [ export default [
{ {
path: '/classAdviser', path: "/classAdviser",
component: Layout, component: Layout,
hidden: true, hidden: true,
permissions: ['system:user:edit'], permissions: ["system:user:edit"],
children: [ children: [
/**班级查看模块*/ /**班级查看模块*/
{ {
path: 'classView/parentInfo', path: "classView/parentInfo",
component: () => import('@/views/smartSchool/classAdviser/classView/stuParents'), component: () =>
name: 'classViewStuParents', import("@/views/smartSchool/classAdviser/classView/stuParents"),
name: "classViewStuParents",
meta: { meta: {
title: '家长信息' title: "家长信息",
} },
}, },
/**学生管理模块*/ /**学生管理模块*/
{ {
path: 'studentManage/parentsInfo', path: "studentManage/parentsInfo",
component: () => import('@/views/smartSchool/classAdviser/studentManage/parentsInfo'), component: () =>
name: 'classAdviser_parentsInfo', import("@/views/smartSchool/classAdviser/studentManage/parentsInfo"),
name: "classAdviser_parentsInfo",
meta: { meta: {
title: '家长信息' title: "家长信息",
} },
}, },
{ {
path: 'studentManage/score', path: "studentManage/score",
component: () => import('@/views/smartSchool/classAdviser/studentManage/score'), component: () =>
name: 'classAdviser_score', import("@/views/smartSchool/classAdviser/studentManage/score"),
name: "classAdviser_score",
meta: { meta: {
title: '学生积分' title: "学生积分",
} },
}, },
] {
path: "studentManage/studentCommendation",
component: () =>
import(
"@/views/smartSchool/classAdviser/studentManage/studentCommendation"
),
name: "classAdviser_studentCommendation",
meta: {
title: "学生嘉奖",
},
},
{
path: "studentManage/discipline",
component: () =>
import("@/views/smartSchool/classAdviser/studentManage/discipline"),
name: "classAdviser_discipline",
meta: {
title: "学生违纪",
},
},
],
}, },
{ {
path: '/classAdviser/classManage/teacherList', path: "/classAdviser/classManage/teacherList",
component: Layout, component: Layout,
hidden: true, hidden: true,
permissions: ['childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index'], permissions: [
"childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index",
],
children: [ children: [
{ {
path: '', path: "",
component: () => import('@/views/smartSchool/classAdviser/classManage/teacherList'), component: () =>
name: 'classAdviser_teacherList', import("@/views/smartSchool/classAdviser/classManage/teacherList"),
name: "classAdviser_teacherList",
meta: { meta: {
title: '任课教师' title: "任课教师",
} },
} },
] ],
}, },
//教师工作家长信息 //教师工作家长信息
...@@ -72,32 +97,36 @@ export default [ ...@@ -72,32 +97,36 @@ export default [
// ] // ]
// }, // },
//调查问卷模块 //调查问卷模块
{ {
path: '/classAdviserQuestion', path: "/classAdviserQuestion",
component: Layout, component: Layout,
hidden: true, hidden: true,
permissions: ['question:child:check'], permissions: ["question:child:check"],
children: [ children: [
{ {
path: "content/:examId", path: "content/:examId",
component: () => import('@/views/smartSchool/classAdviser/questionnaireManagement/components/QuestionnaireContent'), component: () =>
name: 'ClassAdviserQuestionnaireContent', import(
"@/views/smartSchool/classAdviser/questionnaireManagement/components/QuestionnaireContent"
),
name: "ClassAdviserQuestionnaireContent",
meta: { meta: {
title: '问卷内容' title: "问卷内容",
} },
}, },
{ {
path: 'result/:examId', path: "result/:examId",
component: () => import('@/views/smartSchool/classAdviser/questionnaireManagement/components/ActivityResult'), component: () =>
name: 'ActivityResult', import(
"@/views/smartSchool/classAdviser/questionnaireManagement/components/ActivityResult"
),
name: "ActivityResult",
meta: { meta: {
title: '问卷结果' title: "问卷结果",
} },
}, },
] ],
} },
];
]
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
</el-form> </el-form>
<el-table :data="tableData" border style="width: 100%"> <el-table :data="tableData" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" /> <el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="competitionName" label="比赛名称" /> <el-table-column align="center" prop="competitionName" label="比赛名称" width="130" show-overflow-tooltip />
<el-table-column align="center" prop="awardsName" label="获奖名称" /> <el-table-column align="center" prop="awardsName" label="获奖名称" />
<el-table-column align="center" prop="competentDept" label="主导部门" /> <el-table-column align="center" prop="competentDept" label="主导部门" />
<el-table-column align="center" prop="awardsLevel" label="获奖级别"> <el-table-column align="center" prop="awardsLevel" label="获奖级别">
...@@ -48,10 +48,10 @@ ...@@ -48,10 +48,10 @@
<div>{{ selectDictLabel(dict.type.awards_type, row.awardsType) }}</div> <div>{{ selectDictLabel(dict.type.awards_type, row.awardsType) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="deptDirector" label="部门主任" /> <el-table-column align="center" prop="deptDirector" label="部门主任" width="90px" />
<el-table-column align="center" prop="organizer" label="主办单位" /> <el-table-column align="center" prop="organizer" label="主办单位" />
<el-table-column align="center" prop="awardsTime" label="获奖时间" /> <el-table-column align="center" prop="awardsTime" label="获奖时间" width="100px" />
<el-table-column align="center" prop="证书图片" label="证书图片"> <el-table-column align="center" prop="证书图片" label="证书图片" width="120px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-carousel :interval="4000" height="100px"> <el-carousel :interval="4000" height="100px">
<el-carousel-item v-for="(item, index) in scope.row.schoolAccessoryList" :key="index"> <el-carousel-item v-for="(item, index) in scope.row.schoolAccessoryList" :key="index">
...@@ -63,10 +63,10 @@ ...@@ -63,10 +63,10 @@
</el-table-column> </el-table-column>
<el-table-column align="center" prop="auditState" label="审核状态"> <el-table-column align="center" prop="auditState" label="审核状态">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.audit_state1, row.auditState) }}</div> <div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="remark" label="备注" /> <el-table-column align="center" prop="remark" label="备注" width="150" show-overflow-tooltip />
<el-table-column align="center" fixed="right" label="操作" width="200"> <el-table-column align="center" fixed="right" label="操作" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
...@@ -318,7 +318,7 @@ import picAvatar from '@/views/smartSchool/schoolManage/introduce/schoolInfo/pro ...@@ -318,7 +318,7 @@ import picAvatar from '@/views/smartSchool/schoolManage/introduce/schoolInfo/pro
export default { export default {
name: 'index', name: 'index',
components: { Treeselect, picAvatar }, components: { Treeselect, picAvatar },
dicts: ['awards_type', 'awards_level', 'audit_state1'], dicts: ['awards_type', 'awards_level', 'audit_state'],
data() { data() {
return { return {
isEdit: false, isEdit: false,
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</el-form> </el-form>
<el-table :data="tableData" border style="width: 100%"> <el-table :data="tableData" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" /> <el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="competitionName" label="比赛名称" /> <el-table-column align="center" prop="competitionName" label="比赛名称" width="130" show-overflow-tooltip />
<el-table-column align="center" prop="awardsName" label="获奖名称" /> <el-table-column align="center" prop="awardsName" label="获奖名称" />
<el-table-column align="center" prop="competentDept" label="主导部门" /> <el-table-column align="center" prop="competentDept" label="主导部门" />
<el-table-column align="center" prop="awardsLevel" label="获奖级别"> <el-table-column align="center" prop="awardsLevel" label="获奖级别">
...@@ -51,10 +51,10 @@ ...@@ -51,10 +51,10 @@
<div>{{ selectDictLabel(dict.type.awards_type, row.awardsType) }}</div> <div>{{ selectDictLabel(dict.type.awards_type, row.awardsType) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="deptDirector" label="部门主任" /> <el-table-column align="center" prop="deptDirector" label="部门主任" width="90px" />
<el-table-column align="center" prop="organizer" label="主办单位" /> <el-table-column align="center" prop="organizer" label="主办单位" />
<el-table-column align="center" prop="awardsTime" label="获奖时间" /> <el-table-column align="center" prop="awardsTime" label="获奖时间" width="100px" />
<el-table-column align="center" prop="证书图片" label="证书图片"> <el-table-column align="center" prop="证书图片" label="证书图片" width="120px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-carousel :interval="4000" height="100px"> <el-carousel :interval="4000" height="100px">
<el-carousel-item v-for="(item, index) in scope.row.schoolAccessoryList" :key="index"> <el-carousel-item v-for="(item, index) in scope.row.schoolAccessoryList" :key="index">
...@@ -66,10 +66,10 @@ ...@@ -66,10 +66,10 @@
</el-table-column> </el-table-column>
<el-table-column align="center" prop="auditState" label="审核状态"> <el-table-column align="center" prop="auditState" label="审核状态">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.audit_state1, row.auditState) }}</div> <div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="remark" label="备注" /> <el-table-column align="center" prop="remark" label="备注" width="150" show-overflow-tooltip />
<el-table-column align="center" fixed="right" label="操作" width="150"> <el-table-column align="center" fixed="right" label="操作" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
...@@ -326,7 +326,7 @@ import picAvatar from '@/views/smartSchool/schoolManage/introduce/schoolInfo/pro ...@@ -326,7 +326,7 @@ import picAvatar from '@/views/smartSchool/schoolManage/introduce/schoolInfo/pro
export default { export default {
name: 'index', name: 'index',
components: { Treeselect, picAvatar }, components: { Treeselect, picAvatar },
dicts: ['awards_type', 'awards_level', 'audit_state1'], dicts: ['awards_type', 'awards_level', 'audit_state'],
data() { data() {
return { return {
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
...@@ -465,7 +465,8 @@ export default { ...@@ -465,7 +465,8 @@ export default {
this.form.id = response.data.id; this.form.id = response.data.id;
console.log(this.form.id, ' this.form.id '); console.log(this.form.id, ' this.form.id ');
this.isEdit = true, this.isEdit = true,
this.accessoryUrl = this.pev + this.picUrl this.title = "审核信息"
this.accessoryUrl = this.pev + this.picUrl
this.form.competentDeptId = response.data.competentDeptId; this.form.competentDeptId = response.data.competentDeptId;
const params = { const params = {
competentDeptId: this.form.competentDeptId competentDeptId: this.form.competentDeptId
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</el-form> </el-form>
<el-table :data="tableData" border style="width: 100%"> <el-table :data="tableData" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" /> <el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="competitionName" label="比赛名称" /> <el-table-column align="center" prop="competitionName" label="比赛名称" width="130" show-overflow-tooltip />
<el-table-column align="center" prop="awardsName" label="获奖名称" /> <el-table-column align="center" prop="awardsName" label="获奖名称" />
<el-table-column align="center" prop="competentDept" label="主导部门" /> <el-table-column align="center" prop="competentDept" label="主导部门" />
<el-table-column align="center" prop="awardsLevel" label="获奖级别"> <el-table-column align="center" prop="awardsLevel" label="获奖级别">
...@@ -45,10 +45,10 @@ ...@@ -45,10 +45,10 @@
<div>{{ selectDictLabel(dict.type.awards_type, row.awardsType) }}</div> <div>{{ selectDictLabel(dict.type.awards_type, row.awardsType) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="deptDirector" label="部门主任" /> <el-table-column align="center" prop="deptDirector" label="部门主任" width="90px" />
<el-table-column align="center" prop="organizer" label="主办单位" /> <el-table-column align="center" prop="organizer" label="主办单位" />
<el-table-column align="center" prop="awardsTime" label="获奖时间" /> <el-table-column align="center" prop="awardsTime" label="获奖时间" width="100px" />
<el-table-column align="center" prop="证书图片" label="证书图片"> <el-table-column align="center" prop="证书图片" label="证书图片" width="120px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-carousel :interval="4000" height="100px"> <el-carousel :interval="4000" height="100px">
<el-carousel-item v-for="(item, index) in scope.row.schoolAccessoryList" :key="index"> <el-carousel-item v-for="(item, index) in scope.row.schoolAccessoryList" :key="index">
...@@ -60,10 +60,10 @@ ...@@ -60,10 +60,10 @@
</el-table-column> </el-table-column>
<el-table-column align="center" prop="auditState" label="审核状态"> <el-table-column align="center" prop="auditState" label="审核状态">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.audit_state1, row.auditState) }}</div> <div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" prop="remark" label="备注" /> <el-table-column align="center" prop="remark" label="备注" width="150" show-overflow-tooltip />
<el-table-column align="center" fixed="right" label="操作" width="150"> <el-table-column align="center" fixed="right" label="操作" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
...@@ -200,7 +200,7 @@ import { InsertDropdownListsHeaders } from '@alicloud/dingtalk/dist/doc_1_0/clie ...@@ -200,7 +200,7 @@ import { InsertDropdownListsHeaders } from '@alicloud/dingtalk/dist/doc_1_0/clie
export default { export default {
name: 'index', name: 'index',
components: { Treeselect, picAvatar }, components: { Treeselect, picAvatar },
dicts: ['awards_type', 'awards_level', 'audit_state1'], dicts: ['awards_type', 'awards_level', 'audit_state'],
data() { data() {
return { return {
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
......
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="60%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入嘉奖级别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 192px;">
</el-date-picker>
</el-form-item>
<el-form-item class="dialog-footer" style="display: flex; justify-content: center; align-items: center">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['school:studentAward:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['school:studentAward:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['school:studentAward:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-download" size="mini" @click="handleImport"
v-hasPermi="['school:studentAward:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button plain type="warning" icon="el-icon-upload2" size="mini" @click="handleExport"
v-hasPermi="['school:studentAward:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="studentAwardList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="100px" show-overflow-tooltip />
<el-table-column label="学期" align="center" prop="semester" width="80px" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" width="60px" />
<el-table-column label="年级" align="center" prop="grade" width="60px">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" width="60px" />
<el-table-column label="班级类型" align="center" prop="classType" width="80px" />
<el-table-column label="姓名" align="center" prop="name" width="80px" show-overflow-tooltip />
<el-table-column label="班主任" align="center" prop="classTeacher" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖级别" align="center" prop="awardRank" width="80px">
<template slot-scope="scope">
<dict-tag :options="dict.type.student_award_rank" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="嘉奖类别" align="center" prop="awardType" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖时间" align="center" prop="awardTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="审核状态" align="center" prop="auditState" fixed="right">
<template slot-scope="scope">
<dict-tag :options="dict.type.audit_states" :value="scope.row.auditState" />
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="180">
<template slot-scope="scope">
<div v-if="scope.row.auditState === '0' || scope.row.auditState === '3'">
<el-button @click="handleExamine(scope.row)" type="text" size="small">提交</el-button>
<el-button @click="handleUpdate(scope.row)" type="text" size="small">编辑</el-button>
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="handleDelete(scope.row)" type="text" size="small">删除</el-button>
</div>
<div v-else>
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</div>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改学生嘉奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="级部主任" prop="departmentDirector">
<el-input v-model="form.departmentDirector" placeholder="请输入级部主任" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入嘉奖类别" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="form.awardRank" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer">
<el-button v-if="!isEdit" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel">{{ isEdit ? '取 消' : '取 消' }}</el-button>
</div>
</el-dialog>
<!-- 审核对话框 -->
<el-dialog :title="title" :visible.sync="look" width="800px" append-to-body>
<el-form ref="form" :model="form" label-width="90px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="级部主任" prop="departmentDirector">
<el-input v-model="form.departmentDirector" placeholder="请输入级部主任" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入嘉奖类别" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="form.awardRank" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline>
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div class="mask" v-if="importing">
<div class="mask-content">
<i class="el-icon-loading"></i>
<span>正在导入,请稍候...</span>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
import { checkIdcard } from '@/utils/utilLibrary/validate'
import { listStudentAward, listStudentAwardgr, getStudentAward, delStudentAward, addStudentAward, addStudentAwardgr, updateStudentAward, reviewStudentAward } from "@/api/smartSchool/classAdviser/studentCommendation";
export default {
name: "StudentAward",
dicts: ['semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states', 'student_award_rank'],
data() {
return {
title: "",
importing: false,
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/school/studentAward/importDataGr",
},
uploadForm: {},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadLoading: false,
uploadFileLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生嘉奖表格数据
studentAwardList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
isEdit: false,
query: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
auditState: null,
createById: null,
updateById: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "界别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
sex: [
{ required: true, message: "性别不能为空", trigger: "blur" }
],
classTeacher: [
{ required: true, message: "班主任不能为空", trigger: "blur" }
],
departmentDirector: [
{ required: true, message: "级部主任不能为空", trigger: "blur" }
],
awardType: [
{ required: true, message: "嘉奖类别不能为空", trigger: "blur" }
],
awardRank: [
{ required: true, message: "嘉奖级别不能为空", trigger: "blur" }
],
awardTime: [
{ required: true, message: "嘉奖时间不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询学生嘉奖列表 */
getList() {
this.loading = true;
listStudentAwardgr(this.queryParams).then(response => {
this.studentAwardList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getStudentAward(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.open = true;
this.title = "查看学生嘉奖";
}).catch(error => {
this.$modal.closeLoading();
})
},
//提交
handleExamine(row) {
const ids = row.id || this.ids;
this.$modal
.confirm("是否提交该信息?")
.then(function () {
const params = {
id: row.id,
auditState: '1' // 表示同意
};
return reviewStudentAward(params);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("提交成功");
})
.catch((err) => {
console.error(err);
});
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
remark: null,
auditState: null,
createById: null,
createBy: null,
createTime: null,
updateById: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.isEdit = false;
this.title = "添加学生嘉奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStudentAward(id).then(response => {
this.form = response.data;
this.open = true;
this.isEdit = false;
this.title = "修改学生嘉奖";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStudentAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStudentAwardgr(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除学生嘉奖编号为"' + ids + '"的数据项?').then(function () {
return delStudentAward(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
handleImport() {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
this.importing = true;
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false;
this.upload.isUploading = false;
this.importing = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
this.download(
"/school/studentAward/importTemplate",
{},
`学生嘉奖_${Date.now()}.xlsx`
);
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/studentAward/exportGr', {
...this.queryParams
}, `学生嘉奖_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="60%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入嘉奖级别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 192px;">
</el-date-picker>
</el-form-item>
<el-form-item class="dialog-footer" style="display: flex; justify-content: center; align-items: center">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-upload2" size="mini" @click="handleExport">导出</el-button>
</el-col>
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="studentAwardList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="100px" show-overflow-tooltip />
<el-table-column label="学期" align="center" prop="semester" width="80px" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" width="60px" />
<el-table-column label="年级" align="center" prop="grade" width="60px">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" width="60px" />
<el-table-column label="班级类型" align="center" prop="classType" width="80px" />
<el-table-column label="姓名" align="center" prop="name" width="80px" show-overflow-tooltip />
<el-table-column label="班主任" align="center" prop="classTeacher" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖级别" align="center" prop="awardRank" width="80px">
<template slot-scope="scope">
<dict-tag :options="dict.type.student_award_rank" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="嘉奖类别" align="center" prop="awardType" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖时间" align="center" prop="awardTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="审核状态" align="center" prop="auditState" fixed="right">
<template slot-scope="scope">
<dict-tag :options="dict.type.audit_states" :value="scope.row.auditState" />
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改学生嘉奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="级部主任" prop="departmentDirector">
<el-input v-model="form.departmentDirector" placeholder="请输入级部主任" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入嘉奖类别" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="form.awardRank" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer">
<el-button v-if="!isEdit" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel">{{ isEdit ? '取 消' : '取 消' }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { checkIdcard } from '@/utils/utilLibrary/validate'
import { listStudentAward, listStudentAwardgr, getStudentAward, delStudentAward, addStudentAward, addStudentAwardgr, updateStudentAward, reviewStudentAward, listStudentAwardtg } from "@/api/smartSchool/classAdviser/studentCommendation";
export default {
name: "StudentAward",
dicts: ['semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states', 'student_award_rank'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生嘉奖表格数据
studentAwardList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
isEdit: false,
query: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
auditState: null,
createById: null,
updateById: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "界别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
sex: [
{ required: true, message: "性别不能为空", trigger: "blur" }
],
classTeacher: [
{ required: true, message: "班主任不能为空", trigger: "blur" }
],
departmentDirector: [
{ required: true, message: "级部主任不能为空", trigger: "blur" }
],
awardType: [
{ required: true, message: "嘉奖类别不能为空", trigger: "blur" }
],
awardRank: [
{ required: true, message: "嘉奖级别不能为空", trigger: "blur" }
],
awardTime: [
{ required: true, message: "嘉奖时间不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询学生嘉奖列表 */
getList() {
this.loading = true;
listStudentAwardtg(this.queryParams).then(response => {
this.studentAwardList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getStudentAward(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.open = true;
this.title = "查看学生嘉奖";
}).catch(error => {
this.$modal.closeLoading();
})
},
//审核
handleExamine(row) {
const id = row.id || this.ids;
getStudentAward(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.look = true;
}).catch(error => {
this.$modal.closeLoading();
})
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
reviewStudentAward(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.open = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
reviewStudentAward(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.open = false
this.getList()
}
})
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
remark: null,
auditState: null,
createById: null,
createBy: null,
createTime: null,
updateById: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加学生嘉奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStudentAward(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改学生嘉奖";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStudentAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStudentAward(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除学生嘉奖编号为"' + ids + '"的数据项?').then(function () {
return delStudentAward(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/studentAward/exportYtg', {
...this.queryParams
}, `学生嘉奖_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="60%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入嘉奖级别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 192px;">
</el-date-picker>
</el-form-item>
<el-form-item class="dialog-footer" style="display: flex; justify-content: center; align-items: center">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['school:studentAward:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['school:studentAward:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['school:studentAward:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-download" size="mini" @click="handleImport"
v-hasPermi="['school:studentAward:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-upload2" size="mini" @click="handleExport"
v-hasPermi="['school:studentAward:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="studentAwardList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="100px" show-overflow-tooltip />
<el-table-column label="学期" align="center" prop="semester" width="80px" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" width="60px" />
<el-table-column label="年级" align="center" prop="grade" width="60px">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" width="60px" />
<el-table-column label="班级类型" align="center" prop="classType" width="80px" />
<el-table-column label="姓名" align="center" prop="name" width="80px" show-overflow-tooltip />
<el-table-column label="班主任" align="center" prop="classTeacher" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖级别" align="center" prop="awardRank" width="80px">
<template slot-scope="scope">
<dict-tag :options="dict.type.student_award_rank" :value="scope.row.awardRank" />
</template>
</el-table-column>
<el-table-column label="嘉奖类别" align="center" prop="awardType" width="80px" show-overflow-tooltip />
<el-table-column label="嘉奖时间" align="center" prop="awardTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="审核状态" align="center" prop="auditState" fixed="right">
<template slot-scope="scope">
<dict-tag :options="dict.type.audit_states" :value="scope.row.auditState" />
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="180">
<template slot-scope="scope">
<div>
<el-button v-if="['1', '3'].includes(scope.row.auditState)" @click="handleExamine(scope.row)"
type="text" size="small">审核</el-button>
<el-button v-if="['1', '3'].includes(scope.row.auditState)" @click="handleUpdate(scope.row)"
type="text" size="small">编辑</el-button>
<el-button v-if="['1', '3'].includes(scope.row.auditState)" @click="handleDelete(scope.row)"
type="text" size="small">删除</el-button>
<el-button v-if="['1', '3'].includes(scope.row.auditState)" @click="handleLook(scope.row)"
type="text" size="small">查看</el-button>
</div>
<div>
<el-button v-if="scope.row.auditState === '2'" @click="handleUpdate(scope.row)" type="text"
size="small">编辑</el-button>
<el-button v-if="scope.row.auditState === '2'" @click="handleDelete(scope.row)" type="text"
size="small">删除</el-button>
<el-button v-if="scope.row.auditState === '2'" @click="handleLook(scope.row)" type="text"
size="small">查看</el-button>
</div>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改学生嘉奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="级部主任" prop="departmentDirector">
<el-input v-model="form.departmentDirector" placeholder="请输入级部主任" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入嘉奖类别" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="form.awardRank" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer">
<el-button v-if="!isEdit" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel">{{ isEdit ? '取 消' : '取 消' }}</el-button>
</div>
</el-dialog>
<!-- 审核对话框 -->
<el-dialog :title="title" :visible.sync="look" width="800px" append-to-body>
<el-form ref="form" :model="form" label-width="90px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="级部主任" prop="departmentDirector">
<el-input v-model="form.departmentDirector" placeholder="请输入级部主任" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入嘉奖类别" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="form.awardRank" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value"
:label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="handleAgree" type="primary" size="small">同意</el-button>
<el-button @click="handleDisagree" type="danger" size="small">不同意</el-button>
</div>
</el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline>
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div class="mask" v-if="importing">
<div class="mask-content">
<i class="el-icon-loading"></i>
<span>正在导入,请稍候...</span>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
import { checkIdcard } from '@/utils/utilLibrary/validate'
import { listStudentAward, listStudentAwardgr, getStudentAward, delStudentAward, addStudentAward, addStudentAwardgr, updateStudentAward, reviewStudentAward } from "@/api/smartSchool/classAdviser/studentCommendation";
export default {
name: "StudentAward",
dicts: ['semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states', 'student_award_rank'],
data() {
return {
title: "",
importing: false,
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/school/studentAward/importData",
},
uploadForm: {},
baseUrl: [process.env.VUE_APP_BASE_API],
uploadLoading: false,
uploadFileLoading: false,
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生嘉奖表格数据
studentAwardList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
isEdit: false,
query: false,
look: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
auditState: null,
createById: null,
updateById: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "界别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
sex: [
{ required: true, message: "性别不能为空", trigger: "blur" }
],
classTeacher: [
{ required: true, message: "班主任不能为空", trigger: "blur" }
],
departmentDirector: [
{ required: true, message: "级部主任不能为空", trigger: "blur" }
],
awardType: [
{ required: true, message: "嘉奖类别不能为空", trigger: "blur" }
],
awardRank: [
{ required: true, message: "嘉奖级别不能为空", trigger: "blur" }
],
awardTime: [
{ required: true, message: "嘉奖时间不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询学生嘉奖列表 */
getList() {
this.loading = true;
listStudentAward(this.queryParams).then(response => {
this.studentAwardList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.look = false;
this.reset();
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getStudentAward(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.open = true;
this.title = "查看学生嘉奖";
}).catch(error => {
this.$modal.closeLoading();
})
},
//审核
handleExamine(row) {
const id = row.id || this.ids;
getStudentAward(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.look = true;
this.title = "审核信息";
}).catch(error => {
this.$modal.closeLoading();
})
},
// 同意
handleAgree() {
const params = {
id: this.form.id,
auditState: '2' // 表示同意
};
reviewStudentAward(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.open = false;
this.getList()
}
})
},
// 不同意
handleDisagree() {
const params = {
id: this.form.id,
auditState: '3' // 表示不同意
};
reviewStudentAward(params).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('操作成功')
this.open = false
this.getList()
}
})
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
remark: null,
auditState: null,
createById: null,
createBy: null,
createTime: null,
updateById: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.isEdit = false;
this.title = "添加学生嘉奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStudentAward(id).then(response => {
this.form = response.data;
this.open = true;
this.isEdit = false;
this.title = "修改学生嘉奖";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStudentAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStudentAward(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除学生嘉奖编号为"' + ids + '"的数据项?').then(function () {
return delStudentAward(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
handleImport() {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
this.importing = true;
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false;
this.upload.isUploading = false;
this.importing = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
this.download(
"/school/studentAward/importTemplate",
{},
`学生嘉奖_${Date.now()}.xlsx`
);
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/studentAward/export', {
...this.queryParams
}, `学生嘉奖_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
...@@ -91,6 +91,9 @@ ...@@ -91,6 +91,9 @@
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button> <el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button plain type="warning" icon="el-icon-upload2" size="mini" @click="handleExport">导出</el-button>
</el-col>
</el-row> </el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="tableData" <el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="tableData"
...@@ -123,7 +126,7 @@ ...@@ -123,7 +126,7 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip /> <el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip /> <el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip /> <el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="violateType" sortable label="违纪类别" width="100" show-overflow-tooltip> <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div> <div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template> </template>
...@@ -142,11 +145,10 @@ ...@@ -142,11 +145,10 @@
<el-table-column align="center" prop="remark" sortable label="备注" show-overflow-tooltip /> <el-table-column align="center" prop="remark" sortable label="备注" show-overflow-tooltip />
<el-table-column align="center" prop="auditState" label="审核状态" fixed="right"> <el-table-column align="center" prop="auditState" label="审核状态" fixed="right">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.audit_state1, row.auditState) }}</div> <div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="110">
<el-table-column align="center" fixed="right" label="操作" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button> <el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template> </template>
...@@ -156,7 +158,7 @@ ...@@ -156,7 +158,7 @@
@pagination="getList" /> @pagination="getList" />
<!-- 查看--> <!-- 查看-->
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1100px"> <el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1200px">
<el-form :model="form" ref="form" size="small" label-width="120px" :disabled="isEdit" :rules="rules"> <el-form :model="form" ref="form" size="small" label-width="120px" :disabled="isEdit" :rules="rules">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
...@@ -226,7 +228,8 @@ ...@@ -226,7 +228,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="身份证号" prop="idCard"> <el-form-item label="
号" prop="idCard">
<el-input v-model="form.idCard" @blur="handleIdCardBlur" maxlength="18" placeholder="请输入" <el-input v-model="form.idCard" @blur="handleIdCardBlur" maxlength="18" placeholder="请输入"
clearable></el-input> clearable></el-input>
</el-form-item> </el-form-item>
...@@ -337,7 +340,7 @@ import { ...@@ -337,7 +340,7 @@ import {
import { checkIdcard } from '@/utils/utilLibrary/validate' import { checkIdcard } from '@/utils/utilLibrary/validate'
export default { export default {
name: 'index', name: 'index',
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state1', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'], dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() { data() {
return { return {
queryForm: { queryForm: {
...@@ -685,7 +688,11 @@ export default { ...@@ -685,7 +688,11 @@ export default {
this.getList(); this.getList();
this.query = false; this.query = false;
}, },
handleExport() {
this.download('/school/discipline/exportYtg', {
...this.queryParams
}, `学生违纪_${new Date().getTime()}.xlsx`)
}
}, },
} }
</script> </script>
......
...@@ -95,12 +95,12 @@ ...@@ -95,12 +95,12 @@
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button> <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport" <el-button type="success" plain icon="el-icon-download" size="mini" @click="handleImport"
v-hasPermi="['system:student:import']">导入 v-hasPermi="['system:student:import']">导入
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" <el-button type="warning" plain icon="el-icon-upload2" size="mini" @click="handleExport"
v-hasPermi="['system:student:export']">导出 v-hasPermi="['system:student:export']">导出
</el-button> </el-button>
</el-col> </el-col>
...@@ -135,7 +135,7 @@ ...@@ -135,7 +135,7 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip /> <el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip /> <el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip /> <el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="violateType" sortable label="违纪类别" width="100"> <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div> <div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template> </template>
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
<el-table-column align="center" prop="remark" sortable label="备注" show-overflow-tooltip /> <el-table-column align="center" prop="remark" sortable label="备注" show-overflow-tooltip />
<el-table-column align="center" prop="auditState" label="审核状态" fixed="right"> <el-table-column align="center" prop="auditState" label="审核状态" fixed="right">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.audit_state1, row.auditState) }}</div> <div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="200"> <el-table-column align="center" fixed="right" label="操作" width="200">
...@@ -713,7 +713,7 @@ export default { ...@@ -713,7 +713,7 @@ export default {
components: { components: {
fileUploadn, fileUploadn,
}, },
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state1', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'], dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() { data() {
return { return {
title: "", title: "",
...@@ -1014,6 +1014,7 @@ export default { ...@@ -1014,6 +1014,7 @@ export default {
this.form.id = response.data.id; this.form.id = response.data.id;
this.isEdit = true; this.isEdit = true;
this.open = true; this.open = true;
this.title = "审核信息";
this.form.gradeId = response.data.gradeId; this.form.gradeId = response.data.gradeId;
const params = { gradeId: this.form.gradeId }; const params = { gradeId: this.form.gradeId };
getClassList(params).then(response => { getClassList(params).then(response => {
......
...@@ -94,16 +94,16 @@ ...@@ -94,16 +94,16 @@
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button> <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5"> <el-col :span="1.5">
<el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport" <el-button type="success" plain icon="el-icon-download" size="mini" @click="handleImport"
v-hasPermi="['system:student:import']">导入 v-hasPermi="['system:student:import']">导入
</el-button> </el-button>
</el-col> --> </el-col>
<!-- <el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" <el-button plain type="warning" icon="el-icon-upload2" size="mini" @click="handleExport"
v-hasPermi="['system:student:export']">导出 v-hasPermi="['system:student:export']">导出
</el-button> </el-button>
</el-col> --> </el-col>
</el-row> </el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="tableData" <el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="tableData"
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip /> <el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip /> <el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip /> <el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="violateType" sortable label="违纪类别" width="100" show-overflow-tooltip> <el-table-column align="center" prop="violateType" sortable label="违纪类别" width="120" show-overflow-tooltip>
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div> <div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template> </template>
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
<el-table-column align="center" prop="remark" sortable label="备注" show-overflow-tooltip /> <el-table-column align="center" prop="remark" sortable label="备注" show-overflow-tooltip />
<el-table-column align="center" prop="auditState" label="审核状态" fixed="right"> <el-table-column align="center" prop="auditState" label="审核状态" fixed="right">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.audit_state1, row.auditState) }}</div> <div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="200"> <el-table-column align="center" fixed="right" label="操作" width="200">
...@@ -494,6 +494,37 @@ ...@@ -494,6 +494,37 @@
<el-button @click="cancelDialog">取 消</el-button> <el-button @click="cancelDialog">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline>
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div class="mask" v-if="importing">
<div class="mask-content">
<i class="el-icon-loading"></i>
<span>正在导入,请稍候...</span>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="cancelFile">取 消</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
...@@ -522,7 +553,7 @@ export default { ...@@ -522,7 +553,7 @@ export default {
components: { components: {
FilepersonUploadNew, FilepersonUploadNew,
}, },
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state1', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'], dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() { data() {
return { return {
title: "", title: "",
...@@ -541,7 +572,7 @@ export default { ...@@ -541,7 +572,7 @@ export default {
headers: { Authorization: "Bearer " + getToken() }, headers: { Authorization: "Bearer " + getToken() },
// 上传的地址 // 上传的地址
url: url:
process.env.VUE_APP_BASE_API + "/school/discipline/importData", process.env.VUE_APP_BASE_API + "/school/discipline/importDataGr",
}, },
fileList: [], fileList: [],
uploadForm: {}, uploadForm: {},
...@@ -927,10 +958,16 @@ export default { ...@@ -927,10 +958,16 @@ export default {
this.query = true; this.query = true;
}, },
handleQuery() { handleQuery() {
this.getList(); this.getList();
this.query = false; this.query = false;
}, },
/** 导出按钮操作 */
handleExport() {
this.download('/school/discipline/exportGr', {
...this.queryParams
}, `学生违纪_${new Date().getTime()}.xlsx`)
}
}, },
} }
......
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="50%" append-to-body>
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px" class="search">
<el-form-item label="学年">
<el-select v-model="queryForm.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期">
<el-select v-model="queryForm.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="gradeYear">
<el-select v-model="queryForm.gradeYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="gradeName">
<el-select v-model="queryForm.gradeName" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryForm.className" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级类型">
<el-select v-model="queryForm.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名">
<el-input v-model="queryForm.name" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="性别">
<el-select v-model="queryForm.sex" placeholder="请选择" clearable style="width: 100%;">
<el-option label="男" value="男"></el-option>
<el-option label="女" value="女"></el-option>
</el-select>
</el-form-item>
<el-form-item label="身份证号">
<el-input v-model="queryForm.idCard" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="班主任">
<el-select v-model="queryForm.classTeacherId" placeholder="请选择" :style="{ width: '100%' }" filterable>
<el-option v-for="item in deptOptions" :key="item.userId" :label="item.userName"
:value="item.userId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="违纪类别">
<el-select v-model="queryForm.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="违纪次数">
<el-select v-model="queryForm.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="处分结果">
<el-select v-model="queryForm.punishResult" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.punish_result" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="处分时间">
<el-date-picker v-model="queryForm.punishTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择"
clearable style="width: 100%;">
</el-date-picker>
</el-form-item>
<el-form-item class="dialog-footer" style="display: flex; justify-content: center; align-items: center">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="tableData"
:default-sort="{ prop: 'punishTime', order: 'descending' }" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="schoolYear" sortable label="学年" width="110" show-overflow-tooltip />
<el-table-column align="center" prop="semester" sortable label="学期" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.semester, row.semester) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="gradeYear" sortable label="届别" show-overflow-tooltip />
<el-table-column align="center" prop="gradeName" sortable label="年级" width="100" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.gradeName" />
</template>
</el-table-column>
<el-table-column align="center" prop="className" sortable label="班级" show-overflow-tooltip />
<el-table-column align="center" prop="classType" sortable label="班级类型" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.grade_type, row.classType) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="name" sortable label="姓名" show-overflow-tooltip />
<el-table-column align="center" prop="sex" sortable label="性别" show-overflow-tooltip>
<!-- <template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.sys_user_sex, row.sex) }}</div>
</template> -->
</el-table-column>
<el-table-column align="center" prop="idCard" sortable label="身份证号" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="classTeacher" sortable label="班主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="gradeDirector" sortable label="级部主任" width="100" show-overflow-tooltip />
<el-table-column align="center" prop="violateType" sortable label="违纪类别" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_type, row.violateType) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="violateNum" sortable label="违纪次数" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.violate_num, row.violateNum) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="punishResult" sortable label="处分结果" width="100" show-overflow-tooltip>
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.punish_result, row.punishResult) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="punishTime" sortable label="处分时间" width="150" show-overflow-tooltip />
<el-table-column align="center" prop="remark" sortable label="备注" show-overflow-tooltip />
<el-table-column align="center" prop="auditState" label="审核状态" fixed="right">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.audit_state, row.auditState) }}</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="180">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
<!-- 查看-->
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="1100px">
<el-form :model="form" ref="form" size="small" label-width="120px" :disabled="isEdit" :rules="rules">
<el-row>
<el-col :span="8">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="届别" prop="gradeYear">
<el-select v-model="form.gradeYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="年级" prop="gradeName">
<el-select v-model="form.gradeName" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" placeholder="请选择" clearable style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" @blur="handleIdCardBlur" maxlength="18" placeholder="请输入"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性别" prop="sex">
<el-select v-model="form.sex" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="班主任" prop="classTeacherId">
<el-select v-model="form.classTeacherId" placeholder="请选择" :style="{ width: '100%' }">
<el-option v-for="item in deptOptions" :key="item.userId" :label="item.userName"
:value="item.userId"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="级部主任" prop="gradeDirectorId">
<el-select v-model="form.gradeDirectorId" placeholder="请选择" :style="{ width: '100%' }">
<el-option v-for="item in deptOptions" :key="item.userId" :label="item.userName"
:value="item.userId"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="违纪类别" prop="violateType">
<el-select v-model="form.violateType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="违纪次数" prop="violateNum">
<el-select v-model="form.violateNum" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.violate_num" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="处分结果" prop="punishResult">
<el-select v-model="form.punishResult" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.punish_result" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="处分时间" prop="punishTime">
<el-date-picker v-model="form.punishTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择" clearable :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入" clearable type="textarea"
:rows="2"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-col :span="10">
<el-form-item label="附件 :">
<li class="el-upload-list__item ele-upload-list__item-content" v-for="file in fileList"
:key="file.id">
<el-link :href="`${baseUrl}${file.accessoryUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.accessoryName }} </span>
</el-link>
</li>
</el-form-item>
</el-col>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancelDialog">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listDiscipline,// 查看学生违纪列表(管理员)
listDisciplinegr,//查看学生违纪列表(个人)
getDiscipline,//查看详情
addDiscipline,// 新增学生违纪(管理员)
addDisciplinegr,// 新增学生违纪(个人)
updateDiscipline,// 编辑学生违纪
delDiscipline,// 删除学生违纪
subApply,//提交
getGrade,// 获取最新三个年级
getClassList,// 根据年级获取班级,
listDisciplinetg,//查看已通过
getTeacher,//获取教师
} from '@/api/smartSchool/awardsDisciplinary/studentViolation/disciplinaryManagemen'
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: 'index',
dicts: ['violate_type', 'violate_num', 'punish_result', 'sys_user_sex', 'grade_type', 'semester', 'audit_state', 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
query: false,
isEdit: false,
gradeLists: [],
//表格数据
tableData: [
],
//查看弹窗表格
ExperimentalData: [],
form: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacherId: "",
gradeDirectorId: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
remark: "",
},
//弹窗
dialogTableVisible: false,
total: 0,
gradeList: [],
classList: [],
deptOptions: [],
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "change" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "change" }
],
gradeYear: [
{ required: true, message: "届别不能为空", trigger: "change" }
],
sex: [
{ required: true, message: "性别不能为空", trigger: "change" }
],
gradeName: [
{ required: true, message: "年级不能为空", trigger: "change" }
],
gradeName: [
{ required: true, message: "班级不能为空", trigger: "change" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "change" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
classTeacherId: [
{ required: true, message: "班主任不能为空", trigger: "change" }
],
gradeDirectorId: [
{ required: true, message: "级部主任不能为空", trigger: "change" }
],
violateNum: [
{ required: true, message: "违纪次数不能为空", trigger: "change" }
],
violateType: [
{ required: true, message: "违纪类别不能为空", trigger: "change" }
],
punishResult: [
{ required: true, message: "处分结果不能为空", trigger: "change" }
],
punishTime: [
{ required: true, message: "处分时间不能为空", trigger: "change" }
],
},
}
},
created() {
this.getList();
this.getGradelist();
this.getTeacher();
},
methods: {
handleAdd() {
this.reset();
this.isEdit = false;
this.dialogTableVisible = true;
},
handleIdCardBlur() {
this.form.sex = this.getGenderFromIdCard(this.form.idCard); // 调用获取性别的方法
},
getGenderFromIdCard(idCard) {
const lastDigit = parseInt(idCard.charAt(idCard.length - 2)); // 获取倒数第二位数字
return lastDigit % 2 === 0 ? '女' : '男'; // 奇数表示男性,偶数表示女性
},
//修改
handleEdit(row) {
console.log(row);
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.isEdit = false;
this.dialogTableVisible = true;
}).catch(error => {
this.$modal.closeLoading();
})
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getDiscipline(id).then((response) => {
this.form = response.data;
this.fileList = response.data.schoolAccessoryList;
console.log(this.fileList, 'this.fileList');
this.isEdit = true;
this.dialogTableVisible = true;
this.form.gradeId = response.data.gradeId;
const params = { gradeId: this.form.gradeId };
getClassList(params).then(response => {
this.loading = false;
this.classList = response.data;
console.log("this.classList", this.classList);
});
}).catch(error => {
this.$modal.closeLoading();
})
},
cancelDialog() {
this.dialogTableVisible = false;
},
reset() {
this.form = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
gradeDirector: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
remark: "",
},
this.resetForm('form')
},
//审核
handleExamine(row) {
console.log(row, 'row');
this.$confirm('确认要提交申请?', '提示', {
confirmButtonText: '同意',
cancelButtonText: '不同意',
confirmButtonClass: 'custom-blue-button',
cancelButtonClass: 'custom-blue-button'
})
.then(() => {
// 弹出确认框,用户点击同意后执行的逻辑
const params = {
id: row.id,
auditState: '2' // 表示同意
};
subApply(params).then(res => {
if (res.code == 200) {
this.$message({
type: 'success',
message: '提交成功!'
});
this.getList();
}
});
})
.catch(() => {
// 用户点击不同意或者取消后执行的逻辑
const params = {
id: row.id,
auditState: '3' // 表示不同意
};
subApply(params).then(res => {
if (res.code == 200) {
this.$message({
type: 'info',
message: '已取消审核'
});
}
});
});
},
// 删除
handleDelete(row) {
this.$modal.confirm(`是否确认删除此数据?`).then(() => {
this.loading = true;
return delDiscipline(row.id);
}).then(() => {
this.getList();
this.loading = false;
this.$modal.msgSuccess("删除成功");
}).catch(() => {
this.loading = false
});
},
getList() {
listDisciplinetg(this.queryForm)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
})
.catch(error => {
this.loading = false;
console.log(error);
});
},
//获取教师下拉框
getTeacher() {
getTeacher().then(response => {
this.deptOptions = response.data;
console.log(this.deptOptions, ' this.deptOptions ');
});
},
//确定按钮
submitForm: function () {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateDiscipline(this.form).then(({ code }) => {
console.log(this.form, 'this.form');
if (code == 200) {
this.$modal.msgSuccess('修改成功')
this.dialogTableVisible = false
this.getList()
}
}).catch(() => {
this.$modal.msgError("修改失败");
});
} else {
addDiscipline(this.form).then(response => {
console.log(this.form, 'this.form');
this.$modal.msgSuccess('新增成功')
this.dialogTableVisible = false
this.getList()
}).catch(() => {
this.$modal.msgError("新增失败");
});
}
}
});
},
// 获取最新三个年级
getGradelist() {
getGrade().then(response => {
this.loading = false;
this.gradeList = response.data;
this.getClasslist()
console.log("this.gradeList", this.gradeList);
});
},
handleChange(selectedGrade) {
console.log(selectedGrade, 'selectedGrade');
this.getClasslist(selectedGrade); // 传递选择的年级id作为参数
},
// 根据年级获取班级
getClasslist(selectedGrade) {
const query = { gradeId: selectedGrade }; // 创建包含gradeId的对象
getClassList(query).then(response => {
this.loading = false;
this.classList = response.data;
console.log("this.classList", this.classList);
});
},
resetQuery() {
this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
gradeYear: "",
gradeId: "",
classId: "",
classType: "",
name: "",
sex: "",
idCard: "",
classTeacher: "",
violateType: "",
violateNum: "",
punishResult: "",
punishTime: "",
},
this.getList();
},
handleQuerycx() {
this.query = true;
},
handleQuery() {
this.getList();
this.query = false;
},
},
}
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="姓名:"> <el-form-item label="姓名:">
<el-input v-model="queryParams.studentName" placeholder="请输入学生姓名" clearable <el-input v-model="queryParams.studentName" placeholder="请输入学生姓名" clearable
@keyup.enter.native="handleQuery"></el-input> @keyup.enter.native="handleQuery"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="性别:"> <el-form-item label="性别:">
<el-select v-model="queryParams.sex" placeholder="请输入学生性别"> <el-select v-model="queryParams.sex" placeholder="请输入学生性别">
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</el-form-item> </el-form-item>
<el-form-item label="注册序号:"> <el-form-item label="注册序号:">
<el-input v-model="queryParams.schoolNo" placeholder="请输入学生注册序号" clearable <el-input v-model="queryParams.schoolNo" placeholder="请输入学生注册序号" clearable
@keyup.enter.native="handleQuery"></el-input> @keyup.enter.native="handleQuery"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="学生状态:"> <el-form-item label="学生状态:">
<el-select v-model="queryParams.studentStatus" placeholder="学生状态"> <el-select v-model="queryParams.studentStatus" placeholder="学生状态">
...@@ -58,46 +58,46 @@ ...@@ -58,46 +58,46 @@
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<el-select style=" position: absolute; right: 0px; " size="mini" v-model="queryParams.schoolYear" <el-select style=" position: absolute; right: 0px; " size="mini" v-model="queryParams.schoolYear"
@change="handleQuery"> @change="handleQuery">
<el-option v-for="item in yearList" :key="item.value" :value="item.value" :label="item.label"></el-option> <el-option v-for="item in yearList" :key="item.value" :value="item.value" :label="item.label"></el-option>
</el-select> </el-select>
</el-col> </el-col>
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>--> <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>-->
</el-row> </el-row>
<el-table stripe v-loading="loading" width="100%" :cell-style="cellStyle" :data="studentList" <el-table stripe v-loading="loading" width="100%" :cell-style="cellStyle" :data="studentList"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/> <el-table-column type="selection" width="55" align="center" />
<el-table-column fixed="left" key="avatar" align="center" prop="avatar" label="头像"> <el-table-column fixed="left" key="avatar" align="center" prop="avatar" label="头像">
<template slot-scope="scope"> <template slot-scope="scope">
<ListImage :image-url="isEmptyAvatar(scope.row.avatar, scope.row.sex)"></ListImage> <ListImage :image-url="isEmptyAvatar(scope.row.avatar, scope.row.sex)"></ListImage>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="left" key="studentName" min-width="80" align="center" prop="studentName" <el-table-column fixed="left" key="studentName" min-width="80" align="center" prop="studentName"
label="姓名"></el-table-column> label="姓名"></el-table-column>
<el-table-column key="score" min-width="80" align="center" prop="score" label="积分"/> <el-table-column key="score" min-width="80" align="center" prop="score" label="积分" />
<el-table-column key="sex" min-width="50px" align="center" prop="sex" label="性别"> <el-table-column key="sex" min-width="50px" align="center" prop="sex" label="性别">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"></dict-tag> <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column key="nation" width="100" align="center" prop="nation" label="民族"/> <el-table-column key="nation" width="100" align="center" prop="nation" label="民族" />
<el-table-column key="nativePlace" min-width="100" header-align="center" align="center" prop="nativePlace" <el-table-column key="nativePlace" min-width="100" header-align="center" align="center" prop="nativePlace"
label="籍贯" show-overflow-tooltip></el-table-column> label="籍贯" show-overflow-tooltip></el-table-column>
<el-table-column key="idCard" width="180" align="center" prop="idCard" label="身份证号"/> <el-table-column key="idCard" width="180" align="center" prop="idCard" label="身份证号" />
<el-table-column key="stuTelephone" width="130" align="center" prop="stuTelephone" label="联系电话"/> <el-table-column key="stuTelephone" width="130" align="center" prop="stuTelephone" label="联系电话" />
<el-table-column key="birthAddress" width="150" align="center" prop="birthAddress" label="出生地"/> <el-table-column key="birthAddress" width="150" align="center" prop="birthAddress" label="出生地" />
<el-table-column key="postalCode" width="150" align="center" prop="postalCode" label="邮政编码"/> <el-table-column key="postalCode" width="150" align="center" prop="postalCode" label="邮政编码" />
<el-table-column key="enrollmentYear" width="100" align="center" prop="enrollmentYear" label="级/届"/> <el-table-column key="enrollmentYear" width="100" align="center" prop="enrollmentYear" label="级/届" />
<el-table-column key="enrollmentTime" min-width="100" header-align="center" align="center" prop="enrollmentTime" <el-table-column key="enrollmentTime" min-width="100" header-align="center" align="center" prop="enrollmentTime"
label="入学时间" show-overflow-tooltip></el-table-column> label="入学时间" show-overflow-tooltip></el-table-column>
<el-table-column key="platform" width="180" align="center" prop="platform" label="平台"/> <el-table-column key="platform" width="180" align="center" prop="platform" label="平台" />
<el-table-column key="studentType" width="130" align="center" prop="studentType" label="学生类型"> <el-table-column key="studentType" width="130" align="center" prop="studentType" label="学生类型">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.student_type" :value="scope.row.studentType"></dict-tag> <dict-tag :options="dict.type.student_type" :value="scope.row.studentType"></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column key="provincialNumber" width="150" align="center" prop="provincialNumber" label="省学籍辅号"/> <el-table-column key="provincialNumber" width="150" align="center" prop="provincialNumber" label="省学籍辅号" />
<el-table-column key="nationalNumber" width="150" align="center" prop="nationalNumber" label="全国学籍号"/> <el-table-column key="nationalNumber" width="150" align="center" prop="nationalNumber" label="全国学籍号" />
<el-table-column key="studentStatus" width="80" align="center" prop="studentStatus" label="学生状态"> <el-table-column key="studentStatus" width="80" align="center" prop="studentStatus" label="学生状态">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.child_state" :value="scope.row.studentStatus"></dict-tag> <dict-tag :options="dict.type.child_state" :value="scope.row.studentStatus"></dict-tag>
...@@ -108,41 +108,39 @@ ...@@ -108,41 +108,39 @@
<dict-tag :options="dict.type.student_type" :value="scope.row.studentType"></dict-tag> <dict-tag :options="dict.type.student_type" :value="scope.row.studentType"></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column key="schoolNo" width="100" align="center" prop="schoolNo" label="注册序号"/> <el-table-column key="schoolNo" width="100" align="center" prop="schoolNo" label="注册序号" />
<el-table-column key="registeredAddress" min-width="100" header-align="center" align="center" <el-table-column key="registeredAddress" min-width="100" header-align="center" align="center"
prop="registeredAddress" label="户口所在地" show-overflow-tooltip></el-table-column> prop="registeredAddress" label="户口所在地" show-overflow-tooltip></el-table-column>
<el-table-column key="registeredType" width="180" align="center" prop="registeredType" label="户口性质"> <el-table-column key="registeredType" width="180" align="center" prop="registeredType" label="户口性质">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.regist_type" :value="scope.row.registeredType"/> <dict-tag :options="dict.type.regist_type" :value="scope.row.registeredType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column key="juniorSchool" width="130" align="center" prop="juniorSchool" label="初中学校"/> <el-table-column key="juniorSchool" width="130" align="center" prop="juniorSchool" label="初中学校" />
<el-table-column key="region" width="150" align="center" prop="region" label="国家地区"/> <el-table-column key="region" width="150" align="center" prop="region" label="国家地区" />
<el-table-column key="foreignLanguages" width="150" align="center" prop="foreignLanguages" label="外语语种"/> <el-table-column key="foreignLanguages" width="150" align="center" prop="foreignLanguages" label="外语语种" />
<el-table-column key="appearance" width="150" align="center" prop="appearance" label="政治面貌"> <el-table-column key="appearance" width="150" align="center" prop="appearance" label="政治面貌">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.politics_tatus" :value="scope.row.appearance"></dict-tag> <dict-tag :options="dict.type.politics_tatus" :value="scope.row.appearance"></dict-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column key="birthday" width="120" sortable align="center" prop="birthday" <el-table-column key="birthday" width="120" sortable align="center" prop="birthday" label="出生日期"></el-table-column>
label="出生日期"></el-table-column>
<el-table-column key="homeAddress" min-width="200" align="center" prop="homeAddress" label="家庭住址" <el-table-column key="homeAddress" min-width="200" align="center" prop="homeAddress" label="家庭住址"
show-overflow-tooltip> show-overflow-tooltip>
<template v-slot="scope"> <template v-slot="scope">
<span class="one-line-omit"> <span class="one-line-omit">
{{ scope.row.homeAddress }} {{ scope.row.homeAddress }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column key="bloodType" width="100" align="center" prop="bloodType" label="血型"/> <el-table-column key="bloodType" width="100" align="center" prop="bloodType" label="血型" />
<el-table-column key="health" min-width="100" header-align="center" align="center" prop="health" label="健康状况" <el-table-column key="health" min-width="100" header-align="center" align="center" prop="health" label="健康状况"
show-overflow-tooltip></el-table-column> show-overflow-tooltip></el-table-column>
<el-table-column key="otherRegions" width="180" align="center" prop="otherRegions" label="港澳台侨"/> <el-table-column key="otherRegions" width="180" align="center" prop="otherRegions" label="港澳台侨" />
<el-table-column key="floatingPopulation" width="130" align="center" prop="floatingPopulation" <el-table-column key="floatingPopulation" width="130" align="center" prop="floatingPopulation" label="流动人口状况" />
label="流动人口状况"/>
<el-table-column key="onlyChild" width="150" align="center" prop="onlyChild" label="独生子女"> <el-table-column key="onlyChild" width="150" align="center" prop="onlyChild" label="独生子女">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.only_child" :value="scope.row.onlyChild"/> <dict-tag :options="dict.type.only_child" :value="scope.row.onlyChild" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column key="nature" width="150" align="center" prop="nature" label="性质"> <el-table-column key="nature" width="150" align="center" prop="nature" label="性质">
...@@ -159,22 +157,24 @@ ...@@ -159,22 +157,24 @@
</el-button> </el-button>
<el-button size="mini" type="text" @click="parentsEdit(scope.row)">家长信息 <el-button size="mini" type="text" @click="parentsEdit(scope.row)">家长信息
</el-button> </el-button>
<!-- <el-button size="mini" type="text" @click="moralScore(scope.row)">学生积分 <el-button size="mini" type="text" @click="award(scope.row)">嘉奖
</el-button> --> </el-button>
<el-button size="mini" type="text" @click="discipline(scope.row)">违纪
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<ExPagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <ExPagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList"/> @pagination="getList" />
<!-- 添加或修改学生对话框 --> <!-- 添加或修改学生对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1200px"> <el-dialog :title="title" :visible.sync="open" width="1200px">
<el-form ref="form" :model="form" label-width="114px" :rules="rules"> <el-form ref="form" :model="form" label-width="114px" :rules="rules">
<el-form-item prop="avatar" label-width="0" style="display: flex; justify-content: center;"> <el-form-item prop="avatar" label-width="0" style="display: flex; justify-content: center;">
<el-upload v-loading="uploadLoading" class="avatar-uploader" :disabled="isEdit" action="#" accept="image/*" <el-upload v-loading="uploadLoading" class="avatar-uploader" :disabled="isEdit" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload" :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"
:http-request="uploadImage"> :http-request="uploadImage">
<img v-if="imageUrl" :src="imageUrl" style="width: 178px; height: 178px;" class="avatar" alt=""/> <img v-if="imageUrl" :src="imageUrl" style="width: 178px; height: 178px;" class="avatar" alt="" />
<!-- :preview-src-list="[imageUrl]"--> <!-- :preview-src-list="[imageUrl]"-->
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
...@@ -197,7 +197,7 @@ ...@@ -197,7 +197,7 @@
<el-form-item label="性别:" prop="sex"> <el-form-item label="性别:" prop="sex">
<el-select v-model="form.sex" placeholder="请输入性别" style="width: 100%;" :disabled="isEdit"> <el-select v-model="form.sex" placeholder="请输入性别" style="width: 100%;" :disabled="isEdit">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -212,34 +212,30 @@ ...@@ -212,34 +212,30 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="出生日期:" prop="birthday"> <el-form-item label="出生日期:" prop="birthday">
<el-date-picker v-model="form.birthday" :disabled="isEdit" type="date" value-format="yyyy-MM-dd" <el-date-picker v-model="form.birthday" :disabled="isEdit" type="date" value-format="yyyy-MM-dd"
placeholder="请选择出生日期" style="width: 100%;"></el-date-picker> placeholder="请选择出生日期" style="width: 100%;"></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="班级:" prop="classAlias"> <el-form-item label="班级:" prop="classAlias">
<el-input :disabled="isEdit" v-model="form.classAlias" placeholder="请选择班级" readonly <el-input :disabled="isEdit" v-model="form.classAlias" placeholder="请选择班级" readonly @focus="selectClass"
@focus="selectClass" style="width: 100%"></el-input>
style="width: 100%"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="联系电话:" prop="stuTelephone"> <el-form-item label="联系电话:" prop="stuTelephone">
<el-input placeholder="请输入联系电话" v-model="form.stuTelephone" <el-input placeholder="请输入联系电话" v-model="form.stuTelephone" :disabled="allowEdit"></el-input>
:disabled="allowEdit"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="现住地址:" prop="homeAddress"> <el-form-item label="现住地址:" prop="homeAddress">
<el-input placeholder="请输入现住地址" v-model="form.homeAddress" <el-input placeholder="请输入现住地址" v-model="form.homeAddress" :disabled="allowEdit"></el-input>
:disabled="allowEdit"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="通讯地址:" prop="postalAddress"> <el-form-item label="通讯地址:" prop="postalAddress">
<el-input placeholder="请输入通讯地址" v-model="form.postalAddress" <el-input placeholder="请输入通讯地址" v-model="form.postalAddress" :disabled="allowEdit"></el-input>
:disabled="allowEdit"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -264,14 +260,14 @@ ...@@ -264,14 +260,14 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="级/届:" prop="enrollmentYear"> <el-form-item label="级/届:" prop="enrollmentYear">
<el-date-picker style="width:100%" :disabled="isEdit" v-model="form.enrollmentYear" value-format="yyyy" <el-date-picker style="width:100%" :disabled="isEdit" v-model="form.enrollmentYear" value-format="yyyy"
type="year" placeholder="选择入学年"> type="year" placeholder="选择入学年">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="入学时间:" prop="enrollmentTime"> <el-form-item label="入学时间:" prop="enrollmentTime">
<el-date-picker v-model="form.enrollmentTime" :disabled="isEdit" style="width: 100%" type="date" <el-date-picker v-model="form.enrollmentTime" :disabled="isEdit" style="width: 100%" type="date"
placeholder="选择入学时间"> placeholder="选择入学时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -285,8 +281,7 @@ ...@@ -285,8 +281,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="民族:" prop="nation"> <el-form-item label="民族:" prop="nation">
<el-select :disabled="isEdit" v-model="form.nation" placeholder="请选择民族" style="width: 100%"> <el-select :disabled="isEdit" v-model="form.nation" placeholder="请选择民族" style="width: 100%">
<el-option v-for="item in Nations" :key="item.label" :label="item.label" <el-option v-for="item in Nations" :key="item.label" :label="item.label" :value="item.label"></el-option>
:value="item.label"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -305,26 +300,23 @@ ...@@ -305,26 +300,23 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="校园一卡通:" prop="oneCard"> <el-form-item label="校园一卡通:" prop="oneCard">
<el-input :disabled="isEdit" placeholder="请输入校园一卡通号码" v-model="form.oneCard" <el-input :disabled="isEdit" placeholder="请输入校园一卡通号码" v-model="form.oneCard" clearable></el-input>
clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="学生状态:" prop="studentStatus"> <el-form-item label="学生状态:" prop="studentStatus">
<el-select :disabled="isEdit" v-model="form.studentStatus" placeholder="请输入学生状态" <el-select :disabled="isEdit" v-model="form.studentStatus" placeholder="请输入学生状态" style="width: 100%;">
style="width: 100%;">
<el-option v-for="dict in dict.type.child_state" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.child_state" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="学生类型:" prop="studentType"> <el-form-item label="学生类型:" prop="studentType">
<el-select :disabled="isEdit" v-model="form.studentType" placeholder="请输入学生类型" <el-select :disabled="isEdit" v-model="form.studentType" placeholder="请输入学生类型" style="width: 100%;">
style="width: 100%;">
<el-option v-for="dict in dict.type.student_type" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.student_type" :key="dict.value" :label="dict.label"
:value="dict.value">{{ dict.label }} :value="dict.value">{{ dict.label }}
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -338,12 +330,8 @@ ...@@ -338,12 +330,8 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="户口性质:" prop="registeredType"> <el-form-item label="户口性质:" prop="registeredType">
<el-select :disabled="isEdit" v-model="form.registeredType" style="width: 100%" <el-select :disabled="isEdit" v-model="form.registeredType" style="width: 100%" placeholder="请输入户口性质">
placeholder="请输入户口性质"> <el-option v-for="dict in dict.type.regist_type" :key="dict.value" :label="dict.label"
<el-option
v-for="dict in dict.type.regist_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
...@@ -370,7 +358,7 @@ ...@@ -370,7 +358,7 @@
<el-form-item label="政治面貌:" prop="appearance"> <el-form-item label="政治面貌:" prop="appearance">
<el-select :disabled="isEdit" v-model="form.appearance" style="width: 100%" placeholder="请选择政治面貌"> <el-select :disabled="isEdit" v-model="form.appearance" style="width: 100%" placeholder="请选择政治面貌">
<el-option v-for="dict in dict.type.politics_tatus" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.politics_tatus" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -396,19 +384,13 @@ ...@@ -396,19 +384,13 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="流动人口状况:" prop="floatingPopulation"> <el-form-item label="流动人口状况:" prop="floatingPopulation">
<el-input :disabled="isEdit" placeholder="请输入流动人口状况" <el-input :disabled="isEdit" placeholder="请输入流动人口状况" v-model="form.floatingPopulation"></el-input>
v-model="form.floatingPopulation"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="独生子女:" prop="onlyChild"> <el-form-item label="独生子女:" prop="onlyChild">
<el-select :disabled="isEdit" v-model="form.onlyChild" style="width: 100%" <el-select :disabled="isEdit" v-model="form.onlyChild" style="width: 100%" placeholder="请选择是否为独生子女">
placeholder="请选择是否为独生子女"> <el-option v-for="dict in dict.type.only_child" :key="dict.value" :label="dict.label" :value="dict.value">
<el-option
v-for="dict in dict.type.only_child"
:key="dict.value"
:label="dict.label"
:value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -417,7 +399,7 @@ ...@@ -417,7 +399,7 @@
<el-form-item label="性质:" prop="nature"> <el-form-item label="性质:" prop="nature">
<el-select :disabled="isEdit" v-model="form.nature" placeholder="请选择学生性质" style="width: 100%;"> <el-select :disabled="isEdit" v-model="form.nature" placeholder="请选择学生性质" style="width: 100%;">
<el-option v-for="dict in dict.type.student_nature" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.student_nature" :key="dict.value" :label="dict.label"
:value="dict.value"> :value="dict.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -446,8 +428,8 @@ ...@@ -446,8 +428,8 @@
<!-- 用户导入对话框 --> <!-- 用户导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body> <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag> :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip"> <div class="el-upload__tip text-center" slot="tip">
...@@ -457,7 +439,7 @@ ...@@ -457,7 +439,7 @@
<!--</div>--> <!--</div>-->
<span>仅允许导入xls、xlsx格式文件。</span> <span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板 @click="importTemplate">下载模板
</el-link> </el-link>
</div> </div>
</el-upload> </el-upload>
...@@ -468,7 +450,7 @@ ...@@ -468,7 +450,7 @@
</el-dialog> </el-dialog>
<!-- 选择班级 --> <!-- 选择班级 -->
<GradeClassSelect v-if="classOptions.open" :openSelect.sync="classOptions.open" :title="classOptions.title" <GradeClassSelect v-if="classOptions.open" :openSelect.sync="classOptions.open" :title="classOptions.title"
@getClassList="classList" @setClassInfo="setClassInfo"></GradeClassSelect> @getClassList="classList" @setClassInfo="setClassInfo"></GradeClassSelect>
<ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable> <ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable>
</div> </div>
</template> </template>
...@@ -483,19 +465,19 @@ import { ...@@ -483,19 +465,19 @@ import {
addStudent, addStudent,
updateStudent updateStudent
} from '@/api/smartSchool/classAdviser/studentManage' } from '@/api/smartSchool/classAdviser/studentManage'
import {getToken} from '@/utils/auth' import { getToken } from '@/utils/auth'
import {CustomCellStyle} from '@/enums/customStyle' import { CustomCellStyle } from '@/enums/customStyle'
import PicAvatar from '@/views/smartSchool/schoolManage/introduce/schoolInfo/profile/picAvatar' import PicAvatar from '@/views/smartSchool/schoolManage/introduce/schoolInfo/profile/picAvatar'
import {uploadImage as commonUpload} from '@/api/common' import { uploadImage as commonUpload } from '@/api/common'
import {ExportType, Gender, Nations} from '@/enums/common' import { ExportType, Gender, Nations } from '@/enums/common'
import {checkIdcard} from '@/utils/utilLibrary/validate' import { checkIdcard } from '@/utils/utilLibrary/validate'
import {getYearList} from '@/utils/utilLibrary/getYearList' import { getYearList } from '@/utils/utilLibrary/getYearList'
import {getNewYear} from "@/api/smartSchool/gradeWork/classView"; import { getNewYear } from "@/api/smartSchool/gradeWork/classView";
export default { export default {
name: 'ClassAdviserStudentManage', name: 'ClassAdviserStudentManage',
components: {PicAvatar, GradeClassSelect}, components: { PicAvatar, GradeClassSelect },
dicts: ['only_child', 'regist_type', 'sys_user_sex', 'Grade', 'Class', 'student_type', 'Whether_Delete', 'child_state', 'politics_tatus', 'student_nature'], dicts: ['only_child', 'regist_type', 'sys_user_sex', 'Grade', 'Class', 'student_type', 'Whether_Delete', 'child_state', 'politics_tatus', 'student_nature'],
data() { data() {
return { return {
...@@ -508,22 +490,22 @@ export default { ...@@ -508,22 +490,22 @@ export default {
pic: [], pic: [],
// 隐藏与显示列信息 // 隐藏与显示列信息
columns: [ columns: [
{key: 0, label: `头像`, visible: true}, { key: 0, label: `头像`, visible: true },
{key: 1, label: `姓名`, visible: true}, { key: 1, label: `姓名`, visible: true },
{key: 2, label: `性别`, visible: true}, { key: 2, label: `性别`, visible: true },
{key: 3, label: `出生日期`, visible: true}, { key: 3, label: `出生日期`, visible: true },
{key: 4, label: `民族`, visible: true}, { key: 4, label: `民族`, visible: true },
{key: 5, label: `家庭住址`, visible: true}, { key: 5, label: `家庭住址`, visible: true },
{key: 6, label: `籍贯`, visible: true}, { key: 6, label: `籍贯`, visible: true },
{key: 7, label: `年级`, visible: true}, { key: 7, label: `年级`, visible: true },
{key: 8, label: `班级`, visible: true}, { key: 8, label: `班级`, visible: true },
{key: 9, label: `禁忌食物`, visible: true}, { key: 9, label: `禁忌食物`, visible: true },
{key: 10, label: `学年`, visible: true}, { key: 10, label: `学年`, visible: true },
{key: 11, label: `身份证号`, visible: true}, { key: 11, label: `身份证号`, visible: true },
{key: 12, label: `注册序号`, visible: true}, { key: 12, label: `注册序号`, visible: true },
{key: 13, label: `学生状态`, visible: true}, { key: 13, label: `学生状态`, visible: true },
{key: 14, label: `学生类型`, visible: true}, { key: 14, label: `学生类型`, visible: true },
{key: 15, label: `校园一卡通`, visible: true} { key: 15, label: `校园一卡通`, visible: true }
], ],
// 限制选择日期不能超过今天 // 限制选择日期不能超过今天
pickerOptions: { pickerOptions: {
...@@ -612,7 +594,7 @@ export default { ...@@ -612,7 +594,7 @@ export default {
// 是否更新已经存在的学生数据 // 是否更新已经存在的学生数据
updateSupport: 0, updateSupport: 0,
// 设置上传的请求头部 // 设置上传的请求头部
headers: {Authorization: 'Bearer ' + getToken()}, headers: { Authorization: 'Bearer ' + getToken() },
// 上传的地址 // 上传的地址
url: process.env.VUE_APP_BASE_API + '/school/student/importData' url: process.env.VUE_APP_BASE_API + '/school/student/importData'
}, },
...@@ -792,15 +774,15 @@ export default { ...@@ -792,15 +774,15 @@ export default {
this.$refs['form'].validate(valid => { this.$refs['form'].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != undefined) { if (this.form.id != undefined) {
updateStudent(this.form).then(({code}) => { updateStudent(this.form).then(({ code }) => {
if (code == 200) { if (code == 200) {
this.$modal.msgSuccess('修改成功') this.$modal.msgSuccess('修改成功')
this.open = false this.open = false
this.getList() this.getList()
} }
}).catch(() => { }).catch(() => {
this.$modal.msgError("修改失败"); this.$modal.msgError("修改失败");
} }
) )
} else { } else {
addStudent(this.form).then(response => { addStudent(this.form).then(response => {
...@@ -808,8 +790,8 @@ export default { ...@@ -808,8 +790,8 @@ export default {
this.open = false this.open = false
this.getList() this.getList()
}).catch(() => { }).catch(() => {
this.$modal.msgError("新增失败"); this.$modal.msgError("新增失败");
} }
) )
} }
} }
...@@ -844,7 +826,7 @@ export default { ...@@ -844,7 +826,7 @@ export default {
this.upload.open = false this.upload.open = false
this.upload.isUploading = false this.upload.isUploading = false
this.$refs.upload.clearFiles() this.$refs.upload.clearFiles()
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', {dangerouslyUseHTMLString: true}) this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', { dangerouslyUseHTMLString: true })
this.getList() this.getList()
}, },
// 提交上传文件 // 提交上传文件
...@@ -860,9 +842,9 @@ export default { ...@@ -860,9 +842,9 @@ export default {
exportFile(callback) { exportFile(callback) {
const ids = this.ids const ids = this.ids
const options = [ const options = [
{type: ExportType.TOTAL, path: '/school/student/export', params: {}}, { type: ExportType.TOTAL, path: '/school/student/export', params: {} },
{type: ExportType.SELECT, path: '/school/student/export/' + ids, params: {}}, { type: ExportType.SELECT, path: '/school/student/export/' + ids, params: {} },
{type: ExportType.QUERY, path: '/school/student/export', params: this.queryParams} { type: ExportType.QUERY, path: '/school/student/export', params: this.queryParams }
] ]
callback(options, `学生信息${new Date().getTime()}.xlsx`) callback(options, `学生信息${new Date().getTime()}.xlsx`)
}, },
...@@ -926,16 +908,43 @@ export default { ...@@ -926,16 +908,43 @@ export default {
} }
}) })
}, },
// 学生积分 // 学生嘉奖
award(row) {
this.$router.push({
path: '/classAdviser/studentManage/studentCommendation',
query: {
// id: row.id,
// name: row.studentName,
// idCard: row.idCard,
// schoolNo: row.schoolNo,
// schoolYear: this.queryParams.schoolYear
}
})
},
//违纪
discipline(row) {
this.$router.push({
path: '/classAdviser/studentManage/discipline',
query: {
// id: row.id,
// name: row.studentName,
// idCard: row.idCard,
// schoolNo: row.schoolNo,
// schoolYear: this.queryParams.schoolYear
}
})
},
// // 学生积分
// moralScore(row) { // moralScore(row) {
// this.$router.push({ // this.$router.push({
// path: '/classAdviser/studentmanage/score', // path: '/classAdviser/studentmanage/score',
// query: { // query: {
// id: row.id, // // id: row.id,
// name: row.studentName, // // name: row.studentName,
// idCard: row.idCard, // // idCard: row.idCard,
// schoolNo: row.schoolNo, // // schoolNo: row.schoolNo,
// schoolYear: this.queryParams.schoolYear // // schoolYear: this.queryParams.schoolYear
// } // }
// }) // })
// }, // },
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label" :value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="queryParams.awardType" placeholder="请输入嘉奖级别" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="嘉奖级别" prop="awardRank">
<el-select v-model="queryParams.awardRank" clearable placeholder="请选择">
<el-option v-for="dict in dict.type.student_award_rank" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['school:studentAward:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['school:studentAward:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['school:studentAward:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-upload" size="mini" @click="handleImport"
v-hasPermi="['school:studentAward:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['school:studentAward:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :data="studentAwardList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="学期" align="center" prop="semester">
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" />
<el-table-column label="年级" align="center" prop="grade">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="班主任" align="center" prop="classTeacher" />
<el-table-column label="嘉奖级别" align="center" prop="awardRank" />
<el-table-column label="嘉奖类别" align="center" prop="awardType" />
<el-table-column label="嘉奖时间" align="center" prop="awardTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['school:studentAward:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['school:studentAward:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改学生嘉奖对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-input v-model="form.classType" placeholder="请输入班级类型" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="级部主任" prop="departmentDirector">
<el-input v-model="form.departmentDirector" placeholder="请输入级部主任" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖类别" prop="awardType">
<el-input v-model="form.awardType" placeholder="请输入嘉奖类别" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="嘉奖级别" prop="awardRank">
<el-input v-model="form.awardRank" placeholder="请输入嘉奖级别" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="嘉奖时间" prop="awardTime">
<el-date-picker clearable v-model="form.awardTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择嘉奖时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listStudentAward, listStudentAwardgr, getStudentAward, delStudentAward, addStudentAward, addStudentAwardgr, updateStudentAward, reviewStudentAward } from "@/api/smartSchool/classAdviser/studentCommendation";
export default {
name: "StudentAward",
dicts: ['semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states', 'student_award_rank'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生嘉奖表格数据
studentAwardList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
auditState: null,
createById: null,
updateById: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
delFlag: [
{ required: true, message: "删除状态不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询学生嘉奖列表 */
getList() {
this.loading = true;
listStudentAward(this.queryParams).then(response => {
this.studentAwardList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
sex: null,
classTeacherId: null,
classTeacher: null,
departmentDirectorId: null,
departmentDirector: null,
awardType: null,
awardRank: null,
awardTime: null,
remark: null,
auditState: null,
createById: null,
createBy: null,
createTime: null,
updateById: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加学生嘉奖";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStudentAward(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改学生嘉奖";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStudentAward(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStudentAward(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除学生嘉奖编号为"' + ids + '"的数据项?').then(function () {
return delStudentAward(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('school/studentAward/export', {
...this.queryParams
}, `学生嘉奖_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="50%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="考试时间" prop="examTime">
<el-date-picker clearable v-model="queryParams.examTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择考试时间">
</el-date-picker>
</el-form-item>
<el-form-item label="考试类型" prop="examType">
<el-input v-model="queryParams.examType" placeholder="请输入考试类型" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['school:studentAchievement:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['school:studentAchievement:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['school:studentAchievement:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button plain type="warning" icon="el-icon-upload2" size="mini" @click="handleExport"
v-hasPermi="['school:studentAchievement:export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button plain type="success" icon="el-icon-download" size="mini" @click="handleImport"
v-hasPermi="['school:studentAchievement:import']">导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="studentAchievementList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="100px" show-overflow-tooltip />
<el-table-column label="学期" align="center" prop="semester" width="90px" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" width="60px" />
<el-table-column label="年级" align="center" prop="grade" width="60px">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" width="50px" />
<el-table-column label="姓名" align="center" prop="name" width="70px" />
<el-table-column label="班级类型" align="center" prop="classType" width="90px">
<template slot-scope="scope">
<dict-tag :options="dict.type.class_type" :value="scope.row.classType" />
</template>
</el-table-column>
<el-table-column label="班主任" align="center" prop="classTeacher" width="90px" />
<el-table-column label="考试类型" align="center" prop="examType" width="90" />
<el-table-column label="考试时间" align="center" prop="examTime" width="120">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.examTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="语文成绩" align="center" prop="languageScore" />
<el-table-column label="数学成绩" align="center" prop="mathScore" />
<el-table-column label="英语成绩" align="center" prop="englishScore" />
<el-table-column label="物理成绩" align="center" prop="physicsScore" />
<el-table-column label="化学成绩" align="center" prop="chemistryScore" />
<el-table-column label="生物成绩" align="center" prop="biologyScore" />
<el-table-column label="政治成绩" align="center" prop="politicsScore" />
<el-table-column label="历史成绩" align="center" prop="historyScore" />
<el-table-column label="地理成绩" align="center" prop="geographyScore" />
<el-table-column label="专业课名称" align="center" prop="specialityName" width="120px" />
<el-table-column label="专业课成绩" align="center" prop="specialityScore" width="120px" />
<el-table-column label="艺体课名称" align="center" prop="eurhythmicsName" width="120px" />
<el-table-column label="艺体课成绩" align="center" prop="eurhythmicsScore" width="120px" />
<el-table-column label="考试类型" align="center" prop="examType" />
<el-table-column label="考试时间" align="center" prop="examTime" width="120px" />
<el-table-column label="班主任" align="center" prop="classTeacher" width="90px" />
<el-table-column label="操作" align="center" fixed="right" width="150px" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['school:studentAchievement:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['school:studentAchievement:remove']">删除</el-button>
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改学生成绩对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" placeholder="请选择" clearable style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="语文成绩" prop="languageScore">
<el-input v-model="form.languageScore" placeholder="请输入语文成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数学成绩" prop="mathScore">
<el-input v-model="form.mathScore" placeholder="请输入数学成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="英语成绩" prop="englishScore">
<el-input v-model="form.englishScore" placeholder="请输入英语成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物理成绩" prop="physicsScore">
<el-input v-model="form.physicsScore" placeholder="请输入物理成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="化学成绩" prop="chemistryScore">
<el-input v-model="form.chemistryScore" placeholder="请输入化学成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生物成绩" prop="biologyScore">
<el-input v-model="form.biologyScore" placeholder="请输入生物成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="政治成绩" prop="politicsScore">
<el-input v-model="form.politicsScore" placeholder="请输入政治成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="历史成绩" prop="historyScore">
<el-input v-model="form.historyScore" placeholder="请输入历史成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="地理成绩" prop="geographyScore">
<el-input v-model="form.geographyScore" placeholder="请输入地理成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专业课名称" prop="specialityName">
<el-input v-model="form.specialityName" placeholder="请输入专业课名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="专业课成绩" prop="specialityScore">
<el-input v-model="form.specialityScore" placeholder="请输入专业课成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="艺体课名称" prop="eurhythmicsName">
<el-input v-model="form.eurhythmicsName" placeholder="请输入艺体课名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="艺体课成绩" prop="eurhythmicsScore">
<el-input v-model="form.eurhythmicsScore" placeholder="请输入艺体课成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考试类型" prop="examType">
<el-input v-model="form.examType" placeholder="请输入考试类型" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="考试时间" prop="examTime">
<el-date-picker clearable v-model="form.examTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择考试时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer">
<el-button v-if="!isEdit" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel">{{ isEdit ? '取 消' : '取 消' }}</el-button>
</div>
</el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div class="mask" v-if="importing">
<div class="mask-content">
<i class="el-icon-loading"></i>
<span>正在导入,请稍候...</span>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listStudentAchievement, listStudentAchievementgr, getStudentAchievement, delStudentAchievement, addStudentAchievement, updateStudentAchievement } from "@/api/smartSchool/studentAchievements";
import { getToken } from "@/utils/auth";
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: "StudentAchievement",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
importing: false,
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/school/studentAchievement/importData",
},
uploadForm: {},
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生成绩表格数据
studentAchievementList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
query: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
languageScore: null,
mathScore: null,
englishScore: null,
physicsScore: null,
chemistryScore: null,
biologyScore: null,
politicsScore: null,
historyScore: null,
geographyScore: null,
specialityName: null,
specialityScore: null,
eurhythmicsName: null,
eurhythmicsScore: null,
examType: null,
examTime: null,
classTeacherId: null,
classTeacher: null,
createById: null,
updateById: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
examType: [
{ required: true, message: "考试类型不能为空", trigger: "blur" }
],
classTeacher: [
{ required: true, message: "班主任不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询学生成绩列表 */
getList() {
this.loading = true;
listStudentAchievement(this.queryParams).then(response => {
this.studentAchievementList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getStudentAchievement(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.open = true;
this.title = "查看学生成绩";
}).catch(error => {
this.$modal.closeLoading();
})
},
/** 搜索按钮操作 */
handleQuerycx() {
this.query = true;
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
languageScore: null,
mathScore: null,
englishScore: null,
physicsScore: null,
chemistryScore: null,
biologyScore: null,
politicsScore: null,
historyScore: null,
geographyScore: null,
specialityName: null,
specialityScore: null,
eurhythmicsName: null,
eurhythmicsScore: null,
examType: null,
examTime: null,
classTeacherId: null,
classTeacher: null,
createById: null,
createBy: null,
createTime: null,
updateById: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.query = false;
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.isEdit = false;
this.title = "添加学生成绩";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStudentAchievement(id).then(response => {
this.form = response.data;
this.open = true;
this.isEdit = false;
this.title = "修改学生成绩";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStudentAchievement(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStudentAchievement(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除学生成绩编号为"' + ids + '"的数据项?').then(function () {
return delStudentAchievement(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
handleImport() {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
this.importing = true;
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false;
this.upload.isUploading = false;
this.importing = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
this.download(
"/school/studentAchievement/importTemplate",
{},
`学生成绩_${Date.now()}.xlsx`
);
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/studentAchievement/export', {
...this.queryParams
}, `学生成绩_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="50%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="考试时间" prop="examTime">
<el-date-picker clearable v-model="queryParams.examTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择考试时间">
</el-date-picker>
</el-form-item>
<el-form-item label="考试类型" prop="examType">
<el-input v-model="queryParams.examType" placeholder="请输入考试类型" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['school:studentAchievement:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['school:studentAchievement:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['school:studentAchievement:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button plain type="warning" icon="el-icon-upload2" size="mini" @click="handleExport"
v-hasPermi="['school:studentAchievement:export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button plain type="success" icon="el-icon-download" size="mini" @click="handleImport"
v-hasPermi="['school:studentAchievement:import']">导入</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="studentAchievementList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="100px" show-overflow-tooltip />
<el-table-column label="学期" align="center" prop="semester" width="90px" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" width="60px" />
<el-table-column label="年级" align="center" prop="grade" width="60px">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" width="50px" />
<el-table-column label="姓名" align="center" prop="name" width="70px" />
<el-table-column label="班级类型" align="center" prop="classType" width="90px">
<template slot-scope="scope">
<dict-tag :options="dict.type.class_type" :value="scope.row.classType" />
</template>
</el-table-column>
<el-table-column label="班主任" align="center" prop="classTeacher" width="90px" />
<el-table-column label="考试类型" align="center" prop="examType" width="90" />
<el-table-column label="考试时间" align="center" prop="examTime" width="120">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.examTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="语文成绩" align="center" prop="languageScore" />
<el-table-column label="数学成绩" align="center" prop="mathScore" />
<el-table-column label="英语成绩" align="center" prop="englishScore" />
<el-table-column label="物理成绩" align="center" prop="physicsScore" />
<el-table-column label="化学成绩" align="center" prop="chemistryScore" />
<el-table-column label="生物成绩" align="center" prop="biologyScore" />
<el-table-column label="政治成绩" align="center" prop="politicsScore" />
<el-table-column label="历史成绩" align="center" prop="historyScore" />
<el-table-column label="地理成绩" align="center" prop="geographyScore" />
<el-table-column label="专业课名称" align="center" prop="specialityName" width="120px" />
<el-table-column label="专业课成绩" align="center" prop="specialityScore" width="120px" />
<el-table-column label="艺体课名称" align="center" prop="eurhythmicsName" width="120px" />
<el-table-column label="艺体课成绩" align="center" prop="eurhythmicsScore" width="120px" />
<el-table-column label="考试类型" align="center" prop="examType" />
<el-table-column label="考试时间" align="center" prop="examTime" width="120px" />
<el-table-column label="班主任" align="center" prop="classTeacher" width="90px" />
<el-table-column label="操作" align="center" fixed="right" width="150px" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['school:studentAchievement:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['school:studentAchievement:remove']">删除</el-button>
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改学生成绩对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" placeholder="请选择" clearable style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="语文成绩" prop="languageScore">
<el-input v-model="form.languageScore" placeholder="请输入语文成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数学成绩" prop="mathScore">
<el-input v-model="form.mathScore" placeholder="请输入数学成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="英语成绩" prop="englishScore">
<el-input v-model="form.englishScore" placeholder="请输入英语成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物理成绩" prop="physicsScore">
<el-input v-model="form.physicsScore" placeholder="请输入物理成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="化学成绩" prop="chemistryScore">
<el-input v-model="form.chemistryScore" placeholder="请输入化学成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生物成绩" prop="biologyScore">
<el-input v-model="form.biologyScore" placeholder="请输入生物成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="政治成绩" prop="politicsScore">
<el-input v-model="form.politicsScore" placeholder="请输入政治成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="历史成绩" prop="historyScore">
<el-input v-model="form.historyScore" placeholder="请输入历史成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="地理成绩" prop="geographyScore">
<el-input v-model="form.geographyScore" placeholder="请输入地理成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专业课名称" prop="specialityName">
<el-input v-model="form.specialityName" placeholder="请输入专业课名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="专业课成绩" prop="specialityScore">
<el-input v-model="form.specialityScore" placeholder="请输入专业课成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="艺体课名称" prop="eurhythmicsName">
<el-input v-model="form.eurhythmicsName" placeholder="请输入艺体课名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="艺体课成绩" prop="eurhythmicsScore">
<el-input v-model="form.eurhythmicsScore" placeholder="请输入艺体课成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考试类型" prop="examType">
<el-input v-model="form.examType" placeholder="请输入考试类型" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="考试时间" prop="examTime">
<el-date-picker clearable v-model="form.examTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择考试时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer">
<el-button v-if="!isEdit" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel">{{ isEdit ? '取 消' : '取 消' }}</el-button>
</div>
</el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div class="mask" v-if="importing">
<div class="mask-content">
<i class="el-icon-loading"></i>
<span>正在导入,请稍候...</span>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listStudentAchievement, listStudentAchievementgr, getStudentAchievement, delStudentAchievement, addStudentAchievement, updateStudentAchievement } from "@/api/smartSchool/studentAchievements";
import { getToken } from "@/utils/auth";
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: "StudentAchievement",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
importing: false,
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/school/studentAchievement/importData",
},
uploadForm: {},
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生成绩表格数据
studentAchievementList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
query: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
languageScore: null,
mathScore: null,
englishScore: null,
physicsScore: null,
chemistryScore: null,
biologyScore: null,
politicsScore: null,
historyScore: null,
geographyScore: null,
specialityName: null,
specialityScore: null,
eurhythmicsName: null,
eurhythmicsScore: null,
examType: null,
examTime: null,
classTeacherId: null,
classTeacher: null,
createById: null,
updateById: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
examType: [
{ required: true, message: "考试类型不能为空", trigger: "blur" }
],
classTeacher: [
{ required: true, message: "班主任不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询学生成绩列表 */
getList() {
this.loading = true;
listStudentAchievementgr(this.queryParams).then(response => {
this.studentAchievementList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getStudentAchievement(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.open = true;
}).catch(error => {
this.$modal.closeLoading();
})
},
/** 搜索按钮操作 */
handleQuerycx() {
this.query = true;
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
languageScore: null,
mathScore: null,
englishScore: null,
physicsScore: null,
chemistryScore: null,
biologyScore: null,
politicsScore: null,
historyScore: null,
geographyScore: null,
specialityName: null,
specialityScore: null,
eurhythmicsName: null,
eurhythmicsScore: null,
examType: null,
examTime: null,
classTeacherId: null,
classTeacher: null,
createById: null,
createBy: null,
createTime: null,
updateById: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.query = false;
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.isEdit = false;
this.title = "添加学生成绩";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStudentAchievement(id).then(response => {
this.form = response.data;
this.open = true;
this.isEdit = false;
this.title = "修改学生成绩";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStudentAchievement(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStudentAchievement(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除学生成绩编号为"' + ids + '"的数据项?').then(function () {
return delStudentAchievement(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
handleImport() {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
this.importing = true;
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false;
this.upload.isUploading = false;
this.importing = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
this.download(
"/school/studentAchievement/importTemplate",
{},
`学生成绩_${Date.now()}.xlsx`
);
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/studentAchievement/export', {
...this.queryParams
}, `学生成绩_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
<template>
<div class="app-container">
<el-dialog title="查询" :visible.sync="query" width="50%" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="queryParams.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="学期" prop="semester">
<el-select v-model="queryParams.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="届别" prop="year">
<el-select v-model="queryParams.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="年级" prop="grade">
<el-select v-model="queryParams.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-input v-model="queryParams.className" placeholder="请输入班级" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="班级类型" prop="classType">
<el-select v-model="queryParams.classType" clearable placeholder="请选择" style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="考试时间" prop="examTime">
<el-date-picker clearable v-model="queryParams.examTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择考试时间">
</el-date-picker>
</el-form-item>
<el-form-item label="考试类型" prop="examType">
<el-input v-model="queryParams.examType" placeholder="请输入考试类型" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-search" size="mini" @click="handleQuerycx">查询</el-button>
</el-col>
<el-col :span="1.5">
<el-button plain type="warning" icon="el-icon-upload2" size="mini" @click="handleExport"
v-hasPermi="['school:studentAchievement:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table :row-style="{ height: '0' }" :cell-style="{ padding: '3px' }" :data="studentAchievementList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" width="100px" show-overflow-tooltip />
<el-table-column label="学期" align="center" prop="semester" width="90px" show-overflow-tooltip>
<template slot-scope="scope">
<dict-tag :options="dict.type.semester_jsdzda" :value="scope.row.semester" />
</template>
</el-table-column>
<el-table-column label="届别" align="center" prop="year" width="60px" />
<el-table-column label="年级" align="center" prop="grade" width="60px">
<template slot-scope="scope">
<dict-tag :options="dict.type.grade_da" :value="scope.row.grade" />
</template>
</el-table-column>
<el-table-column label="班级" align="center" prop="className" width="50px" />
<el-table-column label="姓名" align="center" prop="name" width="70px" />
<el-table-column label="班级类型" align="center" prop="classType" width="90px">
<template slot-scope="scope">
<dict-tag :options="dict.type.class_type" :value="scope.row.classType" />
</template>
</el-table-column>
<el-table-column label="班主任" align="center" prop="classTeacher" width="90px" />
<el-table-column label="考试类型" align="center" prop="examType" width="90" />
<el-table-column label="考试时间" align="center" prop="examTime" width="120">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.examTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="语文成绩" align="center" prop="languageScore" />
<el-table-column label="数学成绩" align="center" prop="mathScore" />
<el-table-column label="英语成绩" align="center" prop="englishScore" />
<el-table-column label="物理成绩" align="center" prop="physicsScore" />
<el-table-column label="化学成绩" align="center" prop="chemistryScore" />
<el-table-column label="生物成绩" align="center" prop="biologyScore" />
<el-table-column label="政治成绩" align="center" prop="politicsScore" />
<el-table-column label="历史成绩" align="center" prop="historyScore" />
<el-table-column label="地理成绩" align="center" prop="geographyScore" />
<el-table-column label="专业课名称" align="center" prop="specialityName" width="120px" />
<el-table-column label="专业课成绩" align="center" prop="specialityScore" width="120px" />
<el-table-column label="艺体课名称" align="center" prop="eurhythmicsName" width="120px" />
<el-table-column label="艺体课成绩" align="center" prop="eurhythmicsScore" width="120px" />
<el-table-column label="考试类型" align="center" prop="examType" />
<el-table-column label="考试时间" align="center" prop="examTime" width="120px" />
<el-table-column label="班主任" align="center" prop="classTeacher" width="90px" />
<el-table-column label="操作" align="center" fixed="right" width="110px" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改学生成绩对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px" :disabled="isEdit">
<el-row>
<el-col :span="12">
<el-form-item label="学年" prop="schoolYear">
<el-select v-model="form.schoolYear" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.yearda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.semester_jsdzda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="届别" prop="year">
<el-select v-model="form.year" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.rankda" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年级" prop="grade">
<el-select v-model="form.grade" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.grade_da" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-select v-model="form.className" clearable placeholder="请选择" style="width: 100%;">
<el-option v-for="dict in dict.type.class_num" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班级类型" prop="classType">
<el-select v-model="form.classType" placeholder="请选择" clearable style="width: 100%">
<el-option v-for="dict in dict.type.class_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="语文成绩" prop="languageScore">
<el-input v-model="form.languageScore" placeholder="请输入语文成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数学成绩" prop="mathScore">
<el-input v-model="form.mathScore" placeholder="请输入数学成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="英语成绩" prop="englishScore">
<el-input v-model="form.englishScore" placeholder="请输入英语成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物理成绩" prop="physicsScore">
<el-input v-model="form.physicsScore" placeholder="请输入物理成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="化学成绩" prop="chemistryScore">
<el-input v-model="form.chemistryScore" placeholder="请输入化学成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="生物成绩" prop="biologyScore">
<el-input v-model="form.biologyScore" placeholder="请输入生物成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="政治成绩" prop="politicsScore">
<el-input v-model="form.politicsScore" placeholder="请输入政治成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="历史成绩" prop="historyScore">
<el-input v-model="form.historyScore" placeholder="请输入历史成绩" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="地理成绩" prop="geographyScore">
<el-input v-model="form.geographyScore" placeholder="请输入地理成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专业课名称" prop="specialityName">
<el-input v-model="form.specialityName" placeholder="请输入专业课名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="专业课成绩" prop="specialityScore">
<el-input v-model="form.specialityScore" placeholder="请输入专业课成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="艺体课名称" prop="eurhythmicsName">
<el-input v-model="form.eurhythmicsName" placeholder="请输入艺体课名称" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="艺体课成绩" prop="eurhythmicsScore">
<el-input v-model="form.eurhythmicsScore" placeholder="请输入艺体课成绩" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考试类型" prop="examType">
<el-input v-model="form.examType" placeholder="请输入考试类型" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="考试时间" prop="examTime">
<el-date-picker clearable v-model="form.examTime" type="date" value-format="yyyy-MM-dd"
placeholder="请选择考试时间" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="班主任" prop="classTeacher">
<el-input v-model="form.classTeacher" placeholder="请输入班主任" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer">
<el-button v-if="!isEdit" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel">{{ isEdit ? '取 消' : '取 消' }}</el-button>
</div>
</el-dialog>
<!-- 导入对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
<el-form ref="uploadForm" :model="uploadForm" :rules="rules" label-width="70px">
<el-form-item prop="dataUrl">
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
</el-form-item>
</el-form>
<div class="mask" v-if="importing">
<div class="mask-content">
<i class="el-icon-loading"></i>
<span>正在导入,请稍候...</span>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listStudentAchievement, listStudentAchievementgr, getStudentAchievement, delStudentAchievement, addStudentAchievement, updateStudentAchievement } from "@/api/smartSchool/studentAchievements";
import { getToken } from "@/utils/auth";
import { checkIdcard } from '@/utils/utilLibrary/validate'
export default {
name: "StudentAchievement",
dicts: ["teaching_subjects", 'semester_jsdzda', 'exam_typeda', 'grade_da', 'class_type', 'yearda', 'rankda', 'appointment_situation', 'appointment_positions', 'class_num', 'audit_states'],
data() {
return {
importing: false,
uploadOpen: false,
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/school/studentAchievement/importData",
},
uploadForm: {},
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 学生成绩表格数据
studentAchievementList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
query: false,
isEdit: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
languageScore: null,
mathScore: null,
englishScore: null,
physicsScore: null,
chemistryScore: null,
biologyScore: null,
politicsScore: null,
historyScore: null,
geographyScore: null,
specialityName: null,
specialityScore: null,
eurhythmicsName: null,
eurhythmicsScore: null,
examType: null,
examTime: null,
classTeacherId: null,
classTeacher: null,
createById: null,
updateById: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
year: [
{ required: true, message: "届别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "年级不能为空", trigger: "blur" }
],
className: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
classType: [
{ required: true, message: "班级类型不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
examType: [
{ required: true, message: "考试类型不能为空", trigger: "blur" }
],
classTeacher: [
{ required: true, message: "班主任不能为空", trigger: "blur" }
],
idCard: [{ required: true, validator: checkIdcard, trigger: 'blur' }],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询学生成绩列表 */
getList() {
this.loading = true;
listStudentAchievement(this.queryParams).then(response => {
this.studentAchievementList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//查看
handleLook(row) {
console.log(row);
const id = row.id || this.ids;
getStudentAchievement(id).then((response) => {
this.form = response.data;
this.isEdit = true;
this.open = true;
}).catch(error => {
this.$modal.closeLoading();
})
},
/** 搜索按钮操作 */
handleQuerycx() {
this.query = true;
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
id: null,
schoolYear: null,
semester: null,
year: null,
grade: null,
className: null,
classType: null,
name: null,
idCard: null,
languageScore: null,
mathScore: null,
englishScore: null,
physicsScore: null,
chemistryScore: null,
biologyScore: null,
politicsScore: null,
historyScore: null,
geographyScore: null,
specialityName: null,
specialityScore: null,
eurhythmicsName: null,
eurhythmicsScore: null,
examType: null,
examTime: null,
classTeacherId: null,
classTeacher: null,
createById: null,
createBy: null,
createTime: null,
updateById: null,
updateBy: null,
updateTime: null,
delFlag: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.query = false;
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.isEdit = false;
this.title = "添加学生成绩";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getStudentAchievement(id).then(response => {
this.form = response.data;
this.open = true;
this.isEdit = false;
this.title = "修改学生成绩";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateStudentAchievement(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addStudentAchievement(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除学生成绩编号为"' + ids + '"的数据项?').then(function () {
return delStudentAchievement(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
handleImport() {
this.reset();
this.title = "导入";
this.uploadOpen = true;
},
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
this.importing = true;
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
cancelFile() {
this.uploadOpen = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.uploadOpen = false;
this.upload.isUploading = false;
this.importing = false;
this.$refs.upload.clearFiles();
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
//下载模版
importTemplate() {
this.download(
"/school/studentAchievement/importTemplate",
{},
`学生成绩_${Date.now()}.xlsx`
);
},
/** 导出按钮操作 */
handleExport() {
this.download('/school/studentAchievement/export', {
...this.queryParams
}, `学生成绩_${new Date().getTime()}.xlsx`)
}
}
};
</script>
<style scoped lang="scss" >
::v-deep .el-form-item {
margin-bottom: 12px;
}
::v-deep .el-input--medium .el-input__inner {
height: 26px;
line-height: 26px;
}
::v-deep .el-dialog__body {
padding: 10px 20px
}
::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 4vh !important;
}
.search ::v-deep .el-form-item__content {
width: 200px
}
</style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment