mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-11 03:46:45 +08:00
feat:增加面授课成绩录入结业批量结业
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-04 22:45:31
|
* @Date: 2022-11-04 22:45:31
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2023-01-10 17:38:43
|
* @LastEditTime: 2023-02-01 11:07:17
|
||||||
* @FilePath: /fe-manage/src/api/index1.js
|
* @FilePath: /fe-manage/src/api/index1.js
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
@@ -78,7 +78,7 @@ export const delStudent = (obj) =>
|
|||||||
http.post("/admin/router/deleteStudent", obj);
|
http.post("/admin/router/deleteStudent", obj);
|
||||||
|
|
||||||
// 获取学员路径图进度明细
|
// 获取学员路径图进度明细
|
||||||
export const stuProgress = (params) => http.get('/admin/router/studentProcess', {params});
|
export const stuProgress = (params) => http.get('/admin/router/studentProcess', { params });
|
||||||
// export const stuProgress = (obj) =>http.post("/admin/router/studentProcess", obj);
|
// export const stuProgress = (obj) =>http.post("/admin/router/studentProcess", obj);
|
||||||
|
|
||||||
//编辑学习路径基本信息
|
//编辑学习路径基本信息
|
||||||
@@ -103,7 +103,7 @@ export const billboard = (obj) => http.post("/admin/project/billboard", obj);
|
|||||||
//公共信息---------------------------------------------------
|
//公共信息---------------------------------------------------
|
||||||
// 获取字典信息
|
// 获取字典信息
|
||||||
export const getDict = (obj) => http.post('/dict/getList', obj)
|
export const getDict = (obj) => http.post('/dict/getList', obj)
|
||||||
export const getDictTree = (params) => http.get('/dict/getTree', {params})
|
export const getDictTree = (params) => http.get('/dict/getTree', { params })
|
||||||
//获取组织树一级列表
|
//获取组织树一级列表
|
||||||
export const getOrgTree = (obj) => http.post('/admin/router/orgList', obj)
|
export const getOrgTree = (obj) => http.post('/admin/router/orgList', obj)
|
||||||
//根据id获取组织树一级元素下所有子元素
|
//根据id获取组织树一级元素下所有子元素
|
||||||
@@ -190,4 +190,4 @@ export const getImportStatus = (uuid) => http.get('/admin/student/getImportStatu
|
|||||||
// 面授课导入学员
|
// 面授课导入学员
|
||||||
export const FaceTeachImportStudent = (obj) => http.post('/admin/student/importStudent', obj, { headers: { "Content-Type": "multipart/form-data" } })
|
export const FaceTeachImportStudent = (obj) => http.post('/admin/student/importStudent', obj, { headers: { "Content-Type": "multipart/form-data" } })
|
||||||
//成绩录入
|
//成绩录入
|
||||||
export const updateStudent = (obj) => http.post('/admin/student/updateStudent', obj)
|
export const updateStudent = (obj) => http.post('/admin/student/homeWorkScoreEntry', obj)
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-12-20 17:00:37
|
* @Date: 2022-12-20 17:00:37
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2023-01-31 15:51:36
|
* @LastEditTime: 2023-01-31 16:14:39
|
||||||
* @FilePath: /fe-manage/src/components/student/ChangeLevelModal.vue
|
* @FilePath: /fe-manage/src/components/student/ChangeLevelModal.vue
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
-->
|
-->
|
||||||
@@ -92,3 +92,124 @@ const changeGroup = (item) => {
|
|||||||
console.log("换组", item);
|
console.log("换组", item);
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.changeModal {
|
||||||
|
.ant-modal {
|
||||||
|
width: 549px !important;
|
||||||
|
height: 245px !important;
|
||||||
|
.ant-modal-close-x {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.ant-modal-content {
|
||||||
|
width: 549px !important;
|
||||||
|
height: 245px !important;
|
||||||
|
|
||||||
|
.ant-modal-body {
|
||||||
|
padding: 0 !important;
|
||||||
|
width: 549px !important;
|
||||||
|
height: 245px !important;
|
||||||
|
|
||||||
|
.con {
|
||||||
|
// background-color: #bfa;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.header {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
height: 68px;
|
||||||
|
position: relative;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
background: linear-gradient(
|
||||||
|
rgba(78, 166, 255, 0.2) 0%,
|
||||||
|
rgba(78, 166, 255, 0) 100%
|
||||||
|
);
|
||||||
|
|
||||||
|
.inhe {
|
||||||
|
width: 80%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.mod {
|
||||||
|
left: 30px;
|
||||||
|
top: 27px;
|
||||||
|
position: absolute;
|
||||||
|
width: 18px;
|
||||||
|
height: 17px;
|
||||||
|
background-image: url(../../assets/images/leveladd/mod.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.tz {
|
||||||
|
color: #000000;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mg {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background-image: url(../../assets/images/basicinfo/close22.png);
|
||||||
|
background-size: 100% 100%;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.mid {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
.inher {
|
||||||
|
width: 80%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
.cur {
|
||||||
|
color: #6f6f6f;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 30px;
|
||||||
|
|
||||||
|
.sameb {
|
||||||
|
width: 100px;
|
||||||
|
height: 40px;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn1 {
|
||||||
|
color: #4ea6ff;
|
||||||
|
background: #ffffff;
|
||||||
|
border: 1px solid #4ea6ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn2 {
|
||||||
|
margin-left: 16px;
|
||||||
|
border: 0;
|
||||||
|
color: #ffffff;
|
||||||
|
background: #4ea6ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -161,10 +161,9 @@
|
|||||||
<div class="btn4_tit" @click="showEScoreModal">
|
<div class="btn4_tit" @click="showEScoreModal">
|
||||||
<span>批量录入成绩</span>
|
<span>批量录入成绩</span>
|
||||||
</div>
|
</div>
|
||||||
<!--2023-1-12 隐藏 后面放开 -->
|
<div class="btn4_op1" @click="updateStatus(1)">
|
||||||
<!-- <div class="btn4_op1" @click="updateStatus(1)">
|
|
||||||
<span>批量结业</span>
|
<span>批量结业</span>
|
||||||
</div> -->
|
</div>
|
||||||
<div class="btn4_op2" @click="updateStatus(0)">
|
<div class="btn4_op2" @click="updateStatus(0)">
|
||||||
<span>批量通过</span>
|
<span>批量通过</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -316,37 +316,110 @@
|
|||||||
<template #bodyCell="{ record, column }">
|
<template #bodyCell="{ record, column }">
|
||||||
<template v-if="column.key === 'operation'">
|
<template v-if="column.key === 'operation'">
|
||||||
<a-space :size="0">
|
<a-space :size="0">
|
||||||
<a-button v-if="record.status===0 || record.status===-1 || !record.kkty" @click="() => handleEdit(record, String(record.courseform))" type="link">编辑</a-button>
|
<a-button
|
||||||
<a-button block v-if="record.status===2" @click="() => handleStart(record, String(record.courseform))" type="link">开课</a-button>
|
v-if="
|
||||||
<a-button v-if="record.status===2" @click="() => handleLook(record, String(record.courseform))" type="link">查看</a-button>
|
record.status === 0 || record.status === -1 || !record.kkty
|
||||||
<a-button v-if="record.status===2" @click="() => handleGuan22(record, String(record.courseform))" type="link">管理</a-button>
|
"
|
||||||
|
@click="() => handleEdit(record, String(record.courseform))"
|
||||||
|
type="link"
|
||||||
|
>编辑</a-button
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
block
|
||||||
|
v-if="record.status === 2"
|
||||||
|
@click="() => handleStart(record, String(record.courseform))"
|
||||||
|
type="link"
|
||||||
|
>开课</a-button
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
v-if="record.status === 2"
|
||||||
|
@click="() => handleLook(record, String(record.courseform))"
|
||||||
|
type="link"
|
||||||
|
>查看</a-button
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
v-if="record.status === 2"
|
||||||
|
@click="() => handleGuan22(record, String(record.courseform))"
|
||||||
|
type="link"
|
||||||
|
>管理</a-button
|
||||||
|
>
|
||||||
<div className="tableSelect" style="margin-left: 0">
|
<div className="tableSelect" style="margin-left: 0">
|
||||||
<a-select value="授权" dropdownClassName="tabledropdown">
|
<a-select value="授权" dropdownClassName="tabledropdown">
|
||||||
<a-select-option value="权限名单" label="权限名单">
|
<a-select-option value="权限名单" label="权限名单">
|
||||||
<TableModelStudent :types="[10,11,12]" :id="record.offcourseId">权限名单</TableModelStudent>
|
<TableModelStudent
|
||||||
|
:types="[10, 11, 12]"
|
||||||
|
:id="record.offcourseId"
|
||||||
|
>权限名单</TableModelStudent
|
||||||
|
>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
<a-select-option value="查看权" label="查看权">
|
<a-select-option value="查看权" label="查看权">
|
||||||
<CommonStudent :type="10" :id="record.offcourseId">查看权</CommonStudent>
|
<CommonStudent :type="10" :id="record.offcourseId"
|
||||||
|
>查看权</CommonStudent
|
||||||
|
>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
<a-select-option value="管理权" label="管理权">
|
<a-select-option value="管理权" label="管理权">
|
||||||
<CommonStudent :type="11" :id="record.offcourseId">管理权</CommonStudent>
|
<CommonStudent :type="11" :id="record.offcourseId"
|
||||||
|
>管理权</CommonStudent
|
||||||
|
>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
<div className="tableSelect">
|
<div className="tableSelect">
|
||||||
<a-select value="更多" dropdownClassName="tabledropdown">
|
<a-select value="更多" dropdownClassName="tabledropdown">
|
||||||
<a-select-option value="复制" label="复制">
|
<a-select-option value="复制" label="复制">
|
||||||
<a-button @click="() => handleCopy(record, String(record.courseform))" type="link">复制</a-button>
|
<a-button
|
||||||
|
@click="
|
||||||
|
() => handleCopy(record, String(record.courseform))
|
||||||
|
"
|
||||||
|
type="link"
|
||||||
|
>复制</a-button
|
||||||
|
>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
<a-select-option v-if="record.status===1" value="撤回" label="撤回">
|
<a-select-option
|
||||||
<a-button @click="() => handleRejectExit(record, String(record.courseform))" type="link">撤回</a-button>
|
v-if="record.status === 1"
|
||||||
|
value="撤回"
|
||||||
|
label="撤回"
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
@click="
|
||||||
|
() =>
|
||||||
|
handleRejectExit(record, String(record.courseform))
|
||||||
|
"
|
||||||
|
type="link"
|
||||||
|
>撤回</a-button
|
||||||
|
>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
<a-select-option v-if="record.status===2" value="停用" label="停用">
|
<a-select-option
|
||||||
<a-button v-if="record.status===2 && record.kkty" @click="() => handleStop(record, String(record.courseform))" type="link">停用</a-button>
|
v-if="record.status === 2"
|
||||||
<a-button v-if="record.status===2 && !record.kkty" @click="() => handleOpen(record, String(record.courseform))" type="link">启用</a-button>
|
value="停用"
|
||||||
|
label="停用"
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
v-if="record.status === 2 && record.kkty"
|
||||||
|
@click="
|
||||||
|
() => handleStop(record, String(record.courseform))
|
||||||
|
"
|
||||||
|
type="link"
|
||||||
|
>停用</a-button
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
v-if="record.status === 2 && !record.kkty"
|
||||||
|
@click="
|
||||||
|
() => handleOpen(record, String(record.courseform))
|
||||||
|
"
|
||||||
|
type="link"
|
||||||
|
>启用</a-button
|
||||||
|
>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
<a-select-option value="删除" label="删除">
|
<a-select-option value="删除" label="删除">
|
||||||
<a-button @click="() => handleDelete(record, String(record.courseform))" type="link" danger>删除</a-button>
|
<a-button
|
||||||
|
@click="
|
||||||
|
() => handleDelete(record, String(record.courseform))
|
||||||
|
"
|
||||||
|
type="link"
|
||||||
|
danger
|
||||||
|
>删除</a-button
|
||||||
|
>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -1122,9 +1195,42 @@
|
|||||||
:isgetStudent="isgetStudent"
|
:isgetStudent="isgetStudent"
|
||||||
>
|
>
|
||||||
<template #extension="{ data: { record } }">
|
<template #extension="{ data: { record } }">
|
||||||
<a-button v-if="record.source === 4 && record.status === 1" @click="() => {record.status = 0;auditStudent(record);}" type="link">审核通过</a-button>
|
<a-button
|
||||||
<a-button v-if="record.source === 4 && record.status === 1" @click="() => {record.status = 2;auditStudent(record);}" type="link">拒绝</a-button>
|
v-if="record.source === 4 && record.status === 1"
|
||||||
<a-button v-if="record.source === 4 && (record.status === 0 || record.status === 2)" @click="() => {record.status = 1;auditStudent(record);}" type="link">撤回</a-button>
|
@click="
|
||||||
|
() => {
|
||||||
|
record.status = 0;
|
||||||
|
auditStudent(record);
|
||||||
|
}
|
||||||
|
"
|
||||||
|
type="link"
|
||||||
|
>审核通过</a-button
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
v-if="record.source === 4 && record.status === 1"
|
||||||
|
@click="
|
||||||
|
() => {
|
||||||
|
record.status = 2;
|
||||||
|
auditStudent(record);
|
||||||
|
}
|
||||||
|
"
|
||||||
|
type="link"
|
||||||
|
>拒绝</a-button
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
v-if="
|
||||||
|
record.source === 4 &&
|
||||||
|
(record.status === 0 || record.status === 2)
|
||||||
|
"
|
||||||
|
@click="
|
||||||
|
() => {
|
||||||
|
record.status = 1;
|
||||||
|
auditStudent(record);
|
||||||
|
}
|
||||||
|
"
|
||||||
|
type="link"
|
||||||
|
>撤回</a-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</TableStudent>
|
</TableStudent>
|
||||||
</div>
|
</div>
|
||||||
@@ -1452,11 +1558,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="qrm_btnbox">
|
<div class="qrm_btnbox">
|
||||||
<div class="qrm_btn btn1">
|
<div class="qrm_btn btn1" @click="graduate_exit">
|
||||||
<div class="btnText" @click="graduate_exit">取消</div>
|
<div class="btnText">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="qrm_btn btn2">
|
<div class="qrm_btn btn2" @click="handleJie">
|
||||||
<div class="btnText" @click="handleJie">确定</div>
|
<div class="btnText">确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1721,15 +1827,10 @@ import { useStore } from "vuex";
|
|||||||
const columns1 = [
|
const columns1 = [
|
||||||
{
|
{
|
||||||
title: "课程编号",
|
title: "课程编号",
|
||||||
width: 100,
|
width: 130,
|
||||||
dataIndex: "num",
|
dataIndex: "offcourseNumber",
|
||||||
key: "num",
|
key: "offcourseNumber",
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: ({ index, record }) => {
|
|
||||||
const pageNum =
|
|
||||||
Number(record.pageNo) - 1 > 0 ? (Number(record.pageNo) - 1) * 10 : 0;
|
|
||||||
return index + 1 + pageNum;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "名称",
|
title: "名称",
|
||||||
@@ -1790,7 +1891,7 @@ const columns1 = [
|
|||||||
{
|
{
|
||||||
title: "学习人数",
|
title: "学习人数",
|
||||||
width: 130,
|
width: 130,
|
||||||
dataIndex: "stunum",
|
dataIndex: "studentCnt",
|
||||||
key: "4",
|
key: "4",
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: ({ text }) => {
|
customRender: ({ text }) => {
|
||||||
@@ -2098,7 +2199,6 @@ const columns6 = [
|
|||||||
return text ? text : "-";
|
return text ? text : "-";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// 新加学员数
|
|
||||||
{
|
{
|
||||||
title: "学员数",
|
title: "学员数",
|
||||||
dataIndex: "studentCnt",
|
dataIndex: "studentCnt",
|
||||||
@@ -2385,18 +2485,19 @@ export default defineComponent({
|
|||||||
customRender: ({ record }) => {
|
customRender: ({ record }) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
{record.workScore ? (
|
{record.workScore === -2 ? (
|
||||||
|
"-"
|
||||||
|
) : record.workScore ? (
|
||||||
<span>{record.workScore}</span>
|
<span>{record.workScore}</span>
|
||||||
) : (
|
) : (
|
||||||
// <span
|
<span
|
||||||
// style={{ color: "#4EA6FF", cursor: "pointer" }}
|
style={{ color: "#4EA6FF", cursor: "pointer" }}
|
||||||
// onClick={() => {
|
onClick={() => {
|
||||||
// handlJoinStu(record);
|
handlJoinStu(record);
|
||||||
// }}
|
}}
|
||||||
// >
|
>
|
||||||
// 成绩录入
|
成绩录入
|
||||||
// </span>
|
</span>
|
||||||
<span></span>
|
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@@ -2426,15 +2527,35 @@ export default defineComponent({
|
|||||||
key: "8",
|
key: "8",
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
// 2023-1-12 隐藏 后面放开
|
{
|
||||||
// {
|
title: "结业状态",
|
||||||
// title: "结业状态",
|
width: "15%",
|
||||||
// width: "15%",
|
dataIndex: "completionStatus",
|
||||||
// dataIndex: "completionStatus",
|
key: "8",
|
||||||
// key: "8",
|
align: "center",
|
||||||
// align: "center",
|
customRender: ({ record }) => {
|
||||||
// customRender: ({ record }) => <div>{{1:'结业'}[record.completionStatus] || '-'}</div>,
|
return (
|
||||||
// },
|
<div>
|
||||||
|
{record.finishStatus == 1 &&
|
||||||
|
record.workScore != -2 &&
|
||||||
|
record.signStatus == 1 ? (
|
||||||
|
<div
|
||||||
|
style={{ color: "#4EA6FF", cursor: "pointer" }}
|
||||||
|
onClick={() => {
|
||||||
|
handleOverStu(record);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
结业
|
||||||
|
</div>
|
||||||
|
) : record.completionStatus == 1 ? (
|
||||||
|
<div>已结业</div>
|
||||||
|
) : (
|
||||||
|
<div>-</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
shipType: 1,
|
shipType: 1,
|
||||||
addLoading: false,
|
addLoading: false,
|
||||||
@@ -2688,6 +2809,7 @@ export default defineComponent({
|
|||||||
regisCom: false,
|
regisCom: false,
|
||||||
comLeave: false,
|
comLeave: false,
|
||||||
studentId: 0,
|
studentId: 0,
|
||||||
|
homeWorkId: null,
|
||||||
studentItem: {},
|
studentItem: {},
|
||||||
addOnlineCoursevisible: false, //新建面授弹窗
|
addOnlineCoursevisible: false, //新建面授弹窗
|
||||||
|
|
||||||
@@ -3080,6 +3202,7 @@ export default defineComponent({
|
|||||||
endTime: endTime,
|
endTime: endTime,
|
||||||
beginTime: startTime,
|
beginTime: startTime,
|
||||||
});
|
});
|
||||||
|
console.log("获取面授课列表", res);
|
||||||
const { rows, total, pageNo } = res.data.data;
|
const { rows, total, pageNo } = res.data.data;
|
||||||
console.log(res.data.data);
|
console.log(res.data.data);
|
||||||
state.tableDataTotal1 = total;
|
state.tableDataTotal1 = total;
|
||||||
@@ -3191,7 +3314,7 @@ export default defineComponent({
|
|||||||
state.scoreId = itm.id;
|
state.scoreId = itm.id;
|
||||||
};
|
};
|
||||||
const handleOverStu = (itm) => {
|
const handleOverStu = (itm) => {
|
||||||
console.log(itm);
|
console.log("点击结业", itm);
|
||||||
state.studentId = itm.studentId;
|
state.studentId = itm.studentId;
|
||||||
state.studentItem = itm;
|
state.studentItem = itm;
|
||||||
|
|
||||||
@@ -3964,7 +4087,7 @@ export default defineComponent({
|
|||||||
state.kk_eidt = true;
|
state.kk_eidt = true;
|
||||||
};
|
};
|
||||||
const handelGuan = (itm) => {
|
const handelGuan = (itm) => {
|
||||||
console.log(676766);
|
console.log("开课信息", itm);
|
||||||
state.offcourseId = itm.offcourseId;
|
state.offcourseId = itm.offcourseId;
|
||||||
state.offcoursePlanId = itm.offcoursePlanId;
|
state.offcoursePlanId = itm.offcoursePlanId;
|
||||||
state.studentId = itm.studentId;
|
state.studentId = itm.studentId;
|
||||||
@@ -3977,6 +4100,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
state.sm_hs = true;
|
state.sm_hs = true;
|
||||||
// getTableDate2();
|
// getTableDate2();
|
||||||
|
state.homeWorkId = itm.homeWorkId;
|
||||||
};
|
};
|
||||||
const sm_exit = () => {
|
const sm_exit = () => {
|
||||||
state.sm_hs = false;
|
state.sm_hs = false;
|
||||||
@@ -4061,16 +4185,18 @@ export default defineComponent({
|
|||||||
if (state.rg_hs) {
|
if (state.rg_hs) {
|
||||||
if (state.piliang) {
|
if (state.piliang) {
|
||||||
api1.updateStudent({
|
api1.updateStudent({
|
||||||
score: state.lrcj_inputV1,
|
workScore: state.lrcj_inputV1,
|
||||||
id: state.scoreId,
|
workId: state.homeWorkId,
|
||||||
|
studentId: state.studentId,
|
||||||
});
|
});
|
||||||
getTableDate2();
|
getTableDate2();
|
||||||
delete_exit1();
|
delete_exit1();
|
||||||
} else {
|
} else {
|
||||||
api1
|
api1
|
||||||
.updateStudent({
|
.updateStudent({
|
||||||
score: state.lrcj_inputV1,
|
workScore: state.lrcj_inputV1,
|
||||||
id: state.scoreId,
|
workId: state.homeWorkId,
|
||||||
|
studentId: state.studentId,
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("成绩录入", res);
|
console.log("成绩录入", res);
|
||||||
@@ -4090,17 +4216,20 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
const handleJie = async () => {
|
const handleJie = async () => {
|
||||||
if (state.graduate_hs) {
|
if (state.graduate_hs) {
|
||||||
handleStudent({
|
// state.studentItem.id
|
||||||
offcoursePlanId: state.offcoursePlanId,
|
// console.log("state.studentItem.id", state.studentItem.id);
|
||||||
score: "",
|
api1
|
||||||
studentIds: [state.studentId],
|
.batchUpdateStatus({
|
||||||
type: 2,
|
completionStatus: 1,
|
||||||
}).then((res) => {
|
ids: [state.studentItem?.id],
|
||||||
if (res.data.code === 200) {
|
// status: 1,
|
||||||
getTableDate2();
|
})
|
||||||
delete_exit1();
|
.then((res) => {
|
||||||
}
|
if (res.data.code === 200) {
|
||||||
});
|
getTableDate2();
|
||||||
|
delete_exit1();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//确认复制
|
//确认复制
|
||||||
@@ -7459,24 +7588,24 @@ export default defineComponent({
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tableSelect {
|
.tableSelect {
|
||||||
position: relative;
|
position: relative;
|
||||||
.hoverList {
|
.hoverList {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
&:hover {
|
&:hover {
|
||||||
.hoverList {
|
.hoverList {
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 20px;
|
top: 20px;
|
||||||
left: -20px;
|
left: -20px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
// padding: 20px;
|
// padding: 20px;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ::v-deep .w-e-toolbar {
|
// ::v-deep .w-e-toolbar {
|
||||||
// .w-e-bar-item {
|
// .w-e-bar-item {
|
||||||
|
|||||||
@@ -202,7 +202,7 @@
|
|||||||
<!-- <img class="im" src="../../assets/px.jpg" />
|
<!-- <img class="im" src="../../assets/px.jpg" />
|
||||||
<img class="im" src="../../assets/px.jpg" />
|
<img class="im" src="../../assets/px.jpg" />
|
||||||
<img class="im" src="../../assets/px.jpg" /> -->
|
<img class="im" src="../../assets/px.jpg" /> -->
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@click="chooseImg(item)"
|
@click="chooseImg(item)"
|
||||||
v-for="(item, index) in imgData"
|
v-for="(item, index) in imgData"
|
||||||
@@ -243,7 +243,7 @@
|
|||||||
class="aeLoading"
|
class="aeLoading"
|
||||||
:style="{ display: lpLoading ? 'flex' : 'none' }"
|
:style="{ display: lpLoading ? 'flex' : 'none' }"
|
||||||
>
|
>
|
||||||
<a-spin :spinning="lpLoading" tip=""/>
|
<a-spin :spinning="lpLoading" tip="" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -277,7 +277,7 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="inname">路径图名称</div>
|
<div class="inname">路径图名称</div>
|
||||||
<div class="in road" >
|
<div class="in road">
|
||||||
<!-- <a-input-->
|
<!-- <a-input-->
|
||||||
<!-- v-model:value="pathName"-->
|
<!-- v-model:value="pathName"-->
|
||||||
<!-- maxlength="20"-->
|
<!-- maxlength="20"-->
|
||||||
@@ -331,7 +331,7 @@
|
|||||||
<!-- <img class="im" src="../../assets/px.jpg" />
|
<!-- <img class="im" src="../../assets/px.jpg" />
|
||||||
<img class="im" src="../../assets/px.jpg" />
|
<img class="im" src="../../assets/px.jpg" />
|
||||||
<img class="im" src="../../assets/px.jpg" /> -->
|
<img class="im" src="../../assets/px.jpg" /> -->
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@click="chooseImg2(item)"
|
@click="chooseImg2(item)"
|
||||||
v-for="(item, index) in imgData"
|
v-for="(item, index) in imgData"
|
||||||
@@ -698,15 +698,12 @@ import ProjCheckShip from "../../components/drawers/ProjCheckPower";
|
|||||||
import * as api from "../../api/index1";
|
import * as api from "../../api/index1";
|
||||||
import * as apiStu from "../../api/index";
|
import * as apiStu from "../../api/index";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import {
|
import { commonData } from "@/api/method";
|
||||||
commonData,
|
|
||||||
} from "@/api/method";
|
|
||||||
import { storage } from "@/api/storage";
|
import { storage } from "@/api/storage";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import OrgClass from "@/components/project/OrgClass";
|
import OrgClass from "@/components/project/OrgClass";
|
||||||
import NameInput from "@/components/project/NameInput";
|
import NameInput from "@/components/project/NameInput";
|
||||||
import {validateName} from "@/api/index1";
|
import { validateName } from "@/api/index1";
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "learningPath",
|
name: "learningPath",
|
||||||
@@ -858,7 +855,7 @@ export default {
|
|||||||
state.pathIntro = "";
|
state.pathIntro = "";
|
||||||
state.out = !state.out;
|
state.out = !state.out;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if(store.state.userInfo.departId && store.state.userInfo.departName){
|
if (store.state.userInfo.departId && store.state.userInfo.departName) {
|
||||||
state.organizationSelectName = store.state.userInfo.departName;
|
state.organizationSelectName = store.state.userInfo.departName;
|
||||||
state.organizationSelectId = store.state.userInfo.departId;
|
state.organizationSelectId = store.state.userInfo.departId;
|
||||||
}
|
}
|
||||||
@@ -867,7 +864,7 @@ export default {
|
|||||||
const handleOut1 = () => {
|
const handleOut1 = () => {
|
||||||
state.pathName = "";
|
state.pathName = "";
|
||||||
state.pathBg = "";
|
state.pathBg = "";
|
||||||
state.pathBgId =1;
|
state.pathBgId = 1;
|
||||||
state.organizationSelectName = null;
|
state.organizationSelectName = null;
|
||||||
state.organizationSelectId = null;
|
state.organizationSelectId = null;
|
||||||
state.pathIntro = "";
|
state.pathIntro = "";
|
||||||
@@ -905,13 +902,15 @@ export default {
|
|||||||
console.log("err", err);
|
console.log("err", err);
|
||||||
});
|
});
|
||||||
//获取学员列表
|
//获取学员列表
|
||||||
apiStu.projectStudentCount({
|
apiStu
|
||||||
|
.projectStudentCount({
|
||||||
pid: router.id,
|
pid: router.id,
|
||||||
type:2
|
type: 2,
|
||||||
}).then((res) => {
|
|
||||||
state.routeStudentsNum = res.data.data;
|
|
||||||
state.pubLoading = false;
|
|
||||||
})
|
})
|
||||||
|
.then((res) => {
|
||||||
|
state.routeStudentsNum = res.data.data;
|
||||||
|
state.pubLoading = false;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
//确定发布
|
//确定发布
|
||||||
const releaseLearnPath = () => {
|
const releaseLearnPath = () => {
|
||||||
@@ -1248,21 +1247,31 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
{
|
{
|
||||||
<a-select
|
<a-select
|
||||||
style="width: 50px;margin-top:2px;margin-left:25px"
|
style="width: 50px;margin-top:2px;margin-left:25px"
|
||||||
value="授权"
|
value="授权"
|
||||||
dropdownClassName="tabledropdown"
|
dropdownClassName="tabledropdown"
|
||||||
>
|
>
|
||||||
<a-select-option value="权限名单" label="权限名单">
|
<a-select-option value="权限名单" label="权限名单">
|
||||||
<OwnerTableModelStudent types={[7,8,9]} id={text.record.id} type={9}>权限名单</OwnerTableModelStudent>
|
<OwnerTableModelStudent
|
||||||
|
types={[7, 8, 9]}
|
||||||
|
id={text.record.id}
|
||||||
|
type={9}
|
||||||
|
>
|
||||||
|
权限名单
|
||||||
|
</OwnerTableModelStudent>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
<a-select-option value="查看权" label="查看权">
|
<a-select-option value="查看权" label="查看权">
|
||||||
<CommonStudent type={7} id={text.record.id}>查看权</CommonStudent>
|
<CommonStudent type={7} id={text.record.id}>
|
||||||
|
查看权
|
||||||
|
</CommonStudent>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
<a-select-option value="管理权" label="管理权">
|
<a-select-option value="管理权" label="管理权">
|
||||||
<CommonStudent type={8} id={text.record.id}>管理权</CommonStudent>
|
<CommonStudent type={8} id={text.record.id}>
|
||||||
|
管理权
|
||||||
|
</CommonStudent>
|
||||||
</a-select-option>
|
</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="tableSelect">
|
<div class="tableSelect">
|
||||||
{text.record.state === "草稿" ? (
|
{text.record.state === "草稿" ? (
|
||||||
@@ -1429,7 +1438,7 @@ export default {
|
|||||||
state.organizationSelectId = e;
|
state.organizationSelectId = e;
|
||||||
};
|
};
|
||||||
//创建学习路径图
|
//创建学习路径图
|
||||||
const createLearnPath = async() => {
|
const createLearnPath = async () => {
|
||||||
if (!state.pathName) {
|
if (!state.pathName) {
|
||||||
message.destroy();
|
message.destroy();
|
||||||
return message.warning("请输入路径图名称");
|
return message.warning("请输入路径图名称");
|
||||||
@@ -1447,11 +1456,11 @@ export default {
|
|||||||
message.warning("路径图名称重复");
|
message.warning("路径图名称重复");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const offName = await validateName({
|
const offName = await validateName({
|
||||||
name: state.pathName,
|
name: state.pathName,
|
||||||
type: 3,
|
type: 3,
|
||||||
id:state.editPathId,
|
id: state.editPathId,
|
||||||
}).then(res => {
|
}).then((res) => {
|
||||||
return res.data.data == 1;
|
return res.data.data == 1;
|
||||||
});
|
});
|
||||||
if (offName) {
|
if (offName) {
|
||||||
@@ -1590,17 +1599,16 @@ export default {
|
|||||||
arr.forEach((item) => {
|
arr.forEach((item) => {
|
||||||
if (item.dictValue === state.pathBg) {
|
if (item.dictValue === state.pathBg) {
|
||||||
state.pathBgId = item.dictCode;
|
state.pathBgId = item.dictCode;
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//for (let i = 0; i < arr.length; i++) {
|
//for (let i = 0; i < arr.length; i++) {
|
||||||
// console.log("arr[i].dictValue", arr[i].dictValue, state.pathBg);
|
// console.log("arr[i].dictValue", arr[i].dictValue, state.pathBg);
|
||||||
// if (arr[i].dictValue === state.pathBg) {
|
// if (arr[i].dictValue === state.pathBg) {
|
||||||
// state.pathBgId = arr[i].dictCode;
|
// state.pathBgId = arr[i].dictCode;
|
||||||
|
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
@@ -1637,8 +1645,8 @@ export default {
|
|||||||
const offName = await validateName({
|
const offName = await validateName({
|
||||||
name: state.pathName,
|
name: state.pathName,
|
||||||
type: 3,
|
type: 3,
|
||||||
id:state.editPathId,
|
id: state.editPathId,
|
||||||
}).then(res => {
|
}).then((res) => {
|
||||||
return res.data.data == 1;
|
return res.data.data == 1;
|
||||||
});
|
});
|
||||||
if (offName) {
|
if (offName) {
|
||||||
@@ -1720,7 +1728,7 @@ export default {
|
|||||||
state.searchdate = null;
|
state.searchdate = null;
|
||||||
state.startTime = null;
|
state.startTime = null;
|
||||||
state.endTime = null;
|
state.endTime = null;
|
||||||
state.createUser=null;
|
state.createUser = null;
|
||||||
getLearnPath();
|
getLearnPath();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1778,7 +1786,7 @@ export default {
|
|||||||
// state.imgData = ;
|
// state.imgData = ;
|
||||||
// }
|
// }
|
||||||
});
|
});
|
||||||
const imgData = computed(()=>store.state.pathmapPic)
|
const imgData = computed(() => store.state.pathmapPic);
|
||||||
//添加权限
|
//添加权限
|
||||||
watch(
|
watch(
|
||||||
() => state.addAuthList,
|
() => state.addAuthList,
|
||||||
|
|||||||
@@ -1388,7 +1388,6 @@ export default {
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
// const store = useStore();
|
// const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
pjModelVisible: false,
|
|
||||||
hasTask: false,
|
hasTask: false,
|
||||||
stage: [],
|
stage: [],
|
||||||
statess: [],
|
statess: [],
|
||||||
|
|||||||
@@ -2836,7 +2836,6 @@ export default {
|
|||||||
facestudent: "",
|
facestudent: "",
|
||||||
|
|
||||||
modal1Visible: false, // 证书预览
|
modal1Visible: false, // 证书预览
|
||||||
|
|
||||||
changegroupV: false, //换组弹窗
|
changegroupV: false, //换组弹窗
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user