diff --git a/src/api/apis.js b/src/api/apis.js index 71f845db..daf7fafc 100644 --- a/src/api/apis.js +++ b/src/api/apis.js @@ -1,4 +1,6 @@ export const STUDENT_LIST = "/admin/student/getStudent"; +// 专业力必修项目内学员 +export const GROWTH_STUDENT_LIST = "/professional/allocation/getInternalLearners"; export const TASK_STUDENT_LIST = "/admin/student/getTaskStudent"; export const ONLINE_COURSE_PAGE = "/onlineClasses/queryOnlineList"; export const ASSESSMENT_PAGE = "/assessment/queryAssessmentDetailList post"; @@ -22,7 +24,7 @@ export const WORK_DETAIL = workId => `/work/queryWorkDetailById?workId=${workId} //考试 export const EXAM_DETAIL = examinationId => `/examination/queryExaminationDetailById?examinationId=${examinationId} post`; //评估 -export const ASSESSMENT_DETAIL = (assessmentId)=>`/assessment/queryAssessmentDetailById?assessmentId=${assessmentId} post`; +export const ASSESSMENT_DETAIL = (assessmentId) => `/assessment/queryAssessmentDetailById?assessmentId=${assessmentId} post`; export const USER_LIST_PAGE = "/admin/thirdApi/user/list"; //学员列表 没有分页数据 只能通过名称检索 速度较快 diff --git a/src/api/growthpath.js b/src/api/growthpath.js index 58c80026..c6abd278 100644 --- a/src/api/growthpath.js +++ b/src/api/growthpath.js @@ -1,5 +1,4 @@ import http from "./configGrowth"; -import https from './configPublic' //查询专业力必修列表 @@ -82,68 +81,3 @@ export const taskInformation = (growthId) => http.get('/professional/managementO export const taskCompletionRate = (growthId) => http.get('/professional/managementOverview/taskCompletionRate/' + growthId) - -//新增、编辑成长路径 -// export const addEdit = (obj) => http.post('/admin/grow/edit', obj) -//编辑获取路径信息 -export const getEditData = (obj) => http.get('/admin/grow/getEditData', { params: obj }) -//获取可添加职级信息 -export const getAllBandInfo = (obj) => http.get('/admin/thirdApi/getAllBandInfo', { params: obj }) -//获取可添加岗位信息 -export const getAllPosition = (obj) => http.get(`/admin/thirdApi/getAllPosition?positionName=${obj.positionName}&positionCode=${obj.positionCode}`) -//获取可添加组织信息 -export const getOrgList = (obj) => http.get('/admin/thirdApi/org/list', { params: obj }) -//添加在线、面授课 type:1为在线课,2为面授课,3为案例,4为作业,5为考试 -export const addOrEditTask = (obj) => http.post('/admin/grow/addOrEditTask', obj) -//添加案例、作业 type: 3:案例 4:考试 -// export const addTask = (obj) => http.post('/admin/grow/addTask', obj) -//概览 -export const getOverview = (obj) => http.get('/admin/grow/overview', { params: obj }) - -//发布、撤回、删除 -- 1发布 0撤回 -2删除 -export const handleGrowth = (obj) => http.post('/admin/grow/handle', obj) - -//复制路径信息 -export const getCopyData = (obj) => http.get('/admin/grow/getCopyData', { params: obj }) -//保存复制的路径信息 -export const copyCreate = (obj) => http.post('/admin/grow/copy', obj) - - -//移除编辑任务 -export const removeTask = (obj) => http.post(`/admin/grow/removeTask?growId=${obj.growId}&taskIdList=${obj.taskId}`) -//改变选修必修 -export const isRequiredTask = (obj) => http.post(`/admin/grow/isRequiredTask?taskId=${obj.taskId}`) - -//获取学员列表 -export const getGrowStudent = (obj) => http.get('/admin/student/getGrowStudent', { params: obj }) - -//获取考试管理列表 -export const queryExamManagementMessage = (obj) => http.post('/admin/exam/manage/queryExamManagementMessageOfGrow', obj) -//获取外部考试 -export const queryExternalExamManageDetail = (obj) => http.post('/admin/external/exam/manage/queryExternalExamManageDetail', obj) -//催促考试 -export const batchSendMessage = (obj) => http.post('/admin/taskmanage/batchSendMessage', obj) -//在线管理列表 -export const queryOnlineManagementDetail = (obj) => http.post('/admin/online/manage/queryOnlineManagementDetail', obj) -//获取导入的信息 -export const getImportStatus = (obj) => http.get('/admin/grow/getImportStatus', { params: obj }) -//保存成功的数据 -export const saveStudent = (obj) => http.post(`/admin/grow/saveStudent?redisKey=${obj.redisKey}&growId=${obj.growId}&isImportNotMatchStudent=${obj.isImportNotMatchStudent}`) -//保存考试 -export const saveGrowExamScoreToDatabase = (obj) => http.post(`/admin/grow/saveGrowExamScoreToDatabase?redisKey=${obj.redisKey}&growId=${obj.growId}`) -//发布弹窗信息 -export const getPublishInfo = (obj) => http.get('/admin/grow/getPublishInfo', { params: obj }) -//删除学员 -export const delGrowStudent = obj => http.post("/admin/student/delGrowStudent", obj); -//导入记录接口 -export const getRecordList = (obj) => http.post('/admin/grow/getRecordList', obj) -//在线课列表 -export const pagelist = (obj) => https.post('/systemapi/xboe/m/course/manage/pagelist', obj) -//获取导入方式 -export const getRecordTypes = () => http.get('/admin/grow/getRecordTypes') -//恢复学员 -export const recoverStudent = (obj) => http.post(`/admin/student/recoverStudent?studentId=${obj.studentId}&growId=${obj.growId}`) -//外部考试保存 -export const saveExternalScoreToDatabase = (obj) => http.post(`/admin/grow/saveExternalScoreToDatabase?redisKey=${obj.redisKey}`) -//获取可添加任职资格等级 -export const getQualificationLevel = (id) => http.get(`/admin/grow/getQualificationLevel?standPosition=${id}`) diff --git a/src/api/request.js b/src/api/request.js index 48acb184..194eb187 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -1,10 +1,11 @@ -import {isRef, reactive, ref, toRefs, unref, watch, watchEffect} from "vue"; -import {getCookieForName, setCookie, throttle} from "@/api/method"; +import { isRef, reactive, ref, toRefs, unref, watch, watchEffect } from "vue"; +import { getCookieForName, setCookie, throttle } from "@/api/method"; import JSONBigInt from "json-bigint"; import router from "@/router"; -import {message} from "ant-design-vue"; -import {REFRESH_TOKEN, VALIDATE_TOKEN} from "@/api/apis"; -import {REFRESH_TOKEN_API} from "@/api/ThirdApi"; +import { message } from "ant-design-vue"; +import { REFRESH_TOKEN, VALIDATE_TOKEN } from "@/api/apis"; +import { REFRESH_TOKEN_API } from "@/api/ThirdApi"; +import growthHttp from "./configGrowth"; const JSONBigIntStr = JSONBigInt({ storeAsString: true }); @@ -163,7 +164,7 @@ export function useNewRowsPageNoInit(_url, params) { state.data = r.data.list; state.total = r.data.total; state.loading = false; - }).catch((err)=>{ + }).catch((err) => { state.data = []; state.total = 0; state.loading = false; @@ -260,7 +261,7 @@ export function useRowsPage(_url, params, init = true) { * @param init * @param listing */ -export function useTotalPage(_url, params, init = true,listing = false) { +export function useTotalPage(_url, params, init = true, listing = false) { const state = reactive({ data: [], @@ -304,7 +305,7 @@ export function useTotalPage(_url, params, init = true,listing = false) { reset, }; } -export function usePage(_url, params, init = true,listing = false) { +export function usePage(_url, params, init = true, listing = false) { const state = reactive({ data: [], @@ -348,7 +349,7 @@ export function usePage(_url, params, init = true,listing = false) { reset, }; } - export function useThrottlePage(_url, params = {}, init = true) { +export function useThrottlePage(_url, params = {}, init = true) { const state = reactive({ data: [], @@ -371,7 +372,7 @@ export function usePage(_url, params, init = true,listing = false) { } return request(_url, params).then(r => { state.data = params.pageNo === 1 ? r.data.list : [...state.data, ...r.data.list]; - state.totalPage = r.data.total/10 || 1; + state.totalPage = r.data.total / 10 || 1; state.total = r.data.total; state.loading = false; }).catch(err => { @@ -386,6 +387,44 @@ export function usePage(_url, params, init = true,listing = false) { }; } +export function growthRequest(_url, params, init = true) { + + const state = reactive({ + data: [], + total: 1, + pageNo: 1, + pages: 1, + loading: false + }); + + function reset() { + state.data = []; + state.loading = false; + state.pageNo = 1 + state.pages = 1 + } + + function fetch() { + state.loading = true; + return growthHttp.get(unref(_url), { params: unref(params) }).then(r => { + state.data = r.data.data.records; + state.total = r.data.data.total; + state.pageNo = r.data.data.pageNum + state.pages = r.data.data.pageSize + state.loading = false; + }).catch((err) => { + state.data = []; + state.total = 0; + state.loading = false; + }) + } + + return { + ...toRefs(state), + fetch, + reset, + }; +} export function useRequest(_url, params, init = true) { @@ -504,15 +543,15 @@ export async function request(_url, params) { window.location.href = process.env.VUE_APP_LOGIN_URL + encodeURIComponent(window.location.protocol + process.env.VUE_APP_BOE_API_URL + process.env.VUE_APP_BASE + router.currentRoute.value.fullPath) localStorage.removeItem('refreshPage') return Promise.reject(res); - }else if(res.code=== 1001){ - return boeRequest(REFRESH_TOKEN_API).then((res)=>{ - if(res.code===0 || res.code === 200){ + } else if (res.code === 1001) { + return boeRequest(REFRESH_TOKEN_API).then((res) => { + if (res.code === 0 || res.code === 200) { return request(_url, params) } }) } //刷新token - res.show ? message.error(res.msg):res.msg=='无数据'?null:message.error('系统接口数据异常,请联系管理员'); + res.show ? message.error(res.msg) : res.msg == '无数据' ? null : message.error('系统接口数据异常,请联系管理员'); return Promise.reject(res); }); } \ No newline at end of file diff --git a/src/components/growthpath/CommonTest.vue b/src/components/growthpath/CommonTest.vue index 2979ed0e..8421c979 100644 --- a/src/components/growthpath/CommonTest.vue +++ b/src/components/growthpath/CommonTest.vue @@ -337,7 +337,7 @@ diff --git a/src/components/growthpath/GrowthCase.vue b/src/components/growthpath/GrowthCase.vue index 29f8a6f2..929b855a 100644 --- a/src/components/growthpath/GrowthCase.vue +++ b/src/components/growthpath/GrowthCase.vue @@ -92,6 +92,7 @@ import { CASE_PAGE } from "@/api/ThirdApi"; import { message } from "ant-design-vue"; import { useResetRef } from "@/utils/useCommon"; import { saveTask } from "@/api/growthpath"; +import dialog from "@/utils/dialog"; const props = defineProps({ type: Number, growId: String, @@ -166,26 +167,31 @@ const closeDrawer = () => { reset(); }; -async function confirm(row) { - // 新增 - if (!selectedRows?.value?.id) { - await saveTask({ - growthId: props.growId, - taskName: row.title, - taskType: props.type, - taskId: row.id, - type: props.activeKey, - }); - message.success("添加成功"); - } else { - // 编辑 - selectedRows.value.taskName = row.title; - selectedRows.value.taskId = row.id; - await saveTask(selectedRows.value); - message.success("编辑成功"); - } - closeDrawer(); - emit("refresh"); +function confirm(row) { + dialog({ + content: "确定选择该案例吗?", + ok: async () => { + // 新增 + if (!selectedRows?.value?.id) { + await saveTask({ + growthId: props.growId, + taskName: row.title, + taskType: props.type, + taskId: row.id, + type: props.activeKey, + }); + message.success("添加成功"); + } else { + // 编辑 + selectedRows.value.taskName = row.title; + selectedRows.value.taskId = row.id; + await saveTask(selectedRows.value); + message.success("编辑成功"); + } + closeDrawer(); + emit("refresh"); + }, + }); } let selectedRows = ref({}); function openDrawer(row) { diff --git a/src/components/growthpath/GrowthCommonImport.vue b/src/components/growthpath/GrowthCommonImport.vue new file mode 100644 index 00000000..b46815dc --- /dev/null +++ b/src/components/growthpath/GrowthCommonImport.vue @@ -0,0 +1,484 @@ + + + + + diff --git a/src/components/growthpath/GrowthCommonStudent.vue b/src/components/growthpath/GrowthCommonStudent.vue index 5260d79d..b6757a81 100644 --- a/src/components/growthpath/GrowthCommonStudent.vue +++ b/src/components/growthpath/GrowthCommonStudent.vue @@ -2,217 +2,267 @@ diff --git a/src/components/growthpath/GrowthExa.vue b/src/components/growthpath/GrowthExa.vue index 53c8705c..8d6524e2 100644 --- a/src/components/growthpath/GrowthExa.vue +++ b/src/components/growthpath/GrowthExa.vue @@ -511,9 +511,11 @@ const closeDrawer = () => { if (step.value > 1) { step.value = step.value - 1; } else { - formData.value.info = {}; visible.value = false; formData.reset(); + formData.value.info = { + examType: 1, + }; dateTime.value = []; } }; @@ -523,10 +525,9 @@ function timeChange(time, timeStr) { formData.value.info.examinationEndTime = timeStr[1]; } - // 系统考试 async function confirm() { - console.log(formData.value) + console.log(formData.value); if (formData.value.info.examinationName.trim() == "") { message.warning("请输入考试名称"); return; @@ -552,7 +553,7 @@ async function confirm() { // 任务名称 formData.value.taskName = formData.value.info.examinationName; // 任务时长 - formData.value.duration = formData.value.info.examinationDuration + formData.value.duration = formData.value.info.examinationDuration; saveTask(formData.value).then((res) => { if (res.data.code == 200) { if (formData.value.id) { @@ -566,7 +567,6 @@ async function confirm() { } closeDrawer(); }); - } function openDrawer(row) { diff --git a/src/components/growthpath/GrowthFaceStu.vue b/src/components/growthpath/GrowthFaceStu.vue new file mode 100644 index 00000000..4a700eb5 --- /dev/null +++ b/src/components/growthpath/GrowthFaceStu.vue @@ -0,0 +1,1272 @@ + + + + + diff --git a/src/components/growthpath/GrowthFaceTaskManage.vue b/src/components/growthpath/GrowthFaceTaskManage.vue new file mode 100644 index 00000000..903f2884 --- /dev/null +++ b/src/components/growthpath/GrowthFaceTaskManage.vue @@ -0,0 +1,1070 @@ + + + + diff --git a/src/components/growthpath/GrowthInvist.vue b/src/components/growthpath/GrowthInvist.vue index 1b7ce255..b7f684fd 100644 --- a/src/components/growthpath/GrowthInvist.vue +++ b/src/components/growthpath/GrowthInvist.vue @@ -86,6 +86,7 @@ import { saveTask } from "@/api/growthpath"; // import { useRouter } from "vue-router"; import { useRowsPage } from "@/api/request"; import { ASSESSMENT_PAGE } from "@/api/apis"; +import dialog from "@/utils/dialog"; const emit = defineEmits(["refresh"]); const props = defineProps({ type: Number, @@ -195,24 +196,29 @@ const closeDrawer = () => { }; async function confirm(record) { - if (!formData?.value?.id) { - await saveTask({ - growthId: props.growId, - taskName: record.assessmentName, - taskType: props.type, - taskId: record.id, - type: props.activeKey, - }); - message.success("添加成功"); - } else { - // 编辑 - formData.value.taskName = record.assessmentName; - formData.value.taskId = record.id; - await saveTask(formData.value); - message.success("编辑成功"); - } - closeDrawer(); - emit("refresh"); + dialog({ + content: "确定选择该评估吗?", + ok: async () => { + if (!formData?.value?.id) { + await saveTask({ + growthId: props.growId, + taskName: record.assessmentName, + taskType: props.type, + taskId: record.id, + type: props.activeKey, + }); + message.success("添加成功"); + } else { + // 编辑 + formData.value.taskName = record.assessmentName; + formData.value.taskId = record.id; + await saveTask(formData.value); + message.success("编辑成功"); + } + closeDrawer(); + emit("refresh"); + }, + }); } function openDrawer(row) { diff --git a/src/components/growthpath/GrowthOnlineManage.vue b/src/components/growthpath/GrowthOnlineManage.vue index 5e4dd76e..63c798ad 100644 --- a/src/components/growthpath/GrowthOnlineManage.vue +++ b/src/components/growthpath/GrowthOnlineManage.vue @@ -322,10 +322,8 @@ export default { className: "h", customRender: ({ record: { joinMethod } }) => ({ - 1: "自动匹配", - 2: "手动添加", - 3: "导入", - 4: "添加", + 1: "系统加入", + 2: "手动加入", }[joinMethod]), }, { diff --git a/src/components/growthpath/GrowthOpenCourse.vue b/src/components/growthpath/GrowthOpenCourse.vue index 8de0fa2a..e50ddabf 100644 --- a/src/components/growthpath/GrowthOpenCourse.vue +++ b/src/components/growthpath/GrowthOpenCourse.vue @@ -449,7 +449,7 @@
-
+
取消
- - -