This commit is contained in:
Pengxiansen
2025-02-21 14:04:17 +08:00
parent 3e86caab15
commit 01ab826dcf
17 changed files with 107 additions and 75 deletions

View File

@@ -18,8 +18,8 @@ import { boeRequest } from "@/api/request";
// "application/x-www-form-urlencoded"; // "application/x-www-form-urlencoded";
axios.defaults.withCredentials = true; axios.defaults.withCredentials = true;
const http = axios.create({ const http = axios.create({
// baseURL: '/growth', baseURL: '/growth',
baseURL: process.env.VUE_APP_BASE_API_GROWTH, // baseURL: process.env.VUE_APP_BASE_API_GROWTH,
timeout: 1000 * 15, timeout: 1000 * 15,
// headers: { "Content-Type": "multipart/form-data" }, // headers: { "Content-Type": "multipart/form-data" },
headers: { "Content-Type": "application/json" }, headers: { "Content-Type": "application/json" },

View File

@@ -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)

View File

@@ -445,7 +445,7 @@ export default {
console.log(obj); console.log(obj);
state.tableDataTotalLoading = true; state.tableDataTotalLoading = true;
taskLeave(obj) taskSign(obj)
.then((res) => { .then((res) => {
console.log("签到结果", res, obj); console.log("签到结果", res, obj);
if (res.data.code === 200) { if (res.data.code === 200) {

View File

@@ -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();
} }

View File

@@ -101,6 +101,7 @@
</div> </div>
<div class="btnn"> <div class="btnn">
<button class="btn2" @click="closeDrawer">取消</button> <button class="btn2" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button>
</div> </div>
</div> </div>
</template> </template>
@@ -138,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("查询任务结束");
} }
@@ -170,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 {

View File

@@ -4,7 +4,7 @@
class="drawerStyle" class="drawerStyle"
placement="right" placement="right"
destroyOnClose destroyOnClose
width="60%" :width="width"
> >
<div class="drawerMain" style=""> <div class="drawerMain" style="">
<div class="header"> <div class="header">
@@ -29,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>

View File

@@ -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;
} }
}; };

View File

@@ -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,9 +208,9 @@
/> />
</div> </div>
</div> </div>
<div class="btnn"> <!-- <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
</div> </div> -->
</template> </template>
<template v-if="step == 2"> <template v-if="step == 2">
<GrowthCommonStudent <GrowthCommonStudent
@@ -330,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;
}); });
}; };
@@ -543,16 +544,23 @@ 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();
}, },
}); });
@@ -560,12 +568,19 @@ 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();
}, },
}); });

View File

@@ -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>
@@ -175,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"

View File

@@ -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;

View File

@@ -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,
@@ -342,11 +343,12 @@ export default {
console.log("上传成功返回的UUID----->", info); console.log("上传成功返回的UUID----->", info);
console.log("我是导入学员接口传递的参数", { console.log("我是导入学员接口传递的参数", {
file: info.file.originFileObj, file: info.file.originFileObj,
targetId: props.courseId, targetId: props.courseId,
type: 14, type: 14,
}); });
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;

View File

@@ -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"

View File

@@ -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",
}, },
]); ]);

View File

@@ -439,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;

View File

@@ -510,9 +510,9 @@ export default {
message.error(err.data.msg); message.error(err.data.msg);
} }
}) })
.catch((err) => { // .catch((err) => {
message.error(err.data.msg); // message.error(err.data.msg);
}); // });
}, },
}); });
}; };
@@ -546,7 +546,6 @@ 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 }) => {
@@ -559,7 +558,6 @@ export default {
title: "任职资格等级", title: "任职资格等级",
dataIndex: "qualsLevelDesr", dataIndex: "qualsLevelDesr",
key: "qualsLevelDesr", key: "qualsLevelDesr",
width: 120,
align: "center", align: "center",
ellipsis: true, ellipsis: true,
}, },
@@ -568,7 +566,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 }) => {
@@ -587,7 +584,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 }) => {
@@ -596,7 +592,6 @@ export default {
}, },
{ {
title: "操作", title: "操作",
width: 160,
align: "right", align: "right",
slots: { customRender: "listData" }, slots: { customRender: "listData" },
}, },
@@ -776,7 +771,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 {

View File

@@ -299,11 +299,13 @@
" "
> >
<div class="racona"> <div class="racona">
<img <a-tooltip>
style="width: 17px; height: 14px" <template #title>可拖动排序</template>
src="../../assets/images/leveladd/z1.png" <img
/> style="width: 17px; height: 14px"
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"
@@ -413,6 +415,13 @@
</template> </template>
</a-dropdown> </a-dropdown>
</div> </div>
</template>
<template
v-if="
element.offcourseIds.length > 1 &&
element.taskType == 2
"
>
<div <div
class="operations_dropdown" class="operations_dropdown"
v-if="checkMenu('growthSignQRCode')" v-if="checkMenu('growthSignQRCode')"
@@ -464,8 +473,8 @@
<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 <div
@@ -479,6 +488,13 @@
评估二维码 评估二维码
</a> </a>
</div> </div>
</template>
<template
v-if="
element.offcourseIds.length == 1 &&
element.taskType == 2
"
>
<div <div
class="operations_dropdown" class="operations_dropdown"
v-if="checkMenu('growthSignQRCode')" v-if="checkMenu('growthSignQRCode')"
@@ -491,7 +507,6 @@
</a> </a>
</div> </div>
</template> </template>
<template v-if="element.taskType == 2"> <template v-if="element.taskType == 2">
<div <div
v-if="checkMenu('growthFaceTeaching')" v-if="checkMenu('growthFaceTeaching')"
@@ -632,7 +647,7 @@
/> />
<!-- 二维码弹窗 --> <!-- 二维码弹窗 -->
<!-- 面授课开课弹框 --> <!-- 面授课开课弹框 -->
<GrowthOpenCourse ref="coursePlanRef" :type="4" /> <GrowthOpenCourse ref="coursePlanRef" :type="4" @refresh="getListTask" />
<a-modal <a-modal
v-model:visible="setSuperiorsVisible" v-model:visible="setSuperiorsVisible"
@@ -1172,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" +

View File

@@ -18,16 +18,16 @@ module.exports = defineConfig({
overlay: false,// 解决代码抛出异常 overlay: false,// 解决代码抛出异常
}, },
proxy: { proxy: {
"/professional": { // "/professional": {
target: 'http://192.168.68.211: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', // // target: 'http://192.168.86.195:32002',
changeOrigin: true,
},
// "/growth": {
// target: 'https:' + process.env.VUE_APP_BOE_API_URL,
// changeOrigin: true, // changeOrigin: true,
// }, // },
"/growth": {
target: 'https:' + process.env.VUE_APP_BOE_API_URL,
changeOrigin: true,
},
"/manageApi": { "/manageApi": {
target: 'https:' + process.env.VUE_APP_PROXY_URL, target: 'https:' + process.env.VUE_APP_PROXY_URL,
changeOrigin: true, //表示是否改变原域名 changeOrigin: true, //表示是否改变原域名