This commit is contained in:
Pengxiansen
2025-02-18 18:00:01 +08:00
parent b58772e88d
commit 0d76654361
8 changed files with 447 additions and 305 deletions

View File

@@ -85,3 +85,10 @@ export const getStudyStatisticsList = (data) => http.post('/professional/statics
// 专业力列表
export const boeuGrowthPlatePageList = (obj) => http.post('/boeu/growth/pageList', obj)
// 是否按顺序学习
export const openOrCloseSortSwitch = (growthId) => http.get('/professional/task/openOrCloseSortSwitch/' + growthId,)
// 新建专业力必修
export const saveGrowth = (data) => http.post('/professional/compulsory/saveGrowth', data)

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@@ -1,10 +1,5 @@
<template>
<a-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
:mode="multiple"
v-model:value="selectedValue"
:style="{ width: width || '' }"
@@ -15,6 +10,7 @@
@focus="focus"
allowClear
showArrow
:filter-option="filterOption"
showSearch
:disabled="disabled"
></a-select>
@@ -84,7 +80,10 @@ export default {
emit("update:value", newVal);
emit("change");
}
async function handleSearch(val) {
const filterOption = (input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
};
function handleSearch(val) {
console.log(val, "val");
}
function focus() {
@@ -94,6 +93,7 @@ export default {
selectedValue,
options,
onSelectChange,
filterOption,
handleSearch,
focus,
};

View File

@@ -1,10 +1,5 @@
<template>
<a-select
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
:mode="multiple"
v-model:value="selectedValue"
:style="{ width: width || '' }"
@@ -13,6 +8,7 @@
@change="onSelectChange"
allowClear
showArrow
:filter-option="filterOption"
showSearch
></a-select>
</template>
@@ -67,9 +63,14 @@ export default {
emit("update:value", newVal);
emit("update:postList", postList);
}
const filterOption = (input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
};
return {
selectedValue,
options,
filterOption,
onSelectChange,
};
},

View File

@@ -16,6 +16,18 @@
allowClear
></a-select>
</div>
<div class="select">
<a-select
v-model:value="dataSourceValue"
style="width: 181px; height: 40px"
placeholder="请选择数据来源"
:options="[
{ value: '1', label: 'AMED' },
{ value: '2', label: '手动添加' },
]"
allowClear
></a-select>
</div>
<div class="grow_btn_left">
<div class="btn1" @click="searchList">
<div class="search"></div>
@@ -26,9 +38,18 @@
<div class="btnText">重置</div>
</div>
</div>
<!-- <div class="growth_switch">
<img src="../../assets/images/growthpath/switch.png" alt="">
</div> -->
</div>
<div class="btns">
<!-- <router-link to="/projectadd">
<div class="btn btn3">
<div class="search"></div>
<div class="btnText">创建路径</div>
</div>
</router-link> -->
<div class="btn btn3" @click="handleOut">
<div class="search"></div>
<div class="btnText">创建必修</div>
</div>
</div>
<div class="grow_con">
<div class="grow_list">
@@ -49,7 +70,7 @@
>发布</a-button
>
<a-button
v-if="checkGrowthPer(record.permissions) && !record.isPublished"
v-if="checkGrowthPer(record.permissions)"
type="link"
class="table_btn"
@click="editPath(record)"
@@ -58,7 +79,7 @@
<a-button type="link" class="table_btn" @click="manage(record)"
>管理</a-button
>
<DropDown v-if="record?.permissions?.includes('17')" value="授权">
<!-- <DropDown v-if="record?.permissions?.includes('17')" value="授权">
<TableModelStudent :id="record.id" title="转移归属权" :type="17"
>归属权</TableModelStudent
>
@@ -68,7 +89,7 @@
<TableModelStudent :id="record.id" title="添加管理权" :type="16"
>管理权</TableModelStudent
>
</DropDown>
</DropDown> -->
<a-dropdown
:getPopupContainer="(triggerNode) => triggerNode.parentNode"
:trigger="['click']"
@@ -150,8 +171,13 @@
<span>标准岗位</span>
</div>
<div class="bg_body_input">
<PostSelectNew v-model:value="statusPosts" width="384px" disabled>
</PostSelectNew>
<a-input
v-model:value="statusPosts"
:disabled="editId"
style="width: 384px; height: 40px"
allowClear
placeholder="填写标准岗位"
/>
</div>
</div>
<div class="bg_body_bt" style="align-items: flex-start">
@@ -167,9 +193,10 @@
<div class="bg_body_input">
<a-input
v-model:value="statusOffices"
disabled
:disabled="editId"
style="width: 384px; height: 40px"
allowClear
placeholder="填写任职资格等级"
/>
</div>
</div>
@@ -186,7 +213,7 @@
<div class="bg_body_input">
<a-input
v-model:value="band"
disabled
:disabled="editId"
style="width: 384px; height: 40px"
placeholder="填写Band职级"
allowClear
@@ -209,6 +236,52 @@
</div>
</div>
<div class="bg_body_bt" style="align-items: flex-start">
<div class="bg_body_bttext" style="margin-top: 11px">
<div class="bg_body_btimg">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span>路径图背景</span>
</div>
<div class="bg_body_input">
<div style="display: flex">
<div
@click="template = 1"
class="learnBgItem"
:style="{
border:
template === 1
? '2px solid rgba(78, 166, 255, 1)'
: '1px solid #ccc',
}"
>
<img
class="im"
src="../../assets/images/growthpath/path1.png"
/>
</div>
<div
@click="template = 2"
class="learnBgItem"
:style="{
border:
template === 2
? '2px solid rgba(78, 166, 255, 1)'
: '1px solid #ccc',
}"
>
<img
class="im"
src="../../assets/images/growthpath/path2.png"
/>
</div>
</div>
</div>
</div>
<!-- <div class="bg_body_bt" style="align-items: flex-start">
<div class="bg_body_bttext">
<div class="bg_body_btimg">
<img
@@ -231,7 +304,7 @@
</div>
</a-radio-group>
</div>
</div>
</div> -->
<div class="bg_body_bt" style="align-items: flex-start">
<div class="bg_body_bttext">
<span>说明</span>
@@ -321,6 +394,7 @@ import {
published,
withdrawal,
updatePostInfomation,
saveGrowth,
} from "@/api/growthpath";
export default {
name: "growthpath",
@@ -340,7 +414,24 @@ export default {
// 掉接口
listDatas();
});
// 动态引入图片
const getAssetsFile = (url) => {
return new URL(
`../../assets/image/growthpath/${url}.png`,
import.meta.url
).href;
};
// 路径图背景选项
const imgData = [
{
url: getAssetsFile("path1"),
code: 1,
},
{
url: "../../assets/image/growthpath/addrenwu.png",
code: 2,
},
];
const store = useStore();
const router = useRouter();
const state = reactive({
@@ -355,6 +446,7 @@ export default {
pathWays: "",
statusPost: null,
matchRules: "1",
template: 1,
matchRulesVisible: false,
statusPostMaps: [],
statusPosts: null,
@@ -364,8 +456,9 @@ export default {
statusOffice: null,
statusRanks: [],
rankList: [],
bandLists: [],
band: "",
statusValue: null,
dataSourceValue: null,
loadingList: false,
total: 10,
pageNum: 1,
@@ -373,6 +466,9 @@ export default {
dataList: [],
keepLearner: false,
});
const handleOut = () => {
state.bg_check = true;
};
const releaseLearnPath = (item) => {
dialog({
content: "是否发布该条数据?",
@@ -427,13 +523,24 @@ export default {
return record.isPublished ? "已发布" : "未发布";
},
},
// {
// title: "归属人",
// dataIndex: "createName",
// key: "createName",
// width: 60,
// align: "center",
// ellipsis: true,
// },
{
title: "归属人",
dataIndex: "createName",
key: "createName",
width: 60,
title: "数据来源",
dataIndex: "dataSource",
key: "dataSource",
width: 100,
align: "center",
ellipsis: true,
customRender: ({ record }) => {
return record.dataSource == 1 ? "AMED" : "手动添加";
},
},
{
title: "操作",
@@ -455,6 +562,7 @@ export default {
isPublished: state.statusValue,
bandIdList: state.statusRank, //职级
qualsLevelCode: state.statusOffice,
dataSource: state.dataSourceValue,
};
console.log(store);
// 判断当前用户是否是专业力必修角色管理员,如果不是查询列表时需传入员工工号
@@ -482,6 +590,7 @@ export default {
state.statusPost = null;
state.statusRank = [];
state.statusOffice = null;
state.dataSourceValue = null;
state.pageNum = 1;
listDatas();
};
@@ -500,6 +609,7 @@ export default {
state.elePublishedNum = record.elePublishedNum;
state.pathWays = record.description;
state.band = record.band;
state.template = record.template;
state.matchRules = record.matchRules || "1";
state.bg_check = true;
};
@@ -510,6 +620,16 @@ export default {
};
// 确定
const confirm = () => {
if (!state.statusPosts) {
return message.error("请输入标准岗位");
}
if ( !state.band) {
return message.error("请输入Band职级");
}
if ( !state.statusOffices) {
return message.error("请输入任职资格等级");
}
if (state.courseNum !== 0 && !state.courseNum) {
return message.error("请输入完成选修数量");
}
@@ -519,29 +639,42 @@ export default {
return;
}
const params = {
stdPosition: state.statusPosts,
stdPositionDesr: state.statusPosts,
qualsLevelDesr: state.statusOffices,
electivesCompletedNum: state.courseNum,
template: state.template,
description: state.pathWays,
matchRules: state.matchRules,
id: state.editId ? state.editId : null,
keepLearner: state.keepLearner,
template: state.template,
band: state.band,
};
updatePostInfomation(params)
.then((res) => {
if (res.data.code == 200) {
if (state.matchRules == 1) {
message.warning("自动匹配学员为异步添加,请稍后手动刷新学员");
if (state.editId) {
updatePostInfomation(params)
.then((res) => {
if (res.data.code == 200) {
message.success("保存成功");
of_exit();
listDatas();
}
message.success("保存成功");
state.bg_check = false;
listDatas();
}
})
.catch((err) => {
message.error(err.data.msg);
});
// of_exit()
})
.catch((err) => {
message.error(err.data.msg);
});
} else {
saveGrowth(params)
.then((res) => {
if (res.data.code == 200) {
message.success("保存成功");
of_exit();
listDatas();
}
})
.catch((err) => {
message.error(err.data.msg);
});
}
};
const of_exit = () => {
state.statusPosts = null;
@@ -603,8 +736,10 @@ export default {
confirm,
editPath,
manage,
imgData,
updateList,
withdraw,
handleOut,
releaseLearnPath,
UpdateRecordRef,
matchRulesChange,
@@ -628,6 +763,7 @@ export default {
.growthpath {
width: 100%;
.filterItems {
display: flex;
flex-wrap: wrap;
@@ -693,6 +829,51 @@ export default {
margin-bottom: 20px;
}
}
.btns {
display: flex;
padding-left: 24px;
padding-bottom: 10px;
// flex-wrap: wrap;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
background: #4ea6ff;
border-radius: 8px;
//border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
}
.btn3 {
margin-right: 0px;
.search {
width: 17px;
height: 18px;
background-image: url("../../assets/images/courseManage/add0.png");
}
}
.btn3:active {
background: #0982ff;
}
}
.grow_list {
margin-left: 24px;
.grow_btn {
@@ -726,48 +907,6 @@ export default {
line-height: 31px;
}
}
.grow_btn_right {
display: flex;
margin-right: 61px;
.btn1 {
padding: 0px 26px 0px 26px;
height: 38px;
background: #4ea6ff;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 17px;
height: 18px;
margin-right: 6px;
background-image: url("../../assets/images/courseManage/add0.png");
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
}
.btnns2 {
width: 130px;
height: 40px;
background: #ffffff;
border-radius: 8px;
border: 1px solid #65a4f8;
margin-left: 25px;
box-sizing: border-box;
color: #65a4f8;
text-align: center;
cursor: pointer;
line-height: 40px;
}
}
}
.grow_table {
margin: 0 24px 16px 0;
@@ -852,13 +991,10 @@ export default {
background-size: 100% 100%;
}
}
.text_color {
color: #d9d9d9;
}
.bg_body {
width: 80%;
margin: 3px auto;
.bg_body_bt {
display: flex;
align-items: center;
@@ -878,118 +1014,23 @@ export default {
background-size: 100% 100%;
}
}
.mbl_items12 {
width: 333px;
margin-left: 128px;
.item_text {
width: 300px;
white-space: nowrap; /* 不换行 */
overflow: hidden; /* 超出部分隐藏 */
text-overflow: ellipsis; /* 使用省略号表示被隐藏的部分 */
}
.i12_box1 {
display: flex;
align-items: center;
padding: 10px 0px 17px 21px;
border: 1px solid #eff4fc;
border-radius: 8px;
margin-bottom: 10px;
.file_img {
width: 27px;
height: 32px;
background-image: url(@/assets/images/coursewareManage/imgs.png);
margin-right: 22px;
img {
width: 100%;
height: 100%;
}
}
.file_detail {
width: 250px;
margin-right: 21px;
.file_updata {
display: flex;
align-items: center;
.updatabox {
position: relative;
width: 230px;
height: 5px;
background-color: rgba(192, 192, 192, 0.25);
border-radius: 3px;
.updatacolor {
position: absolute;
left: 0;
width: 100%;
height: 5px;
background-color: #57c887;
border-radius: 3px;
}
.updatacolor2 {
position: absolute;
left: 0;
width: 80%;
height: 5px;
background-color: #ff7474;
border-radius: 3px;
}
.updatacolor3 {
position: absolute;
left: 0;
width: 60%;
height: 5px;
background-color: #4ea6ff;
border-radius: 3px;
}
.updataxq1 {
margin-top: 7px;
}
.updataxq {
position: absolute;
right: 2px;
top: -37px;
color: #57c887;
}
.updataxq2 {
position: absolute;
right: 2px;
top: -35px;
color: #ff7474;
}
.updataxq3 {
position: absolute;
right: 2px;
top: -30px;
color: #4ea6ff;
}
}
}
}
.file_operation {
display: flex;
.fobox {
margin-right: 5px;
cursor: pointer;
}
}
}
}
}
.bg_body_input {
flex: 1;
position: relative;
.learnBgItem {
border-radius: 8px;
width: 136px;
height: 106px;
background-size: 100%;
background-repeat: no-repeat;
margin-bottom: 20px;
margin-right: 6px;
.im {
width: 100%;
height: 100%;
}
}
.ant-upload-picture-card-wrapper {
width: 200px;
margin-right: 18px;
@@ -1069,11 +1110,6 @@ export default {
}
}
.btn5 {
border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff;
}
.btn6 {
background-color: #4ea6ff;
color: #ffffff;
@@ -1085,83 +1121,6 @@ export default {
border: 1px solid #387df7;
color: #387df7;
}
.btndesign {
background-color: #eff4fc;
color: #ffffff;
}
}
}
.headers {
margin-left: 38px;
margin-right: 38px;
margin-top: 30px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.button_btn {
display: flex;
}
.headers_item {
margin-right: 20px;
margin-bottom: 20px;
.headers_item_text {
margin-right: 15px;
}
.headers_item_btn {
padding: 0px 26px 0px 26px;
height: 38px;
background: #4ea6ff;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
.search {
width: 15px;
height: 17px;
background-image: url("../../assets/images/courseManage/search0.png");
}
}
.btnns2 {
.search {
width: 16px;
height: 18px;
background-image: url("../../assets/images/courseManage/reset0.png");
}
}
::v-deep .ant-select {
border-radius: 5px;
width: 100%;
min-height: 40px;
.ant-select-selector {
border-radius: 8px;
width: 100%;
min-height: 40px;
}
.ant-select-selection-placeholder {
line-height: 40px;
}
.ant-select-selection-item {
line-height: 40px;
}
}
}
}
}

View File

@@ -194,7 +194,10 @@
<!-- 路径管理 -->
<div style="flex: 1">
<div class="onerow" style="margin: 0 0 0 26px">
<div class="taskmain">任务大纲</div>
<div style="display: flex; justify-content: center">
<div class="taskmain">任务大纲</div>
</div>
<router-link
:to="{
path: '/editingtasks',
@@ -210,15 +213,32 @@
<span class="editextb">编辑任务</span>
</router-link>
</div>
<div class="tabs" style="margin-left: 26px">
<a-tabs
v-model:activeKey="courseType"
size="large"
<div class="tabs">
<a-radio-group
button-style="solid"
v-model:value="courseType"
@change="getListTask"
>
<a-tab-pane key="1" tab="必修"></a-tab-pane>
<a-tab-pane key="2" tab="选修"></a-tab-pane>
</a-tabs>
<a-radio-button value="1">必修</a-radio-button>
<a-radio-button value="2">选修</a-radio-button>
</a-radio-group>
<div class="switch">
<a-switch
@change="sortSwitchChange"
v-model:checked="basicData.sortSwitch"
/>
<div style="margin-left: 5px">是否按顺序学习</div>
</div>
<!-- <div>
<a-tabs
v-model:activeKey="courseType"
size="large"
@change="getListTask"
>
<a-tab-pane key="1" tab="必修"></a-tab-pane>
<a-tab-pane key="2" tab="选修"></a-tab-pane>
</a-tabs>
</div> -->
</div>
<!-- 无数据显示快速创建 -->
<div v-if="!listTaskData.length" style="margin-top: 20px">
@@ -329,18 +349,12 @@
</a-tooltip>
</template>
<template v-else>
<a-dropdown :trigger="['click']">
<div>
<a-button type="link">
选择需解锁的上级任务
</a-button>
<DownOutlined
:style="{
color: '#1890ff',
}"
/>
</div>
<div @click="handlerSuperiors(element)">
<a-button type="link">
选择需解锁的上级任务
</a-button>
</div>
<!-- <a-dropdown :trigger="['click']">
<template #overlay>
<a-menu>
<a-menu-item
@@ -352,7 +366,7 @@
</a-menu-item>
</a-menu>
</template>
</a-dropdown>
</a-dropdown> -->
</template>
</div>
<div class="operations" v-if="checkGrowthPer(preId)">
@@ -489,7 +503,6 @@
</div>
</template>
</Draggable>
</div>
<!-- 有数据-->
<div style="display: flex; height: 20px"></div>
@@ -580,6 +593,79 @@
<!-- 二维码弹窗 -->
<!-- 面授课开课弹框 -->
<GrowthOpenCourse ref="coursePlanRef" :type="4" />
<a-modal
v-model:visible="setSuperiorsVisible"
:footer="null"
closable="false"
style="margin-top: 350px"
@cancel="setSuperiorsVisible = false"
>
<div
class="selectonlineface"
:style="{ display: setSuperiorsVisible ? 'block' : 'none' }"
>
<div class="bg_headers"></div>
<div class="bg_main">
<div class="bg_main_header">
<div class="bg_main_header_icon"></div>
<div>绑定上级任务</div>
<div
class="bg_main_header_close"
@click="setSuperiorsVisible = false"
></div>
</div>
<div class="bg_body">
<div
v-for="(item, key) in listTaskData"
style="
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
background: rgb(247, 251, 253);
height: 40px;
padding: 5px 10px 5px 5px;
border-radius: 5px;
"
>
<div
style="
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 220px;
"
>
{{ item.taskName }}
</div>
<div
@click="selectSuperiorTask(setSuperiorsActive, item)"
style="
width: 60px;
height: 30px;
text-align: center;
line-height: 30px;
background: #0078fc;
border-radius: 5px;
color: #fff;
cursor: pointer;
"
:style="{
filter:
setSuperiorsActive.id == item.id
? 'grayscale(1)'
: 'grayscale(0)',
}"
>
绑定
</div>
</div>
</div>
</div>
</div>
</a-modal>
</template>
<script lang="jsx">
import { ref, reactive, toRefs, onMounted, createVNode, watch } from "vue";
@@ -616,6 +702,7 @@ import {
toSortTask,
saveSuperiorTask,
delSuperiorTask,
openOrCloseSortSwitch,
taskInformation,
taskCompletionRate,
} from "@/api/growthpath";
@@ -650,6 +737,7 @@ export default {
commonData: null,
showTimeText: null,
onlineVisible: false,
setSuperiorsVisible: false,
total: 0,
pageSize: 99999,
pageNum: 1,
@@ -721,6 +809,13 @@ export default {
});
};
// 开启绑定上级任务的弹窗
const setSuperiorsActive = ref(null);
const handlerSuperiors = (element) => {
// 保存需要操作的数据
setSuperiorsActive.value = element;
state.setSuperiorsVisible = true;
};
const qrCodeItems = ref([]);
const visibleEwm = ref({});
const qrcodeVisible = async (item) => {
@@ -830,7 +925,12 @@ export default {
// 保存/删除上级任务
const selectSuperiorTask = (element, row) => {
console.log(element, row);
if (row) {
if (element.id === row.id) {
message.warning("不可绑定");
return;
}
// 保存需解锁的上级任务
saveSuperiorTask({
id: element.id,
@@ -838,6 +938,7 @@ export default {
}).then((res) => {
message.success("操作成功");
element.superiorTaskName = row.taskName;
state.setSuperiorsVisible = false;
});
} else {
// 删除需解锁的上级任务
@@ -1187,7 +1288,13 @@ export default {
const openCourse = (ele) => {
coursePlanRef.value.openDrawer(ele);
};
// 是否自动学习开关
const sortSwitchChange = () => {
openOrCloseSortSwitch(state.routerId).then((res) => {
message.success("操作成功");
getListTask()
});
};
return {
...toRefs(state),
stuRef,
@@ -1196,6 +1303,7 @@ export default {
changeTabs,
resize,
releaseLearnPath,
sortSwitchChange,
showStudent,
showTest,
showOnline,
@@ -1214,11 +1322,13 @@ export default {
handleMenuClickpg,
handleMenuClick,
qrcodeVisible,
handlerSuperiors,
showFS,
qrCodeItems,
visibleEwm,
qrCodeItemspg,
visibleEwmpg,
setSuperiorsActive,
};
},
};
@@ -1230,7 +1340,70 @@ export default {
display: block;
clear: both;
}
.tabs {
margin: 10px 63px 10px 26px;
display: flex;
align-items: center;
}
.switch {
display: flex;
align-items: center;
margin-left: 20px;
}
.selectonlineface {
z-index: 999;
width: 679px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
position: absolute;
left: 50%;
top: -100%;
transform: translate(-50%, -50%);
.bg_headers {
position: absolute;
width: 100%;
height: 40px;
background: linear-gradient(
180deg,
rgba(103, 64, 255, 0.2) 0%,
rgba(166, 168, 255, 0) 100%
);
}
.bg_main {
width: 100%;
position: relative;
.bg_main_header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.bg_main_header_icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/evaluation/uploads.png);
background-size: 100% 100%;
}
.bg_main_header_close {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
}
.bg_body {
width: 80%;
margin: 20px auto;
height: 600px;
overflow-y: auto;
}
}
}
.path-manage {
width: 100%;
height: 100%;
@@ -1295,6 +1468,7 @@ export default {
display: flex;
align-items: center;
margin-right: 12px;
cursor: pointer;
.img2 {
width: 42px;
@@ -1927,6 +2101,7 @@ export default {
padding: 10px;
width: 63px;
text-align: center;
cursor: pointer;
}
.operations_dropdown {
padding: 10px;

View File

@@ -19,8 +19,8 @@ module.exports = defineConfig({
},
proxy: {
// "/professional": {
// target: 'http://192.168.150.97:32002',
// // target: 'http://192.168.237.141:32002',
// target: 'http://192.168.143.97:32002',
// // target: 'http://192.168.50.195:32002',
// changeOrigin: true,
// },
"/growth": {