Merge branch 'compulsory_professional_skills' into master_1202

This commit is contained in:
joshen
2025-03-01 01:05:49 +08:00
9 changed files with 175 additions and 170 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" },
@@ -54,7 +54,7 @@ http.interceptors.response.use(
const { const {
data: { code, msg, show }, data: { code, msg, show },
} = response; } = response;
if (code === 0 || code === 200) { if (code === 0 || code === 200 || response?.data?.status == 200) {
return response; return response;
} else if (code === 1000) { } else if (code === 1000) {
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) 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)

View File

@@ -87,7 +87,7 @@ export const taskCompletionRate = (growthId) => http.get('/professional/manageme
export const getStudyStatisticsList = (data) => http.post('/professional/statics/getStudyStatisticsList', data) 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/grow/pageList', obj)
// 是否按顺序学习 // 是否按顺序学习

View File

@@ -32,4 +32,4 @@ export const boeuCasePlatePageList = (obj) => http.post('/boeu/case/pageList', o
// 专业力列表 // 专业力列表
export const boeuGrowthPlatePageList = (obj) => http.post('/boeu/growth/pageList', obj) export const boeuGrowthPlatePageList = (obj) => http.post('/boeu/grow/pageList', obj)

View File

@@ -668,7 +668,7 @@
<div class="img"></div> <div class="img"></div>
</template> </template>
<template #title>版块详细数据</template> <template #title>版块详细数据</template>
<!-- <a-menu-item key="sub17-2-8" v-if="checkMenu('growthpathmap')"> <a-menu-item key="sub17-2-8" v-if="checkMenu('growthpathmap')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub17-2-8' ? true : false, circleActive: selectedKeys[0] === 'sub17-2-8' ? true : false,
@@ -676,7 +676,7 @@
}" }"
></span> ></span>
<router-link to="/growthpathmap">专业力必修</router-link> <router-link to="/growthpathmap">专业力必修</router-link>
</a-menu-item> --> </a-menu-item>
<a-menu-item key="sub17-2-1" v-if="checkMenu('learningpathmap')"> <a-menu-item key="sub17-2-1" v-if="checkMenu('learningpathmap')">
<span <span
:class="{ :class="{

View File

@@ -363,14 +363,14 @@ export default {
width: 120, width: 120,
align: "center", align: "center",
}, },
// { {
// title: "专业力学习", title: "专业力学习",
// dataIndex: "growthStudy", dataIndex: "growthStudy",
// ellipsis: true, ellipsis: true,
// key: "growthStudy", key: "growthStudy",
// width: 120, width: 120,
// align: "center", align: "center",
// }, },
{ {
title: "学习时长", title: "学习时长",
dataIndex: "learningDuration", dataIndex: "learningDuration",

View File

@@ -68,7 +68,7 @@
<div class="echartsTwo"> <div class="echartsTwo">
<div class="title"> <div class="title">
<div class="left">学习情况</div> <div class="left">学习情况</div>
<div class="right" @click="exportTwoData" v-show="towParmasn.type != 2"> <div class="right" @click="exportTwoData" v-show="towParmasn.type != 2 && towParmasn.type != 7">
<img src="../../assets/images/coursewareManage/export1.png" alt="" /> <img src="../../assets/images/coursewareManage/export1.png" alt="" />
<span>导出学习情况</span> <span>导出学习情况</span>
</div> </div>
@@ -106,10 +106,10 @@
label: '学习路径图', label: '学习路径图',
value: 6, value: 6,
}, },
// { {
// label: '专业力必修', label: '专业力必修',
// value: 7, value: 7,
// }, },
]" ]"
></a-select> ></a-select>
</div> </div>

View File

@@ -8,7 +8,7 @@
<a-input <a-input
v-model:value="stdPositionDesr" v-model:value="stdPositionDesr"
:disabled="editId" :disabled="editId"
style=" height: 40px; border-radius: 8px" style="height: 40px; border-radius: 8px"
allowClear allowClear
placeholder="填写标准岗位" placeholder="填写标准岗位"
/> />
@@ -17,7 +17,7 @@
<a-input <a-input
v-model:value="qualsLevelDesr" v-model:value="qualsLevelDesr"
:disabled="editId" :disabled="editId"
style=" height: 40px; border-radius: 8px" style="height: 40px; border-radius: 8px"
allowClear allowClear
placeholder="填写任职资格等级" placeholder="填写任职资格等级"
/> />
@@ -392,7 +392,7 @@ export default {
{ text: "课程", num: res.data.result?.courseTotal }, { text: "课程", num: res.data.result?.courseTotal },
{ text: "考试", num: res.data.result?.examTotal }, { text: "考试", num: res.data.result?.examTotal },
{ text: "案例", num: res.data.result?.caseTotal }, { text: "案例", num: res.data.result?.caseTotal },
// { text: "专业力", num: res.data.result?.growthTotal }, { text: "专业力", num: res.data.result?.growthTotal },
]; ];
tabData.value = list; tabData.value = list;
}); });
@@ -460,7 +460,19 @@ export default {
if (!state.selectedRowKeys?.length) { if (!state.selectedRowKeys?.length) {
return message.warning("请至少选择一条数据进行导出"); return message.warning("请至少选择一条数据进行导出");
} else { } else {
if (state.currentTab === 5) { if (state.currentTab === 6) {
axios({
method: "get",
url: "/report/boeu/grow/export",
params: { ids: `${state.selectedRowKeys}` },
responseType: "blob",
headers: {
token: Cookies.get("token"),
},
}).then((res) => {
downLoad(res.data, "专业力必修.xlsx");
});
} else if (state.currentTab === 5) {
axios({ axios({
method: "get", method: "get",
url: "/report/boeu/case/export", url: "/report/boeu/case/export",
@@ -537,7 +549,32 @@ export default {
}; };
// 全部导出接口 // 全部导出接口
const exportClickAll = async () => { const exportClickAll = async () => {
if (state.currentTab === 5) { if (state.currentTab === 6) {
axios({
method: "post",
url: "/report/boeu/grow/exportAll",
data: {
startTime:
typeof state.publishTime[0] === "undefined"
? null
: state.publishTime[0] + " 00:00:01",
endTime:
typeof state.publishTime[1] === "undefined"
? null
: state.publishTime[1] + " 23:59:59",
qualsLevelDesr: state.qualsLevelDesr,
stdPositionDesr: state.stdPositionDesr,
page: state.pageNo,
size: state.pageSize,
},
responseType: "blob",
headers: {
token: Cookies.get("token"),
},
}).then((res) => {
downLoad(res.data, "专业力必修.xlsx");
});
} else if (state.currentTab === 5) {
axios({ axios({
method: "post", method: "post",
url: "/report/boeu/case/exportAll", url: "/report/boeu/case/exportAll",
@@ -1009,7 +1046,7 @@ export default {
{ text: "课程", num: "11" }, { text: "课程", num: "11" },
{ text: "考试", num: "10" }, { text: "考试", num: "10" },
{ text: "案例", num: "10" }, { text: "案例", num: "10" },
// { text: "专业力必修", num: "10" }, { text: "专业力必修", num: "10" },
]); ]);
const tabClick = (index) => { const tabClick = (index) => {
state.selectedRowKeys = []; state.selectedRowKeys = [];
@@ -1670,15 +1707,15 @@ export default {
]; ];
} else if (index === 6) { } else if (index === 6) {
columns.value = [ columns.value = [
{ // {
title: "专业力必修", // title: "专业力必修",
dataIndex: "growthName", // dataIndex: "growthName",
key: "growthName", // key: "growthName",
width: 200, // width: 200,
ellipsis: true, // ellipsis: true,
align: "center", // align: "center",
fixed: "left", // fixed: "left",
}, // },
{ {
title: "标准岗位名称", title: "标准岗位名称",
dataIndex: "stdPositionDesr", dataIndex: "stdPositionDesr",

View File

@@ -48,7 +48,7 @@
</div> </div>
</div> </div>
<!-- 以下为导出按钮 --> <!-- 以下为导出按钮 -->
<!-- <div class="btnzs"> <div class="btnzs">
<div class="btnz btnz3" @click="exportAllbtnz"> <div class="btnz btnz3" @click="exportAllbtnz">
<div> <div>
<img src="../../assets/images/coursewareManage/export1.png" alt="" /> <img src="../../assets/images/coursewareManage/export1.png" alt="" />
@@ -61,11 +61,11 @@
</div> </div>
<div class="btnzText">导出详细信息</div> <div class="btnzText">导出详细信息</div>
</div> </div>
</div> --> </div>
<!-- 以下为table表格 --> <!-- 以下为table表格 -->
<div class="tableBox"> <div class="tableBox">
<a-table <a-table
rowKey="boeRouterInfoId" rowKey="id"
:columns="columns" :columns="columns"
:data-source="tableData" :data-source="tableData"
:loading="tableLoading" :loading="tableLoading"
@@ -130,9 +130,7 @@ import { ref, toRefs, reactive, onMounted } from "vue";
import downLoad from "../../utils/downLoad"; import downLoad from "../../utils/downLoad";
import Cookies from "vue-cookies"; import Cookies from "vue-cookies";
import axios from "axios"; import axios from "axios";
import { import { listData } from "@/api/growthpath";
listData,
} from "@/api/growthpath";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useStore } from "vuex"; import { useStore } from "vuex";
export default { export default {
@@ -202,7 +200,7 @@ export default {
ellipsis: true, ellipsis: true,
key: "band", key: "band",
align: "center", align: "center",
width: 90, width: 110,
}, },
{ {
title: "总人数", title: "总人数",
@@ -244,7 +242,7 @@ export default {
align: "center", align: "center",
width: 90, width: 90,
customRender: ({ record: { comLearnNum, learnNum } }) => customRender: ({ record: { comLearnNum, learnNum } }) =>
`${((comLearnNum / learnNum) * 100).toFixed()}%`, learnNum && `${((comLearnNum / learnNum) * 100).toFixed()}%`,
}, },
{ {
title: "发布时间", title: "发布时间",
@@ -252,7 +250,7 @@ export default {
ellipsis: true, ellipsis: true,
key: "publishTime", key: "publishTime",
align: "center", align: "center",
width: 120, width: 140,
}, },
{ {
title: "发布状态", title: "发布状态",
@@ -270,38 +268,38 @@ export default {
ellipsis: true, ellipsis: true,
key: "createTime", key: "createTime",
align: "center", align: "center",
width: 120, width: 140,
},
{
title: "操作",
dataIndex: "operation",
key: "operation",
width: 200,
align: "center",
fixed: "right",
customRender: ({ record }) => {
return (
<div>
<a
key="export"
onClick={() => {
oneCurrentExport(record);
}}
>
导出学习记录
</a>
</div>
);
},
}, },
// {
// title: "操作",
// dataIndex: "operation",
// key: "operation",
// width: 200,
// align: "center",
// fixed: "right",
// customRender: (record) => {
// return (
// <div>
// <a
// key="export"
// onClick={() => {
// oneCurrentExport(record);
// }}
// >
// 导出学习记录
// </a>
// </div>
// );
// },
// },
]); ]);
// 导出当前数据 // 导出当前数据
const oneCurrentExport = (record) => { const oneCurrentExport = (record) => {
axios({ axios({
method: "post", method: "get",
url: "/report/boeu/router/exportCurrentRecord", url: "/report/boeu/grow/exportGrowth",
data: { routerId: `${record.record.boeRouterInfoId}` }, params: { ids: `${record.id}` },
responseType: "blob", responseType: "blob",
headers: { headers: {
token: Cookies.get("token"), token: Cookies.get("token"),
@@ -357,11 +355,30 @@ export default {
}; };
//导出详细信息 //导出详细信息
const exportbtnz = async () => { const exportbtnz = async () => {
if (state.selectedRowKeys?.length > 0) { if (!state.selectedRowKeys?.length) {
message.warning("请选择要导出的数据");
return;
}
const params = {
pageNum: state.pageNum,
pageSize: state.pageSize,
stdPositionDesr: state.stdPositionDesr,
qualsLevelDesr: state.qualsLevelDesr,
isPublished: state.isPublished,
ids: state.selectedRowKeys.toString(),
startTime:
typeof state.publishTime[0] === "undefined"
? null
: state.publishTime[0] + " 00:00:01",
endTime:
typeof state.publishTime[1] == "undefined"
? null
: state.publishTime[1] + " 23:59:59",
};
axios({ axios({
method: "post", method: "get",
url: "/report/boeu/router/exportCurrentRecord", url: "/report/boeu/grow/exportGrowth",
data: { routerIdList: state.selectedRowKeys }, params,
responseType: "blob", responseType: "blob",
headers: { headers: {
token: Cookies.get("token"), token: Cookies.get("token"),
@@ -372,62 +389,16 @@ export default {
(err) => { (err) => {
message.error(err); message.error(err);
}; };
} else {
const params = {
createName: state.createName,
// publishTime: state.publishTime,
startTime:
typeof state.publishTime[0] === "undefined"
? null
: state.publishTime[0] + " 00:00:01",
endTime:
typeof state.publishTime[1] == "undefined"
? null
: state.publishTime[1] + " 23:59:59",
routerName: state.routerName,
orgId: state.orgId ? state.orgId[state.orgId.length - 1] : null,
};
axios({
method: "post",
url: "/report/boeu/router/exportCurrentRecord",
data: params,
responseType: "blob",
headers: {
token: Cookies.get("token"),
},
}).then((res) => {
if (res.data.status && res.data.status == 600) {
message.error(res.data.status);
} else {
downLoad(res.data, "专业力必修详细信息.xlsx");
}
}),
(err) => {
message.error(err);
};
}
}; };
// 导出列表信息 // 导出列表信息
const exportAllbtnz = async () => { const exportAllbtnz = async () => {
if (state.selectedRowKeys?.length > 0) {
axios({
method: "post",
url: "/report/boeu/router/exportList",
data: { routerIdList: state.selectedRowKeys },
responseType: "blob",
headers: {
token: Cookies.get("token"),
},
}).then((res) => {
downLoad(res.data, "专业力必修列表信息.xlsx");
}),
(err) => {
message.error(err);
};
} else {
const params = { const params = {
createName: state.createName, pageNum: state.pageNum,
// publishTime: state.publishTime, pageSize: state.pageSize,
stdPositionDesr: state.stdPositionDesr,
qualsLevelDesr: state.qualsLevelDesr,
isPublished: state.isPublished,
ids: state.selectedRowKeys.toString(),
startTime: startTime:
typeof state.publishTime[0] === "undefined" typeof state.publishTime[0] === "undefined"
? null ? null
@@ -436,12 +407,10 @@ export default {
typeof state.publishTime[1] == "undefined" typeof state.publishTime[1] == "undefined"
? null ? null
: state.publishTime[1] + " 23:59:59", : state.publishTime[1] + " 23:59:59",
routerName: state.routerName,
orgId: state.orgId ? state.orgId[state.orgId.length - 1] : null,
}; };
axios({ axios({
method: "post", method: "post",
url: "/report/boeu/router/exportList", url: "/report/boeu/grow/exportGrowthAll",
data: params, data: params,
responseType: "blob", responseType: "blob",
headers: { headers: {
@@ -453,7 +422,6 @@ export default {
(err) => { (err) => {
message.error(err); message.error(err);
}; };
}
}; };
onMounted(() => { onMounted(() => {
state.tableLoading = true; state.tableLoading = true;

View File

@@ -18,16 +18,16 @@ module.exports = defineConfig({
overlay: false,// 解决代码抛出异常 overlay: false,// 解决代码抛出异常
}, },
proxy: { proxy: {
"/professional": { // "/professional": {
target: 'http://192.168.31.211:32002', // target: 'http://192.168.31.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, //表示是否改变原域名