mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-15 13:56:45 +08:00
Merge branch 'test20250220' into master_1202
This commit is contained in:
@@ -81,7 +81,7 @@ export const taskInformation = (growthId) => http.get('/professional/managementO
|
|||||||
export const taskCompletionRate = (growthId) => http.get('/professional/managementOverview/taskCompletionRate/' + growthId)
|
export const taskCompletionRate = (growthId) => http.get('/professional/managementOverview/taskCompletionRate/' + growthId)
|
||||||
|
|
||||||
// 运营数据概览
|
// 运营数据概览
|
||||||
export const getStudyStatisticsList = (data) => http.post('/professional/statics/getStudyStatisticsList',)
|
export const getStudyStatisticsList = (data) => http.post('/professional/statics/getStudyStatisticsList', data)
|
||||||
|
|
||||||
// 专业力列表
|
// 专业力列表
|
||||||
export const boeuGrowthPlatePageList = (obj) => http.post('/boeu/growth/pageList', obj)
|
export const boeuGrowthPlatePageList = (obj) => http.post('/boeu/growth/pageList', obj)
|
||||||
@@ -101,3 +101,13 @@ export const delGrowth = (growthId) => http.get('/professional/compulsory/delGro
|
|||||||
|
|
||||||
// 删除手动添加的专业力必修
|
// 删除手动添加的专业力必修
|
||||||
export const markComplete = (obj) => http.get('/professional/allocation/markComplete', { params: obj })
|
export const markComplete = (obj) => http.get('/professional/allocation/markComplete', { params: obj })
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export const attendanceList = (obj) => http.post('/professional/task/attendanceList', obj)
|
||||||
|
|
||||||
|
export const taskSign = (obj) => http.post('/professional/task/taskSign', obj)
|
||||||
|
|
||||||
|
export const taskLeave = (obj) => http.post('/professional/task/taskLeave', obj)
|
||||||
|
|
||||||
|
export const taskBatchSign = (id) => http.get('/professional/task/batchSign/' + id)
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 382 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 346 KiB |
1167
src/components/growthpath/GrowthActiveAttendance.vue
Normal file
1167
src/components/growthpath/GrowthActiveAttendance.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -131,7 +131,7 @@ const params = useResetRef({
|
|||||||
orderAsc: true,
|
orderAsc: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const { data, loading, total, fetch } = useBoeApiPage(CASE_PAGE, params.value, {
|
const { data, loading, total, fetch } = useBoeApiPage(CASE_PAGE, params, {
|
||||||
init: false,
|
init: false,
|
||||||
result: (res) => res.result.list,
|
result: (res) => res.result.list,
|
||||||
totalPage: (res) => res.result.totalPages,
|
totalPage: (res) => res.result.totalPages,
|
||||||
@@ -157,7 +157,7 @@ function search() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function reset() {
|
function reset() {
|
||||||
params.reset();
|
params.reset()
|
||||||
fetch();
|
fetch();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ const { start } = useTimeout(async ({ uuid, file }) => {
|
|||||||
fileList.value = [...fileList.value];
|
fileList.value = [...fileList.value];
|
||||||
if (upData && upData.status !== "START" && upData.status !== "NULL") {
|
if (upData && upData.status !== "START" && upData.status !== "NULL") {
|
||||||
emit("change", "end");
|
emit("change", "end");
|
||||||
// message.success("导入成功");
|
message.success("导入成功");
|
||||||
// closeDrawer();
|
// closeDrawer();
|
||||||
throw Error("查询任务结束");
|
throw Error("查询任务结束");
|
||||||
}
|
}
|
||||||
@@ -171,6 +171,7 @@ function handleChange({ file }) {
|
|||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
.main {
|
.main {
|
||||||
.minatitl {
|
.minatitl {
|
||||||
|
|||||||
@@ -360,8 +360,13 @@ const deleteDepSelect = () => {
|
|||||||
|
|
||||||
//确定添加授权
|
//确定添加授权
|
||||||
const confirm = () => {
|
const confirm = () => {
|
||||||
|
if(!stuSelectRows.value.length && !projectSelectRows.value.length){
|
||||||
|
message.warning('请选择学员')
|
||||||
|
return
|
||||||
|
}
|
||||||
visiable.value = false;
|
visiable.value = false;
|
||||||
emit("confirm", stuSelectRows.value, projectSelectRows.value);
|
emit("confirm", stuSelectRows.value, projectSelectRows.value);
|
||||||
|
closeDrawer()
|
||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
@@ -378,7 +383,7 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.CommonStudent > .ant-drawer-content-wrapper {
|
.CommonStudent > .ant-drawer-content-wrapper {
|
||||||
min-width: 1200px !important;
|
min-width: 1200px !important;
|
||||||
width: 1200px !important;
|
width: 1200px !important;
|
||||||
@@ -390,6 +395,10 @@ onMounted(() => {
|
|||||||
margin-left: 24px;
|
margin-left: 24px;
|
||||||
}
|
}
|
||||||
.CommonStudent {
|
.CommonStudent {
|
||||||
|
.ant-form-item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
.ant-btn-primary {
|
.ant-btn-primary {
|
||||||
background-color: #4ea6ff !important;
|
background-color: #4ea6ff !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -457,7 +457,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btn">
|
<div class="btn">
|
||||||
<button class="samtn btn2" @click="closeLearnBgMore">取消</button>
|
<button class="samtn btn2" @click="closeLearnBgMore">取消</button>
|
||||||
<a-button class="samtn btn2" @click="closeLearnBgMore">确定</a-button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
:visible="visiable"
|
:visible="visiable"
|
||||||
class="drawerStyle"
|
class="drawerStyle"
|
||||||
placement="right"
|
placement="right"
|
||||||
width="60%"
|
destroyOnClose
|
||||||
|
:width="width"
|
||||||
>
|
>
|
||||||
<div class="drawerMain" style="">
|
<div class="drawerMain" style="">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
@@ -28,17 +29,21 @@ const props = defineProps({
|
|||||||
type: String,
|
type: String,
|
||||||
default: "",
|
default: "",
|
||||||
},
|
},
|
||||||
|
width: {
|
||||||
|
type: String,
|
||||||
|
default: "60%",
|
||||||
|
},
|
||||||
});
|
});
|
||||||
const visiable = ref(false);
|
const visiable = ref(false);
|
||||||
|
|
||||||
const openDrawer = () => {
|
const openDrawer = () => {
|
||||||
visiable.value = true;
|
visiable.value = true;
|
||||||
};
|
};
|
||||||
const closeDrawer = ()=>{
|
const closeDrawer = () => {
|
||||||
visiable.value = false;
|
visiable.value = false;
|
||||||
}
|
};
|
||||||
defineExpose({
|
defineExpose({
|
||||||
openDrawer,
|
openDrawer,
|
||||||
closeDrawer
|
closeDrawer,
|
||||||
})
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
class="drawerStyle growth-exa"
|
class="drawerStyle growth-exa"
|
||||||
width="1500"
|
width="1500"
|
||||||
placement="right"
|
placement="right"
|
||||||
|
destroyOnClose
|
||||||
>
|
>
|
||||||
<div class="drawerMain">
|
<div class="drawerMain">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
@@ -511,12 +512,13 @@ const closeDrawer = () => {
|
|||||||
if (step.value > 1) {
|
if (step.value > 1) {
|
||||||
step.value = step.value - 1;
|
step.value = step.value - 1;
|
||||||
} else {
|
} else {
|
||||||
visible.value = false;
|
|
||||||
formData.reset();
|
formData.reset();
|
||||||
formData.value.info = {
|
formData.value.info = {
|
||||||
examType: 1,
|
examType: 1,
|
||||||
};
|
};
|
||||||
dateTime.value = [];
|
dateTime.value = [];
|
||||||
|
visible.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
>
|
>
|
||||||
<div class="drawerMain">
|
<div class="drawerMain">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="headerTitle">【面授】{{ datasource?.name }}</div>
|
<div class="headerTitle">【面授】{{ datasource?.taskName }}</div>
|
||||||
<img
|
<img
|
||||||
style="width: 29px; height: 29px; cursor: pointer"
|
style="width: 29px; height: 29px; cursor: pointer"
|
||||||
src="@/assets/images/basicinfo/close.png"
|
src="@/assets/images/basicinfo/close.png"
|
||||||
@@ -208,10 +208,9 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnn">
|
<!-- <div class="btnn">
|
||||||
<button class="btn1" @click="closeDrawer">取消</button>
|
<button class="btn1" @click="closeDrawer">取消</button>
|
||||||
<button class="btn2" @click="closeDrawer">确定</button>
|
</div> -->
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
<template v-if="step == 2">
|
<template v-if="step == 2">
|
||||||
<GrowthCommonStudent
|
<GrowthCommonStudent
|
||||||
@@ -331,6 +330,7 @@ const addUserConfirm = (stuSelectRows, projectSelectRows) => {
|
|||||||
projectList: projectSelectRows,
|
projectList: projectSelectRows,
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
message.success("添加成功");
|
message.success("添加成功");
|
||||||
|
tableRef.value.fetch();
|
||||||
step.value = 1;
|
step.value = 1;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -544,15 +544,22 @@ const batchSign = () => {
|
|||||||
}
|
}
|
||||||
dialog({
|
dialog({
|
||||||
content: "确定批量签到吗?",
|
content: "确定批量签到吗?",
|
||||||
ok: async () => {
|
ok: () => {
|
||||||
message.success("批量签到成功");
|
api
|
||||||
tableRef.value.toLoading();
|
.attendanceSign({
|
||||||
await api.attendanceSign({
|
|
||||||
courseId: offcoursePlanId.value,
|
courseId: offcoursePlanId.value,
|
||||||
ids: courseSelectRows.value?.map((t) => t.studentId),
|
ids: courseSelectRows.value?.map((t) => t.studentId),
|
||||||
taskId: taskId.value,
|
taskId: taskId.value,
|
||||||
taskType: props.datasource.taskType,
|
taskType: props.datasource.taskType,
|
||||||
type: 3,
|
type: 3,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
message.success("签到成功");
|
||||||
|
tableRef.value.toLoading();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
message.error("签到失败");
|
||||||
|
tableRef.value.toLoading();
|
||||||
});
|
});
|
||||||
tableRef.value.fetch();
|
tableRef.value.fetch();
|
||||||
},
|
},
|
||||||
@@ -561,11 +568,18 @@ const batchSign = () => {
|
|||||||
const batchSignAll = () => {
|
const batchSignAll = () => {
|
||||||
dialog({
|
dialog({
|
||||||
content: "确定全部签到吗?",
|
content: "确定全部签到吗?",
|
||||||
ok: async () => {
|
ok: () => {
|
||||||
message.success("全部签到成功");
|
api
|
||||||
tableRef.value.toLoading();
|
.attendanceSignAll({
|
||||||
await api.attendanceSignAll({
|
|
||||||
courseId: offcoursePlanId.value,
|
courseId: offcoursePlanId.value,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
message.success("签到成功");
|
||||||
|
tableRef.value.toLoading();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
message.error("签到失败");
|
||||||
|
tableRef.value.toLoading();
|
||||||
});
|
});
|
||||||
tableRef.value.fetch();
|
tableRef.value.fetch();
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -134,7 +134,12 @@
|
|||||||
<div class="wz">批量标注完成</div>
|
<div class="wz">批量标注完成</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="btn btn1" style="margin-right: 20px" @click="step = 2">
|
<div
|
||||||
|
class="btn btn1"
|
||||||
|
style="margin-right: 20px"
|
||||||
|
@click="step = 2"
|
||||||
|
v-if="homeWorkId"
|
||||||
|
>
|
||||||
<div class="img1"></div>
|
<div class="img1"></div>
|
||||||
<div class="wz">批量录入成绩</div>
|
<div class="wz">批量录入成绩</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -166,7 +171,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btnn">
|
<div class="btnn">
|
||||||
<button class="btn1" @click="closeDrawer">取消</button>
|
<button class="btn1" @click="closeDrawer">取消</button>
|
||||||
<button class="btn2" @click="closeDrawer">确定</button>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -176,7 +180,7 @@
|
|||||||
title="录入成绩"
|
title="录入成绩"
|
||||||
@close="closeDrawer"
|
@close="closeDrawer"
|
||||||
v-if="homeWorkId"
|
v-if="homeWorkId"
|
||||||
:template-url="scoreTemplateUrl"
|
:templateUrl="scoreTemplateUrl"
|
||||||
:data="{ targetId: offcoursePlanId, type: 3, workId: homeWorkId }"
|
:data="{ targetId: offcoursePlanId, type: 3, workId: homeWorkId }"
|
||||||
:url="`/admin/student/importHomeWork`"
|
:url="`/admin/student/importHomeWork`"
|
||||||
name="uploadFile"
|
name="uploadFile"
|
||||||
|
|||||||
@@ -51,8 +51,7 @@ const closeDrawer = () => {
|
|||||||
selectData.value = {};
|
selectData.value = {};
|
||||||
};
|
};
|
||||||
async function confirm(row) {
|
async function confirm(row) {
|
||||||
console.log(row)
|
console.log(row);
|
||||||
debugger
|
|
||||||
// 新增
|
// 新增
|
||||||
if (!selectData.value?.id) {
|
if (!selectData.value?.id) {
|
||||||
await saveTask({
|
await saveTask({
|
||||||
@@ -79,7 +78,7 @@ function selectCourse(row) {
|
|||||||
}
|
}
|
||||||
function openDrawer(row) {
|
function openDrawer(row) {
|
||||||
window.selectCourse = selectCourse;
|
window.selectCourse = selectCourse;
|
||||||
row && (selectData.value = [row.info]);
|
row && (selectData.value = row);
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,11 +45,11 @@
|
|||||||
<div class="namecon" style="margin-right: 16px">
|
<div class="namecon" style="margin-right: 16px">
|
||||||
<div class="select">
|
<div class="select">
|
||||||
<a-select
|
<a-select
|
||||||
v-model:value="projectName"
|
v-model:value="completionStatus"
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
placeholder="任务状态"
|
placeholder="任务状态"
|
||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectCompletionStatus"
|
||||||
allowClear
|
allowClear
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
<a-table
|
<a-table
|
||||||
style="border: 1px solid #f2f6fe"
|
style="border: 1px solid #f2f6fe"
|
||||||
:columns="tableDataFunc()"
|
:columns="tableDataFunc()"
|
||||||
:data-source="tabledata"
|
:data-source="tableData"
|
||||||
:loading="tableDataTotalLoading"
|
:loading="tableDataTotalLoading"
|
||||||
:scroll="{ x: 900 }"
|
:scroll="{ x: 900 }"
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
@@ -190,7 +190,7 @@ export default {
|
|||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
tableDataTotal: 0,
|
tableDataTotal: 0,
|
||||||
projectName: undefined,
|
completionStatus: undefined,
|
||||||
TASK_TYPE: TASK_TYPE,
|
TASK_TYPE: TASK_TYPE,
|
||||||
stdPosition: null,
|
stdPosition: null,
|
||||||
qualsLevelCode: null,
|
qualsLevelCode: null,
|
||||||
@@ -211,7 +211,7 @@ export default {
|
|||||||
label: "已完成",
|
label: "已完成",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
tabledata: [],
|
tableData: [],
|
||||||
tableDataTotalLoading: true, // 表格loading加载配置
|
tableDataTotalLoading: true, // 表格loading加载配置
|
||||||
evalDataSource: "",
|
evalDataSource: "",
|
||||||
Assessvisible: false,
|
Assessvisible: false,
|
||||||
@@ -418,8 +418,8 @@ export default {
|
|||||||
ctx.emit("update:Tvisible", false);
|
ctx.emit("update:Tvisible", false);
|
||||||
state.currentPage = 1;
|
state.currentPage = 1;
|
||||||
state.name = "";
|
state.name = "";
|
||||||
state.projectName = undefined;
|
state.completionStatus = undefined;
|
||||||
state.tabledata = [];
|
state.tableData = [];
|
||||||
state.stdPosition = null;
|
state.stdPosition = null;
|
||||||
state.qualsLevelCode = null;
|
state.qualsLevelCode = null;
|
||||||
};
|
};
|
||||||
@@ -430,8 +430,8 @@ export default {
|
|||||||
getData();
|
getData();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const selectProjectName = (value) => {
|
const selectCompletionStatus = (value) => {
|
||||||
state.projectName = value;
|
state.completionStatus = value;
|
||||||
};
|
};
|
||||||
//催促
|
//催促
|
||||||
const godie = () => {
|
const godie = () => {
|
||||||
@@ -462,7 +462,7 @@ export default {
|
|||||||
getStudentTaskPage({
|
getStudentTaskPage({
|
||||||
pageNum: state.currentPage,
|
pageNum: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
completionStatus: state.projectName,
|
completionStatus: state.completionStatus,
|
||||||
username: state.name,
|
username: state.name,
|
||||||
taskId: props.datasource.id,
|
taskId: props.datasource.id,
|
||||||
qualsLevelCode: state.qualsLevelCode,
|
qualsLevelCode: state.qualsLevelCode,
|
||||||
@@ -472,7 +472,7 @@ export default {
|
|||||||
console.log("在线课数据获取", res);
|
console.log("在线课数据获取", res);
|
||||||
if (res.data.code == 200) {
|
if (res.data.code == 200) {
|
||||||
state.tableDataTotalLoading = false;
|
state.tableDataTotalLoading = false;
|
||||||
state.tabledata = res.data.data.records;
|
state.tableData = res.data.data.records;
|
||||||
state.tableDataTotal = res.data.data.total;
|
state.tableDataTotal = res.data.data.total;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -493,7 +493,7 @@ export default {
|
|||||||
state.tableDataTotalLoading = true;
|
state.tableDataTotalLoading = true;
|
||||||
state.currentPage = 1;
|
state.currentPage = 1;
|
||||||
state.name = "";
|
state.name = "";
|
||||||
state.projectName = null;
|
state.completionStatus = null;
|
||||||
state.stdPosition = null;
|
state.stdPosition = null;
|
||||||
state.qualsLevelCode = null;
|
state.qualsLevelCode = null;
|
||||||
getData();
|
getData();
|
||||||
@@ -511,7 +511,7 @@ export default {
|
|||||||
let params = {
|
let params = {
|
||||||
pageNo: state.currentPage || "",
|
pageNo: state.currentPage || "",
|
||||||
pageSize: state.pageSize || "",
|
pageSize: state.pageSize || "",
|
||||||
completionStatus: state.projectName || "",
|
completionStatus: state.completionStatus || "",
|
||||||
username: state.name || "",
|
username: state.name || "",
|
||||||
taskId: props.datasource.id || "",
|
taskId: props.datasource.id || "",
|
||||||
qualsLevelCode: state.qualsLevelCode || "",
|
qualsLevelCode: state.qualsLevelCode || "",
|
||||||
@@ -539,7 +539,7 @@ export default {
|
|||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
selectProjectName,
|
selectCompletionStatus,
|
||||||
checkGrowthPer,
|
checkGrowthPer,
|
||||||
showassess,
|
showassess,
|
||||||
closeDrawer,
|
closeDrawer,
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
<a-input
|
<a-input
|
||||||
v-model:value="params.name"
|
v-model:value="params.name"
|
||||||
style="width: 220px; height: 40px; border-radius: 8px"
|
style="width: 220px; height: 40px; border-radius: 8px"
|
||||||
placeholder="请输入创建人"
|
placeholder="请输入名称"
|
||||||
maxlength="20"
|
maxlength="20"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -78,10 +78,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_btns">
|
<!-- <div class="main_btns">
|
||||||
<button @click="closeDrawer" class="btn2">取消</button>
|
<button @click="closeDrawer" class="btn2">取消</button>
|
||||||
<button @click="confirm" class="btn2">确定</button>
|
</div> -->
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<template v-if="step == 2">
|
<template v-if="step == 2">
|
||||||
@@ -897,12 +896,10 @@ const closeDrawer = () => {
|
|||||||
type: props.type,
|
type: props.type,
|
||||||
offcourseId: params.value.offcourseId,
|
offcourseId: params.value.offcourseId,
|
||||||
});
|
});
|
||||||
|
emit("refresh");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const emit = defineEmits(["call-parent-method"]);
|
const emit = defineEmits(["call-parent-method", "refresh"]);
|
||||||
const confirm = async () => {
|
|
||||||
closeDrawer();
|
|
||||||
};
|
|
||||||
|
|
||||||
const createNewCourse = () => {
|
const createNewCourse = () => {
|
||||||
changeName.value = true;
|
changeName.value = true;
|
||||||
|
|||||||
@@ -238,6 +238,7 @@ export default {
|
|||||||
importStudent: `${process.env.VUE_APP_BOE_API_URL}${
|
importStudent: `${process.env.VUE_APP_BOE_API_URL}${
|
||||||
process.env.VUE_APP_BASE_API_GROWTH || ""
|
process.env.VUE_APP_BASE_API_GROWTH || ""
|
||||||
}/professional/allocation/importLearner`,
|
}/professional/allocation/importLearner`,
|
||||||
|
|
||||||
timers: "", // 定时器,用于清空定时器使用
|
timers: "", // 定时器,用于清空定时器使用
|
||||||
isAddStudent: false, // 用于判断用户是否关闭弹框需要重新获取学员列表
|
isAddStudent: false, // 用于判断用户是否关闭弹框需要重新获取学员列表
|
||||||
uploadpercent: -1,
|
uploadpercent: -1,
|
||||||
@@ -335,6 +336,7 @@ export default {
|
|||||||
const status = info.file.status;
|
const status = info.file.status;
|
||||||
if (status !== "uploading") {
|
if (status !== "uploading") {
|
||||||
console.log(info.file, info.fileList);
|
console.log(info.file, info.fileList);
|
||||||
|
state.addLoading = false;
|
||||||
}
|
}
|
||||||
if (status === "done") {
|
if (status === "done") {
|
||||||
console.log("上传成功返回的UUID", info.file.response.data);
|
console.log("上传成功返回的UUID", info.file.response.data);
|
||||||
@@ -346,6 +348,7 @@ export default {
|
|||||||
});
|
});
|
||||||
state.fileName = info.file.name;
|
state.fileName = info.file.name;
|
||||||
let i = 0;
|
let i = 0;
|
||||||
|
message.success("上传成功");
|
||||||
if (info.file.response.code == 1) {
|
if (info.file.response.code == 1) {
|
||||||
state.fileList = [];
|
state.fileList = [];
|
||||||
state.addLoading = false;
|
state.addLoading = false;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
gutter="12"
|
gutter="12"
|
||||||
style="padding-left: 20px; margin-right: 0px"
|
style="padding-left: 20px; margin-right: 0px"
|
||||||
>
|
>
|
||||||
<!-- <a-col>
|
<a-col>
|
||||||
<a-form-item title="归属组织" style="min-width: 170px">
|
<a-form-item title="归属组织" style="min-width: 170px">
|
||||||
<div class="select in">
|
<div class="select in">
|
||||||
<OrgClass
|
<OrgClass
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col> -->
|
</a-col>
|
||||||
<a-col>
|
<a-col>
|
||||||
<a-form-item title="状态" style="width: 193px">
|
<a-form-item title="状态" style="width: 193px">
|
||||||
<div class="select in">
|
<div class="select in">
|
||||||
@@ -124,9 +124,8 @@
|
|||||||
type="flex"
|
type="flex"
|
||||||
gutter="12"
|
gutter="12"
|
||||||
style="padding-left: 20px; margin-right: 0px; position: relative"
|
style="padding-left: 20px; margin-right: 0px; position: relative"
|
||||||
v-if="checkGrowthPer(permissions)"
|
|
||||||
>
|
>
|
||||||
<a-col :span="1.5">
|
<a-col :span="1.5" v-if="checkMenu('growthStudentAdd')">
|
||||||
<a-button
|
<a-button
|
||||||
@click="addSut"
|
@click="addSut"
|
||||||
class="cus-btn"
|
class="cus-btn"
|
||||||
@@ -141,7 +140,7 @@
|
|||||||
</a-button>
|
</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
<!-- 新加导入学员 批量换组 导出学习信息 -->
|
<!-- 新加导入学员 批量换组 导出学习信息 -->
|
||||||
<a-col :span="1.5">
|
<a-col :span="1.5" v-if="checkMenu('growthStudentImport')">
|
||||||
<a-button
|
<a-button
|
||||||
class="cus-btn"
|
class="cus-btn"
|
||||||
@click="showImpStu"
|
@click="showImpStu"
|
||||||
@@ -155,7 +154,7 @@
|
|||||||
导入学员
|
导入学员
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="1.5">
|
<a-col :span="1.5" v-if="checkMenu('growthStudentDelete')">
|
||||||
<a-button
|
<a-button
|
||||||
class="cus-btn"
|
class="cus-btn"
|
||||||
@click="bathDel"
|
@click="bathDel"
|
||||||
@@ -169,7 +168,7 @@
|
|||||||
批量删除学员
|
批量删除学员
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="1.5">
|
<a-col :span="1.5" v-if="checkMenu('growthStudentExport')">
|
||||||
<a-button
|
<a-button
|
||||||
class="cus-btn"
|
class="cus-btn"
|
||||||
@click="exportTaskStu"
|
@click="exportTaskStu"
|
||||||
@@ -249,6 +248,7 @@
|
|||||||
style="display: flex; justify-content: center; align-items: center"
|
style="display: flex; justify-content: center; align-items: center"
|
||||||
>
|
>
|
||||||
<a-button
|
<a-button
|
||||||
|
v-if="checkMenu('growthStudentLookInfo')"
|
||||||
@click="seeStudent(record)"
|
@click="seeStudent(record)"
|
||||||
type="link"
|
type="link"
|
||||||
style="margin-right: 16px"
|
style="margin-right: 16px"
|
||||||
@@ -256,7 +256,7 @@
|
|||||||
查看
|
查看
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
v-if="checkGrowthPer(permissions)"
|
v-if="checkMenu('growthStudentDelete')"
|
||||||
:disabled="record.isLeader === '1'"
|
:disabled="record.isLeader === '1'"
|
||||||
@click="del(record)"
|
@click="del(record)"
|
||||||
type="link"
|
type="link"
|
||||||
@@ -280,7 +280,7 @@
|
|||||||
:courseId="id"
|
:courseId="id"
|
||||||
:courseType="type"
|
:courseType="type"
|
||||||
/>
|
/>
|
||||||
<GrowthDrawer ref="GrowthDrawerRef" title="新增学员">
|
<GrowthDrawer ref="GrowthDrawerRef" title="新增学员" width="1200px">
|
||||||
<GrowthCommonStudent
|
<GrowthCommonStudent
|
||||||
:growthId="growId"
|
:growthId="growId"
|
||||||
@confirm="confirmDrawer"
|
@confirm="confirmDrawer"
|
||||||
@@ -291,6 +291,7 @@
|
|||||||
<script setup lang="jsx">
|
<script setup lang="jsx">
|
||||||
import { computed, defineProps, onMounted, ref, watch } from "vue";
|
import { computed, defineProps, onMounted, ref, watch } from "vue";
|
||||||
import { delStudentList, getStuPage } from "@/api/index1";
|
import { delStudentList, getStuPage } from "@/api/index1";
|
||||||
|
import { checkMenu } from "@/utils/utils";
|
||||||
import {
|
import {
|
||||||
getGrowStudent,
|
getGrowStudent,
|
||||||
delGrowStudent,
|
delGrowStudent,
|
||||||
@@ -523,7 +524,9 @@ function search() {
|
|||||||
function exportTaskStu() {
|
function exportTaskStu() {
|
||||||
window.open(
|
window.open(
|
||||||
buildUrl(
|
buildUrl(
|
||||||
`${process.env.VUE_APP_BOE_API_URL}${process.env.VUE_APP_BASE_API_GROWTH || ''}/professional/allocation/export`,
|
`${process.env.VUE_APP_BOE_API_URL}${
|
||||||
|
process.env.VUE_APP_BASE_API_GROWTH || ""
|
||||||
|
}/professional/allocation/export`,
|
||||||
tableParam.value
|
tableParam.value
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -120,10 +120,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #action="{ record }">
|
<!-- <template #action="{ record }">
|
||||||
<template
|
<template
|
||||||
v-if="
|
v-if="
|
||||||
record.completionStatus == 2 && checkGrowthPer(permissions)
|
record.completionStatus == 2 && checkMenu('growthStudentMarkComplete')
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<a-button type="link" @click="setPermissions(record)"
|
<a-button type="link" @click="setPermissions(record)"
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
<template v-else>
|
<template v-else>
|
||||||
<div>--</div>
|
<div>--</div>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template> -->
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -150,6 +150,7 @@ import { getGrowStudentDetail, markComplete } from "@/api/growthpath";
|
|||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import { TASK_TYPE } from "@/utils/constGrown";
|
import { TASK_TYPE } from "@/utils/constGrown";
|
||||||
import { checkGrowthPer } from "@/utils/utils";
|
import { checkGrowthPer } from "@/utils/utils";
|
||||||
|
import { checkMenu } from "@/utils/utils";
|
||||||
export default {
|
export default {
|
||||||
name: "SeeStu",
|
name: "SeeStu",
|
||||||
components: {},
|
components: {},
|
||||||
@@ -170,7 +171,7 @@ export default {
|
|||||||
title: "类型",
|
title: "类型",
|
||||||
dataIndex: "courseType",
|
dataIndex: "courseType",
|
||||||
key: "courseType",
|
key: "courseType",
|
||||||
width: 80,
|
width: 120,
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
slots: { customRender: "courseType" },
|
slots: { customRender: "courseType" },
|
||||||
@@ -179,7 +180,6 @@ export default {
|
|||||||
title: "任务名称",
|
title: "任务名称",
|
||||||
dataIndex: "taskName",
|
dataIndex: "taskName",
|
||||||
key: "taskName",
|
key: "taskName",
|
||||||
width: 80,
|
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
@@ -187,9 +187,9 @@ export default {
|
|||||||
title: "必修/选修",
|
title: "必修/选修",
|
||||||
dataIndex: "taskType",
|
dataIndex: "taskType",
|
||||||
key: "taskType",
|
key: "taskType",
|
||||||
width: 30,
|
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
width: 120,
|
||||||
customRender: ({ record: { taskType } }) =>
|
customRender: ({ record: { taskType } }) =>
|
||||||
({
|
({
|
||||||
1: "必修",
|
1: "必修",
|
||||||
@@ -200,23 +200,23 @@ export default {
|
|||||||
title: "开始时间",
|
title: "开始时间",
|
||||||
dataIndex: "startTime",
|
dataIndex: "startTime",
|
||||||
key: "startTime",
|
key: "startTime",
|
||||||
width: 50,
|
|
||||||
align: "center",
|
align: "center",
|
||||||
|
width: 200,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "完成时间",
|
title: "完成时间",
|
||||||
dataIndex: "finishTime",
|
dataIndex: "finishTime",
|
||||||
key: "finishTime",
|
key: "finishTime",
|
||||||
width: 50,
|
|
||||||
align: "center",
|
align: "center",
|
||||||
|
width: 200,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "任务状态",
|
title: "任务状态",
|
||||||
dataIndex: "completionStatus",
|
dataIndex: "completionStatus",
|
||||||
key: "completionStatus",
|
key: "completionStatus",
|
||||||
width: 30,
|
|
||||||
align: "center",
|
align: "center",
|
||||||
|
width: 120,
|
||||||
customRender: ({ record: { completionStatus } }) =>
|
customRender: ({ record: { completionStatus } }) =>
|
||||||
({
|
({
|
||||||
2: "进行中",
|
2: "进行中",
|
||||||
@@ -224,14 +224,14 @@ export default {
|
|||||||
0: "未开始",
|
0: "未开始",
|
||||||
}[completionStatus]),
|
}[completionStatus]),
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: "操作",
|
// title: "操作",
|
||||||
dataIndex: "operation",
|
// dataIndex: "operation",
|
||||||
key: "operation",
|
// key: "operation",
|
||||||
width: 50,
|
// width: 50,
|
||||||
align: "center",
|
// align: "center",
|
||||||
slots: { customRender: "action" },
|
// slots: { customRender: "action" },
|
||||||
},
|
// },
|
||||||
]);
|
]);
|
||||||
const formData = ref()
|
const formData = ref()
|
||||||
const openDrawer = (row) => {
|
const openDrawer = (row) => {
|
||||||
|
|||||||
@@ -105,21 +105,18 @@ export default {
|
|||||||
title: "操作内容",
|
title: "操作内容",
|
||||||
dataIndex: "operationContent",
|
dataIndex: "operationContent",
|
||||||
key: "operationContent",
|
key: "operationContent",
|
||||||
width: "80px",
|
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "操作人",
|
title: "操作人",
|
||||||
dataIndex: "createName",
|
dataIndex: "createName",
|
||||||
key: "createName",
|
key: "createName",
|
||||||
width: "150px",
|
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "操作时间",
|
title: "操作时间",
|
||||||
dataIndex: "createTime",
|
dataIndex: "createTime",
|
||||||
key: "createTime",
|
key: "createTime",
|
||||||
width: "150px",
|
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
@@ -136,6 +133,8 @@ export default {
|
|||||||
const resetLearnPath = () => {
|
const resetLearnPath = () => {
|
||||||
state.username = null;
|
state.username = null;
|
||||||
state.searchdate = [];
|
state.searchdate = [];
|
||||||
|
state.startTime = "";
|
||||||
|
state.endTime = "";
|
||||||
state.pageNum = 1;
|
state.pageNum = 1;
|
||||||
getList();
|
getList();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -30,79 +30,92 @@ export const TASK_TYPE = {
|
|||||||
name: '在线',
|
name: '在线',
|
||||||
type: 1,
|
type: 1,
|
||||||
img: onLineImg,
|
img: onLineImg,
|
||||||
component: GrowthLineCourse
|
component: GrowthLineCourse,
|
||||||
|
permissionType:'growthTaskOnline',
|
||||||
},
|
},
|
||||||
2: {
|
2: {
|
||||||
name: '面授',
|
name: '面授',
|
||||||
type: 2,
|
type: 2,
|
||||||
img: faceCourseImg,
|
img: faceCourseImg,
|
||||||
component: GrowthFaceClass
|
component: GrowthFaceClass,
|
||||||
|
permissionType:'growthTaskFack',
|
||||||
},
|
},
|
||||||
3: {
|
3: {
|
||||||
name: '案例',
|
name: '案例',
|
||||||
type: 3,
|
type: 3,
|
||||||
img: caseImg,
|
img: caseImg,
|
||||||
component: GrowthCase
|
component: GrowthCase,
|
||||||
|
permissionType:'growthTaskCase',
|
||||||
},
|
},
|
||||||
4: {
|
4: {
|
||||||
name: '作业',
|
name: '作业',
|
||||||
type: 4,
|
type: 4,
|
||||||
img: workImg,
|
img: workImg,
|
||||||
component: GrowthHomework
|
component: GrowthHomework,
|
||||||
|
permissionType:'growthHomeworkTask',
|
||||||
},
|
},
|
||||||
5: {
|
5: {
|
||||||
name: '考试',
|
name: '考试',
|
||||||
type: 5,
|
type: 5,
|
||||||
img: exaImg,
|
img: exaImg,
|
||||||
component: GrowthExa
|
component: GrowthExa,
|
||||||
|
permissionType:'growthExaminationTask',
|
||||||
},
|
},
|
||||||
6: {
|
6: {
|
||||||
name: '直播',
|
name: '直播',
|
||||||
type: 6,
|
type: 6,
|
||||||
img: liveImg,
|
img: liveImg,
|
||||||
component: GrowthLive
|
component: GrowthLive,
|
||||||
|
permissionType:'growthLiveTask',
|
||||||
},
|
},
|
||||||
7: {
|
7: {
|
||||||
name: '外链',
|
name: '外链',
|
||||||
type: 7,
|
type: 7,
|
||||||
img: linkImg,
|
img: linkImg,
|
||||||
component: GrowthRef
|
component: GrowthRef,
|
||||||
|
permissionType:'growthLinkTask',
|
||||||
},
|
},
|
||||||
8: {
|
8: {
|
||||||
name: '讨论',
|
name: '讨论',
|
||||||
type: 8,
|
type: 8,
|
||||||
img: discussImg,
|
img: discussImg,
|
||||||
component: GrowthDiscuss
|
component: GrowthDiscuss,
|
||||||
|
permissionType:'growthDiscussTask',
|
||||||
},
|
},
|
||||||
9: {
|
9: {
|
||||||
name: '活动',
|
name: '活动',
|
||||||
type: 9,
|
type: 9,
|
||||||
img: activityImg,
|
img: activityImg,
|
||||||
component: GrowthActive
|
component: GrowthActive,
|
||||||
|
permissionType:'growthActivityTask',
|
||||||
},
|
},
|
||||||
10: {
|
10: {
|
||||||
name: '测评',
|
name: '测评',
|
||||||
type: 10,
|
type: 10,
|
||||||
img: testImg,
|
img: testImg,
|
||||||
component: GrowthEval
|
component: GrowthEval,
|
||||||
|
permissionType:'growthEvaluationTask',
|
||||||
},
|
},
|
||||||
11: {
|
11: {
|
||||||
name: '评估',
|
name: '评估',
|
||||||
type: 11,
|
type: 11,
|
||||||
img: evaImg,
|
img: evaImg,
|
||||||
component: GrowthInvist
|
component: GrowthInvist,
|
||||||
|
permissionType:'growthAssessTask',
|
||||||
},
|
},
|
||||||
12: {
|
12: {
|
||||||
name: '投票',
|
name: '投票',
|
||||||
type: 12,
|
type: 12,
|
||||||
img: voteImg,
|
img: voteImg,
|
||||||
component: GrowthVote
|
component: GrowthVote,
|
||||||
|
permissionType:'growthVoteTask',
|
||||||
},
|
},
|
||||||
13: {
|
13: {
|
||||||
name: '项目',
|
name: '项目',
|
||||||
type: 13,
|
type: 13,
|
||||||
img: projectImg,
|
img: projectImg,
|
||||||
component: GrowthProject
|
component: GrowthProject,
|
||||||
|
permissionType:'growthProjectTask',
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="handler">
|
<div class="handler">
|
||||||
<div class="item" v-for="(value, key) in TASK_TYPE" :key="key">
|
<div class="item" v-for="(value, key) in TASK_TYPE" :key="key">
|
||||||
<template v-if="key < 3">
|
<template v-if="checkMenu(value.permissionType)">
|
||||||
<component
|
<component
|
||||||
:ref="(el) => (courseRef['el' + key] = el)"
|
:ref="(el) => (courseRef['el' + key] = el)"
|
||||||
v-model:taskList="listDatas"
|
v-model:taskList="listDatas"
|
||||||
@@ -85,7 +85,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="listDatas.length != 0 && !basicData.isPublished"
|
v-if="
|
||||||
|
listDatas.length != 0 &&
|
||||||
|
!basicData.isPublished &&
|
||||||
|
checkMenu('growthTaskDelete')
|
||||||
|
"
|
||||||
class="btn btn2"
|
class="btn btn2"
|
||||||
@click="confirmDelTask()"
|
@click="confirmDelTask()"
|
||||||
>
|
>
|
||||||
@@ -202,6 +206,7 @@
|
|||||||
<div class="opacation">
|
<div class="opacation">
|
||||||
<template v-if="element.status == '0'">
|
<template v-if="element.status == '0'">
|
||||||
<span
|
<span
|
||||||
|
v-if="checkMenu('growthTaslRelease')"
|
||||||
style="color: #4ea6ff; cursor: pointer"
|
style="color: #4ea6ff; cursor: pointer"
|
||||||
@click="published(element, index)"
|
@click="published(element, index)"
|
||||||
>
|
>
|
||||||
@@ -211,19 +216,21 @@
|
|||||||
<span
|
<span
|
||||||
style="color: #4ea6ff; cursor: pointer"
|
style="color: #4ea6ff; cursor: pointer"
|
||||||
@click="editTaskForType(element, index)"
|
@click="editTaskForType(element, index)"
|
||||||
|
v-if="checkMenu('growthTaskEdit')"
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span
|
||||||
style="color: #4ea6ff; cursor: pointer"
|
style="color: #4ea6ff; cursor: pointer"
|
||||||
@click="confirmDelTask(element, index)"
|
@click="confirmDelTask(element, index)"
|
||||||
|
v-if="checkMenu('growthTaskDelete')"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<span
|
<span
|
||||||
v-if="element.status == '1'"
|
v-if="element.status == '1' && checkMenu('growthTaskWithdraw')"
|
||||||
style="color: #4ea6ff; cursor: pointer"
|
style="color: #4ea6ff; cursor: pointer"
|
||||||
@click="withdraw(element, index)"
|
@click="withdraw(element, index)"
|
||||||
>
|
>
|
||||||
@@ -287,6 +294,7 @@ import { message } from "ant-design-vue";
|
|||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
import { TASK_TYPE } from "@/utils/constGrown";
|
import { TASK_TYPE } from "@/utils/constGrown";
|
||||||
import dialog from "@/utils/dialog";
|
import dialog from "@/utils/dialog";
|
||||||
|
import { checkMenu } from "@/utils/utils";
|
||||||
import {
|
import {
|
||||||
getBasicInfo,
|
getBasicInfo,
|
||||||
notPublishedTaskList,
|
notPublishedTaskList,
|
||||||
@@ -431,7 +439,6 @@ const withdraw = (element) => {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
min-width: 933px;
|
|
||||||
background-color: rgba(245, 247, 250, 1);
|
background-color: rgba(245, 247, 250, 1);
|
||||||
.tableBox {
|
.tableBox {
|
||||||
margin-top: 21px;
|
margin-top: 21px;
|
||||||
|
|||||||
@@ -39,12 +39,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="btns">
|
<template v-if="checkMenu('growthAdd')">
|
||||||
|
<div class="btns">
|
||||||
<div class="btn btn3" @click="handleOut">
|
<div class="btn btn3" @click="handleOut">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">创建必修</div>
|
<div class="btnText">创建必修</div>
|
||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div>
|
||||||
|
</template>
|
||||||
<div class="grow_con">
|
<div class="grow_con">
|
||||||
<div class="grow_list">
|
<div class="grow_list">
|
||||||
<div class="grow_table">
|
<div class="grow_table">
|
||||||
@@ -59,18 +61,22 @@
|
|||||||
<a-button
|
<a-button
|
||||||
type="link"
|
type="link"
|
||||||
class="table_btn"
|
class="table_btn"
|
||||||
v-if="!record.isPublished && checkGrowthPer(record.permissions)"
|
v-if="!record.isPublished && checkMenu('growthRelease')"
|
||||||
@click="releaseLearnPath(record)"
|
@click="releaseLearnPath(record)"
|
||||||
>发布</a-button
|
>发布</a-button
|
||||||
>
|
>
|
||||||
<a-button
|
<a-button
|
||||||
v-if="checkGrowthPer(record.permissions)"
|
v-if="checkMenu('growthEdit')"
|
||||||
type="link"
|
type="link"
|
||||||
class="table_btn"
|
class="table_btn"
|
||||||
@click="editPath(record)"
|
@click="editPath(record)"
|
||||||
>编辑</a-button
|
>编辑</a-button
|
||||||
>
|
>
|
||||||
<a-button type="link" class="table_btn" @click="manage(record)"
|
<a-button
|
||||||
|
type="link"
|
||||||
|
v-if="checkMenu('growthManage')"
|
||||||
|
class="table_btn"
|
||||||
|
@click="manage(record)"
|
||||||
>管理</a-button
|
>管理</a-button
|
||||||
>
|
>
|
||||||
<!-- <DropDown v-if="record?.permissions?.includes('17')" value="授权">
|
<!-- <DropDown v-if="record?.permissions?.includes('17')" value="授权">
|
||||||
@@ -87,6 +93,11 @@
|
|||||||
<a-dropdown
|
<a-dropdown
|
||||||
:getPopupContainer="(triggerNode) => triggerNode.parentNode"
|
:getPopupContainer="(triggerNode) => triggerNode.parentNode"
|
||||||
:trigger="['click']"
|
:trigger="['click']"
|
||||||
|
v-if="
|
||||||
|
(record.isPublished && checkMenu('growthRevoke')) ||
|
||||||
|
checkMenu('growthModifyDiscipline') ||
|
||||||
|
(record.dataSource === '2' && checkMenu('growthDelete'))
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<a class="ant-dropdown-link" @click.prevent>
|
<a class="ant-dropdown-link" @click.prevent>
|
||||||
更多
|
更多
|
||||||
@@ -96,20 +107,25 @@
|
|||||||
<a-menu>
|
<a-menu>
|
||||||
<a-menu-item
|
<a-menu-item
|
||||||
key="1"
|
key="1"
|
||||||
v-if="
|
v-if="record.isPublished && checkMenu('growthRevoke')"
|
||||||
record.isPublished && checkGrowthPer(record.permissions)
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<a-button type="link" @click="withdraw(record)">
|
<a-button type="link" @click="withdraw(record)">
|
||||||
撤回
|
撤回
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="3">
|
<a-menu-item
|
||||||
|
key="3"
|
||||||
|
v-if="checkMenu('growthModifyDiscipline')"
|
||||||
|
>
|
||||||
<a-button type="link" @click="updateList(record)">
|
<a-button type="link" @click="updateList(record)">
|
||||||
修改记录
|
修改记录
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<template v-if="record.dataSource === '2'">
|
<template
|
||||||
|
v-if="
|
||||||
|
record.dataSource === '2' && checkMenu('growthDelete')
|
||||||
|
"
|
||||||
|
>
|
||||||
<a-menu-item key="4">
|
<a-menu-item key="4">
|
||||||
<a-button type="link" @click="delData(record)">
|
<a-button type="link" @click="delData(record)">
|
||||||
删除
|
删除
|
||||||
@@ -157,7 +173,7 @@
|
|||||||
<div class="bg_main">
|
<div class="bg_main">
|
||||||
<div class="bg_main_header">
|
<div class="bg_main_header">
|
||||||
<div class="bg_main_header_icon"></div>
|
<div class="bg_main_header_icon"></div>
|
||||||
<div>{{editId?'编辑专业力必修':'新增专业力必修'}}</div>
|
<div>{{ editId ? "编辑专业力必修" : "新增专业力必修" }}</div>
|
||||||
<div class="bg_main_header_close" @click="of_exit"></div>
|
<div class="bg_main_header_close" @click="of_exit"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bg_body">
|
<div class="bg_body">
|
||||||
@@ -249,7 +265,7 @@
|
|||||||
<div class="bg_body_input">
|
<div class="bg_body_input">
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>建议少于16个学习任务时使用</template>
|
<template #title> 建议多于10个学习任务时使用</template>
|
||||||
<div
|
<div
|
||||||
@click="template = 1"
|
@click="template = 1"
|
||||||
class="learnBgItem"
|
class="learnBgItem"
|
||||||
@@ -268,7 +284,7 @@
|
|||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
|
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>建议多任务时使用</template>
|
<template #title>建议少于16个学习任务时使用</template>
|
||||||
<div
|
<div
|
||||||
slot="reference"
|
slot="reference"
|
||||||
@click="template = 2"
|
@click="template = 2"
|
||||||
@@ -397,6 +413,7 @@ import CommonStudent from "@/components/growthpath/GrowthCommonStudent";
|
|||||||
import TableModelStudent from "@/components/growthpath/GrowthTableModel";
|
import TableModelStudent from "@/components/growthpath/GrowthTableModel";
|
||||||
import UpdateRecord from "@/components/growthpath/UpdateRecord";
|
import UpdateRecord from "@/components/growthpath/UpdateRecord";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
|
import { checkMenu } from "@/utils/utils";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
listData,
|
listData,
|
||||||
@@ -451,6 +468,7 @@ export default {
|
|||||||
statusPostCreate: [],
|
statusPostCreate: [],
|
||||||
statusRankCreate: [],
|
statusRankCreate: [],
|
||||||
courseNum: "",
|
courseNum: "",
|
||||||
|
isPublished: false,
|
||||||
matStudens: "",
|
matStudens: "",
|
||||||
elePublishedNum: 0, // 选修发布数量
|
elePublishedNum: 0, // 选修发布数量
|
||||||
pathWays: "",
|
pathWays: "",
|
||||||
@@ -485,18 +503,17 @@ export default {
|
|||||||
ok: () => {
|
ok: () => {
|
||||||
published({
|
published({
|
||||||
growId: item.id,
|
growId: item.id,
|
||||||
})
|
}).then((res) => {
|
||||||
.then((res) => {
|
|
||||||
if (res.data.code == 200) {
|
if (res.data.code == 200) {
|
||||||
message.success("发布成功");
|
message.success("发布成功");
|
||||||
listDatas();
|
listDatas();
|
||||||
} else {
|
} else {
|
||||||
message.error(err.data.msg);
|
message.error(err.data.msg);
|
||||||
}
|
}
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
message.error(err.data.msg);
|
|
||||||
});
|
});
|
||||||
|
// .catch((err) => {
|
||||||
|
// message.error(err.data.msg);
|
||||||
|
// });
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -530,18 +547,18 @@ export default {
|
|||||||
title: "标准岗位",
|
title: "标准岗位",
|
||||||
dataIndex: "stdPositionName",
|
dataIndex: "stdPositionName",
|
||||||
key: "stdPositionName",
|
key: "stdPositionName",
|
||||||
width: 100,
|
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
customRender: ({ record }) => {
|
customRender: ({ record }) => {
|
||||||
return `${record.stdPositionName}(${record.stdPosition})`;
|
return record.stdPosition
|
||||||
|
? `${record.stdPositionName}(${record.stdPosition})`
|
||||||
|
: `${record.stdPositionName}`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "任职资格等级",
|
title: "任职资格等级",
|
||||||
dataIndex: "qualsLevelDesr",
|
dataIndex: "qualsLevelDesr",
|
||||||
key: "qualsLevelDesr",
|
key: "qualsLevelDesr",
|
||||||
width: 120,
|
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
@@ -550,7 +567,6 @@ export default {
|
|||||||
title: "状态",
|
title: "状态",
|
||||||
dataIndex: "isPublished",
|
dataIndex: "isPublished",
|
||||||
key: "isPublished",
|
key: "isPublished",
|
||||||
width: 100,
|
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
customRender: ({ record }) => {
|
customRender: ({ record }) => {
|
||||||
@@ -569,7 +585,6 @@ export default {
|
|||||||
title: "数据来源",
|
title: "数据来源",
|
||||||
dataIndex: "dataSource",
|
dataIndex: "dataSource",
|
||||||
key: "dataSource",
|
key: "dataSource",
|
||||||
width: 100,
|
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
customRender: ({ record }) => {
|
customRender: ({ record }) => {
|
||||||
@@ -578,7 +593,6 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "操作",
|
title: "操作",
|
||||||
width: 160,
|
|
||||||
align: "right",
|
align: "right",
|
||||||
slots: { customRender: "listData" },
|
slots: { customRender: "listData" },
|
||||||
},
|
},
|
||||||
@@ -646,6 +660,7 @@ export default {
|
|||||||
state.template = record.template;
|
state.template = record.template;
|
||||||
state.matchRules = record.matchRules || "1";
|
state.matchRules = record.matchRules || "1";
|
||||||
state.bg_check = true;
|
state.bg_check = true;
|
||||||
|
state.isPublished = record.isPublished;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 切换匹配学员方式
|
// 切换匹配学员方式
|
||||||
@@ -666,11 +681,14 @@ export default {
|
|||||||
if (state.courseNum !== 0 && !state.courseNum) {
|
if (state.courseNum !== 0 && !state.courseNum) {
|
||||||
return message.error("请输入完成选修数量");
|
return message.error("请输入完成选修数量");
|
||||||
}
|
}
|
||||||
|
if (state.editId && state.isPublished) {
|
||||||
if (state.courseNum > state.elePublishedNum) {
|
if (state.courseNum > state.elePublishedNum) {
|
||||||
message.warning("完成选修数量不能大于已发布的选修数量");
|
message.warning("完成选修数量不能大于已发布的选修数量");
|
||||||
state.courseNum = state.elePublishedNum;
|
state.courseNum = state.elePublishedNum;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const params = {
|
const params = {
|
||||||
stdPositionDesr: state.statusPosts,
|
stdPositionDesr: state.statusPosts,
|
||||||
qualsLevelDesr: state.statusOffices,
|
qualsLevelDesr: state.statusOffices,
|
||||||
@@ -723,6 +741,7 @@ export default {
|
|||||||
state.bg_check = false;
|
state.bg_check = false;
|
||||||
state.editId = null;
|
state.editId = null;
|
||||||
state.band = "";
|
state.band = "";
|
||||||
|
state.isPublished = false;
|
||||||
};
|
};
|
||||||
// 创建路径
|
// 创建路径
|
||||||
// 管理
|
// 管理
|
||||||
@@ -753,7 +772,6 @@ export default {
|
|||||||
// 查看修改记录
|
// 查看修改记录
|
||||||
const UpdateRecordRef = ref(null);
|
const UpdateRecordRef = ref(null);
|
||||||
const updateList = (record) => {
|
const updateList = (record) => {
|
||||||
console.log(record, "record");
|
|
||||||
UpdateRecordRef.value.open(record);
|
UpdateRecordRef.value.open(record);
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
@@ -776,6 +794,7 @@ export default {
|
|||||||
handleOut,
|
handleOut,
|
||||||
releaseLearnPath,
|
releaseLearnPath,
|
||||||
delData,
|
delData,
|
||||||
|
checkMenu,
|
||||||
UpdateRecordRef,
|
UpdateRecordRef,
|
||||||
matchRulesChange,
|
matchRulesChange,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -13,31 +13,40 @@
|
|||||||
<div class="fort">创建时间:{{ basicData?.createTime }}</div>
|
<div class="fort">创建时间:{{ basicData?.createTime }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div
|
<template v-if="basicData.isPublished && checkMenu('growthRevoke')">
|
||||||
class="pubIcon"
|
<div class="pubIcon" @click="resize()">
|
||||||
v-if="checkGrowthPer(preId)"
|
<img class="img2" src="../../assets/images/leveladd/pub.png" />
|
||||||
@click="basicData.isPublished ? resize() : releaseLearnPath()"
|
|
||||||
>
|
|
||||||
<img
|
|
||||||
v-if="!basicData.isPublished"
|
|
||||||
class="img2"
|
|
||||||
src="../../assets/images/growthpath/push.png"
|
|
||||||
/>
|
|
||||||
<img
|
|
||||||
v-else
|
|
||||||
class="img2"
|
|
||||||
src="../../assets/images/leveladd/pub.png"
|
|
||||||
/>
|
|
||||||
<!-- 已发布的显示 -->
|
<!-- 已发布的显示 -->
|
||||||
<div
|
<div
|
||||||
class="pub"
|
class="pub"
|
||||||
style="width: 28px"
|
style="width: 28px"
|
||||||
:style="{ color: !basicData.isPublished ? '#31AF0D' : '#ffb64e' }"
|
:style="{
|
||||||
|
color: '#ffb64e',
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
{{ basicData?.isPublished ? "撤回" : "发布" }}
|
撤回
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
|
</template>
|
||||||
|
<template v-if="!basicData.isPublished && checkMenu('growthRelease')">
|
||||||
|
<div class="pubIcon" @click="releaseLearnPath()">
|
||||||
|
<img class="img2" src="../../assets/images/growthpath/push.png" />
|
||||||
|
|
||||||
|
<!-- 已发布的显示 -->
|
||||||
|
<div
|
||||||
|
class="pub"
|
||||||
|
style="width: 28px"
|
||||||
|
:style="{
|
||||||
|
color: '#31AF0D',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
发布
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="line"></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
<router-link to="/growthpath"
|
<router-link to="/growthpath"
|
||||||
><div style="display: flex">
|
><div style="display: flex">
|
||||||
<img class="img2" src="../../assets/images/leveladd/back.png" />
|
<img class="img2" src="../../assets/images/leveladd/back.png" />
|
||||||
@@ -58,7 +67,7 @@
|
|||||||
<a-tab-pane key="1" tab="概览" style="position: relative">
|
<a-tab-pane key="1" tab="概览" style="position: relative">
|
||||||
<!-- 概览(无数据) -->
|
<!-- 概览(无数据) -->
|
||||||
<div v-if="!basicData.publishedTaskNum" style="display: flex">
|
<div v-if="!basicData.publishedTaskNum" style="display: flex">
|
||||||
<div class="secondadd" v-if="checkGrowthPer(preId)">
|
<div class="secondadd" v-if="checkMenu('growthTaskAdd')">
|
||||||
<div style="width: 368px; height: 22px" class="addtaskmain">
|
<div style="width: 368px; height: 22px" class="addtaskmain">
|
||||||
快速创建专业力必修任务详情
|
快速创建专业力必修任务详情
|
||||||
</div>
|
</div>
|
||||||
@@ -210,7 +219,7 @@
|
|||||||
},
|
},
|
||||||
}"
|
}"
|
||||||
class="editright"
|
class="editright"
|
||||||
v-if="checkGrowthPer(preId) && listTaskData.length"
|
v-if="checkMenu('growthTaskEdit') && listTaskData.length"
|
||||||
>
|
>
|
||||||
<span class="editextb">编辑任务</span>
|
<span class="editextb">编辑任务</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
@@ -224,13 +233,15 @@
|
|||||||
<a-radio-button value="1">必修</a-radio-button>
|
<a-radio-button value="1">必修</a-radio-button>
|
||||||
<a-radio-button value="2">选修</a-radio-button>
|
<a-radio-button value="2">选修</a-radio-button>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
<!-- <div class="switch">
|
<template v-if="checkMenu('growthSetLearningOrder')">
|
||||||
|
<div class="switch">
|
||||||
<a-switch
|
<a-switch
|
||||||
@change="sortSwitchChange"
|
@change="sortSwitchChange"
|
||||||
v-model:checked="basicData.sortSwitch"
|
v-model:checked="basicData.sortSwitch"
|
||||||
/>
|
/>
|
||||||
<div style="margin-left: 5px">是否按顺序学习</div>
|
<div style="margin-left: 5px">是否按顺序学习</div>
|
||||||
</div> -->
|
</div>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<!-- 无数据显示快速创建 -->
|
<!-- 无数据显示快速创建 -->
|
||||||
<div v-if="!listTaskData.length" style="margin-top: 20px">
|
<div v-if="!listTaskData.length" style="margin-top: 20px">
|
||||||
@@ -244,7 +255,7 @@
|
|||||||
<div
|
<div
|
||||||
@click="addTask('/editingtasks')"
|
@click="addTask('/editingtasks')"
|
||||||
class="taskbox"
|
class="taskbox"
|
||||||
v-if="checkGrowthPer(preId)"
|
v-if="checkMenu('growthTaskEdit')"
|
||||||
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
|
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
|
||||||
>
|
>
|
||||||
<div class="leftt">
|
<div class="leftt">
|
||||||
@@ -288,11 +299,13 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
|
<a-tooltip>
|
||||||
|
<template #title>可拖动排序</template>
|
||||||
<img
|
<img
|
||||||
style="width: 17px; height: 14px"
|
style="width: 17px; height: 14px"
|
||||||
src="../../assets/images/leveladd/z1.png"
|
src="../../assets/images/leveladd/z1.png"
|
||||||
/>
|
/>
|
||||||
|
</a-tooltip>
|
||||||
<img
|
<img
|
||||||
style="width: 31px; height: 28px; margin: 0 12px"
|
style="width: 31px; height: 28px; margin: 0 12px"
|
||||||
:src="TASK_TYPE[element.taskType]?.img"
|
:src="TASK_TYPE[element.taskType]?.img"
|
||||||
@@ -325,9 +338,12 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div
|
<div
|
||||||
class="first"
|
class="first"
|
||||||
v-if="checkGrowthPer(preId) && courseType == 1"
|
v-if="
|
||||||
|
checkMenu('growthPreviousLevelTask') &&
|
||||||
|
courseType == 1
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<template v-if="element.superiorTaskName">
|
<template v-if="element.superiorTaskName">
|
||||||
<div style="margin-right: 8px">
|
<div style="margin-right: 8px">
|
||||||
@@ -347,15 +363,28 @@
|
|||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div> -->
|
</div>
|
||||||
<div class="operations" v-if="checkGrowthPer(preId)">
|
<div
|
||||||
|
class="operations"
|
||||||
|
v-if="
|
||||||
|
checkMenu('growthEvaluateQRCode') ||
|
||||||
|
checkMenu('growthSignQRCode') ||
|
||||||
|
checkMenu('growthFaceTeaching') ||
|
||||||
|
checkMenu('growthFaceStudent') ||
|
||||||
|
checkMenu('growthQRCode') ||
|
||||||
|
checkMenu('growthTaskManage')
|
||||||
|
"
|
||||||
|
>
|
||||||
<template
|
<template
|
||||||
v-if="
|
v-if="
|
||||||
element.assessmentIds.length > 1 &&
|
element.assessmentIds.length > 1 &&
|
||||||
element.taskType == 2
|
element.taskType == 2
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<div class="operations_dropdown">
|
<div
|
||||||
|
class="operations_dropdown"
|
||||||
|
v-if="checkMenu('growthEvaluateQRCode')"
|
||||||
|
>
|
||||||
<a-dropdown
|
<a-dropdown
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => triggerNode.parentNode
|
(triggerNode) => triggerNode.parentNode
|
||||||
@@ -386,7 +415,17 @@
|
|||||||
</template>
|
</template>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
</div>
|
</div>
|
||||||
<div class="operations_dropdown">
|
</template>
|
||||||
|
<template
|
||||||
|
v-if="
|
||||||
|
element.offcourseIds.length > 1 &&
|
||||||
|
element.taskType == 2
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="operations_dropdown"
|
||||||
|
v-if="checkMenu('growthSignQRCode')"
|
||||||
|
>
|
||||||
<a-dropdown
|
<a-dropdown
|
||||||
:getPopupContainer="
|
:getPopupContainer="
|
||||||
(triggerNode) => triggerNode.parentNode
|
(triggerNode) => triggerNode.parentNode
|
||||||
@@ -418,14 +457,30 @@
|
|||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<template
|
||||||
|
v-if="
|
||||||
|
(element.taskType == 6 || element.taskType == 9) &&
|
||||||
|
checkMenu('growthWorkAttendance')
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="operation"
|
||||||
|
@click="handlerWorkAttendance(element)"
|
||||||
|
>
|
||||||
|
考勤
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
<template
|
<template
|
||||||
v-if="
|
v-if="
|
||||||
element.assessmentIds.filter((id) => id !== null)
|
element.assessmentIds.length == 1 &&
|
||||||
.length == 1 && element.taskType == 2
|
element.taskType == 2
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<div class="operations_dropdown">
|
<div
|
||||||
|
class="operations_dropdown"
|
||||||
|
v-if="checkMenu('growthEvaluateQRCode')"
|
||||||
|
>
|
||||||
<a
|
<a
|
||||||
class="ant-dropdown-link"
|
class="ant-dropdown-link"
|
||||||
@click="qrcodeAssement(element)"
|
@click="qrcodeAssement(element)"
|
||||||
@@ -433,7 +488,17 @@
|
|||||||
评估二维码
|
评估二维码
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="operations_dropdown">
|
</template>
|
||||||
|
<template
|
||||||
|
v-if="
|
||||||
|
element.offcourseIds.length == 1 &&
|
||||||
|
element.taskType == 2
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="operations_dropdown"
|
||||||
|
v-if="checkMenu('growthSignQRCode')"
|
||||||
|
>
|
||||||
<a
|
<a
|
||||||
class="ant-dropdown-link"
|
class="ant-dropdown-link"
|
||||||
@click="qrcodeVisible(element)"
|
@click="qrcodeVisible(element)"
|
||||||
@@ -442,15 +507,16 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="element.taskType == 2">
|
<template v-if="element.taskType == 2">
|
||||||
<div
|
<div
|
||||||
|
v-if="checkMenu('growthFaceTeaching')"
|
||||||
class="operation"
|
class="operation"
|
||||||
@click="openCourse(element, index)"
|
@click="openCourse(element, index)"
|
||||||
>
|
>
|
||||||
开课
|
开课
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
|
v-if="checkMenu('growthFaceStudent')"
|
||||||
class="operation"
|
class="operation"
|
||||||
@click="showFS(element, index)"
|
@click="showFS(element, index)"
|
||||||
>
|
>
|
||||||
@@ -458,7 +524,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="element.taskType != 2">
|
<template
|
||||||
|
v-if="
|
||||||
|
element.taskType != 2 && checkMenu('growthQRCode')
|
||||||
|
"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
class="operation"
|
class="operation"
|
||||||
style="cursor: pointer"
|
style="cursor: pointer"
|
||||||
@@ -469,6 +539,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<div
|
<div
|
||||||
class="operation"
|
class="operation"
|
||||||
|
v-if="checkMenu('growthTaskManage')"
|
||||||
style="cursor: pointer; margin-right: 35px"
|
style="cursor: pointer; margin-right: 35px"
|
||||||
@click="
|
@click="
|
||||||
element.taskType == 2
|
element.taskType == 2
|
||||||
@@ -569,9 +640,14 @@
|
|||||||
index="0"
|
index="0"
|
||||||
type="课程二维码"
|
type="课程二维码"
|
||||||
/>
|
/>
|
||||||
|
<!-- 考勤 -->
|
||||||
|
<GrowthActiveAttendance
|
||||||
|
v-model:workAttendanceVisible="workAttendanceVisible"
|
||||||
|
:datasource="workAttendanceData"
|
||||||
|
/>
|
||||||
<!-- 二维码弹窗 -->
|
<!-- 二维码弹窗 -->
|
||||||
<!-- 面授课开课弹框 -->
|
<!-- 面授课开课弹框 -->
|
||||||
<GrowthOpenCourse ref="coursePlanRef" :type="4" />
|
<GrowthOpenCourse ref="coursePlanRef" :type="4" @refresh="getListTask" />
|
||||||
|
|
||||||
<a-modal
|
<a-modal
|
||||||
v-model:visible="setSuperiorsVisible"
|
v-model:visible="setSuperiorsVisible"
|
||||||
@@ -669,6 +745,8 @@ import { DownOutlined, CloseCircleOutlined } from "@ant-design/icons-vue";
|
|||||||
import GrowthFaceTaskManage from "../../components/growthpath/GrowthFaceTaskManage";
|
import GrowthFaceTaskManage from "../../components/growthpath/GrowthFaceTaskManage";
|
||||||
import GrowthHomeworkManage from "@/components/growthpath/GrowthHomeworkManage";
|
import GrowthHomeworkManage from "@/components/growthpath/GrowthHomeworkManage";
|
||||||
import { courseData } from "@/api/index1";
|
import { courseData } from "@/api/index1";
|
||||||
|
import { checkMenu } from "@/utils/utils";
|
||||||
|
import GrowthActiveAttendance from "@/components/growthpath/GrowthActiveAttendance";
|
||||||
import {
|
import {
|
||||||
getOverview,
|
getOverview,
|
||||||
getBasicInfo,
|
getBasicInfo,
|
||||||
@@ -700,6 +778,7 @@ export default {
|
|||||||
GrowthFaceTaskManage,
|
GrowthFaceTaskManage,
|
||||||
GrowthOpenCourse,
|
GrowthOpenCourse,
|
||||||
DownOutlined,
|
DownOutlined,
|
||||||
|
GrowthActiveAttendance,
|
||||||
CloseCircleOutlined,
|
CloseCircleOutlined,
|
||||||
GrowthFaceStu,
|
GrowthFaceStu,
|
||||||
},
|
},
|
||||||
@@ -718,6 +797,9 @@ export default {
|
|||||||
onlineVisible: false,
|
onlineVisible: false,
|
||||||
setSuperiorsVisible: false,
|
setSuperiorsVisible: false,
|
||||||
total: 0,
|
total: 0,
|
||||||
|
// 考勤
|
||||||
|
workAttendanceVisible: false,
|
||||||
|
workAttendanceData: {},
|
||||||
pageSize: 99999,
|
pageSize: 99999,
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
spinning: false,
|
spinning: false,
|
||||||
@@ -787,7 +869,11 @@ export default {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
// 考勤
|
||||||
|
const handlerWorkAttendance = (data) => {
|
||||||
|
state.workAttendanceVisible = true;
|
||||||
|
state.workAttendanceData = data;
|
||||||
|
};
|
||||||
// 开启绑定上级任务的弹窗
|
// 开启绑定上级任务的弹窗
|
||||||
const setSuperiorsActive = ref(null);
|
const setSuperiorsActive = ref(null);
|
||||||
const handlerSuperiors = (element) => {
|
const handlerSuperiors = (element) => {
|
||||||
@@ -1101,7 +1187,7 @@ export default {
|
|||||||
window.location.protocol +
|
window.location.protocol +
|
||||||
process.env.VUE_APP_H5 +
|
process.env.VUE_APP_H5 +
|
||||||
"/investigatpage?courseId=" +
|
"/investigatpage?courseId=" +
|
||||||
item.info.id +
|
item.taskId +
|
||||||
"&type=4&id=" +
|
"&type=4&id=" +
|
||||||
item.id +
|
item.id +
|
||||||
"&chapterOrStageId=0" +
|
"&chapterOrStageId=0" +
|
||||||
@@ -1278,6 +1364,7 @@ export default {
|
|||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
stuRef,
|
stuRef,
|
||||||
headers,
|
headers,
|
||||||
|
checkMenu,
|
||||||
coursePlanRef,
|
coursePlanRef,
|
||||||
changeTabs,
|
changeTabs,
|
||||||
resize,
|
resize,
|
||||||
@@ -1302,6 +1389,7 @@ export default {
|
|||||||
handleMenuClick,
|
handleMenuClick,
|
||||||
qrcodeVisible,
|
qrcodeVisible,
|
||||||
handlerSuperiors,
|
handlerSuperiors,
|
||||||
|
handlerWorkAttendance,
|
||||||
showFS,
|
showFS,
|
||||||
qrCodeItems,
|
qrCodeItems,
|
||||||
visibleEwm,
|
visibleEwm,
|
||||||
@@ -2072,8 +2160,9 @@ export default {
|
|||||||
|
|
||||||
.operations {
|
.operations {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 460px;
|
width: 260px;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
flex-wrap: wrap;
|
||||||
.operation {
|
.operation {
|
||||||
color: #4ea6ff;
|
color: #4ea6ff;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
|||||||
@@ -1160,6 +1160,7 @@ export default {
|
|||||||
state.tableDataTotal = Number(res.data.data.total);
|
state.tableDataTotal = Number(res.data.data.total);
|
||||||
state.tableLoading = false
|
state.tableLoading = false
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
|
console.log("getTeacherFeeList catch err.data.msg",err.data.msg)
|
||||||
state.tableLoading = false
|
state.tableLoading = false
|
||||||
message.destroy()
|
message.destroy()
|
||||||
message.error(err.data.msg)
|
message.error(err.data.msg)
|
||||||
@@ -1259,6 +1260,7 @@ export default {
|
|||||||
cancel()
|
cancel()
|
||||||
getTableDate();
|
getTableDate();
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
|
console.log("updateTeacherFee catch err",err.data.msg)
|
||||||
message.destroy()
|
message.destroy()
|
||||||
state.teacherdialog = false;
|
state.teacherdialog = false;
|
||||||
message.error(err.data.msg)
|
message.error(err.data.msg)
|
||||||
|
|||||||
@@ -19,8 +19,9 @@ module.exports = defineConfig({
|
|||||||
},
|
},
|
||||||
proxy: {
|
proxy: {
|
||||||
// "/professional": {
|
// "/professional": {
|
||||||
// target: 'http://192.168.143.97:32002',
|
// target: 'http://192.168.68.211:32002',
|
||||||
// // target: 'http://192.168.50.195:32002',
|
// // target: 'http://192.168.50.195:32002',
|
||||||
|
// // target: 'http://192.168.86.195:32002',
|
||||||
// changeOrigin: true,
|
// changeOrigin: true,
|
||||||
// },
|
// },
|
||||||
"/growth": {
|
"/growth": {
|
||||||
|
|||||||
Reference in New Issue
Block a user