mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-11 20:06:44 +08:00
Merge remote-tracking branch 'zshyx/250207-growth-prod-master_1202-zp' into dev0515
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
// import ajax from '@/utils/xajax.js'
|
// import ajax from '@/utils/xajax.js'
|
||||||
import ajax from '../ajax';
|
import ajax from '../ajax';
|
||||||
const baseURL = process.env.VUE_APP_GROWTH_API_PATH;
|
// const baseURL = process.env.VUE_APP_GROWTH_API_PATH;
|
||||||
// const baseURL = '/growth';
|
const baseURL = '/growth';
|
||||||
// 查询专业力必修列表
|
// 查询专业力必修列表
|
||||||
export const listData = (obj) => ajax.get(baseURL, '/professional/student/studentGrowthList', { params: obj })
|
export const listData = (obj) => ajax.get(baseURL, '/professional/student/studentGrowthList', { params: obj })
|
||||||
|
|||||||
BIN
src/assets/images/growth/growth-bg-icon.png
Normal file
BIN
src/assets/images/growth/growth-bg-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
BIN
src/assets/images/growth/growth-bg.png
Normal file
BIN
src/assets/images/growth/growth-bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@@ -6,7 +6,10 @@
|
|||||||
<!-- <div style="height: 20px;"></div> -->
|
<!-- <div style="height: 20px;"></div> -->
|
||||||
</div>
|
</div>
|
||||||
<!-- width: 990px; -->
|
<!-- width: 990px; -->
|
||||||
<div class="main-body" style="padding: 30px 20px;flex:1; background-color: #fff;margin-left: 20px;">
|
<div class="main-body" :style="{
|
||||||
|
backgroundColor: bgColor,
|
||||||
|
padding
|
||||||
|
}" style="flex:1; margin-left: 20px;">
|
||||||
<!-- <div style="margin-bottom: 10px;padding:10px; border-bottom: 1px solid #dbdbdb;"> -->
|
<!-- <div style="margin-bottom: 10px;padding:10px; border-bottom: 1px solid #dbdbdb;"> -->
|
||||||
<!-- <el-breadcrumb separator-class="el-icon-arrow-right">
|
<!-- <el-breadcrumb separator-class="el-icon-arrow-right">
|
||||||
<el-breadcrumb-item :to="{ path: '/uc/index' }"><i class="el-icon-arrow-right"></i>个人中心</el-breadcrumb-item>
|
<el-breadcrumb-item :to="{ path: '/uc/index' }"><i class="el-icon-arrow-right"></i>个人中心</el-breadcrumb-item>
|
||||||
@@ -15,7 +18,9 @@
|
|||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
<transition name="fade-transform" mode="out-in">
|
<transition name="fade-transform" mode="out-in">
|
||||||
<keep-alive :include="cachedViews">
|
<keep-alive :include="cachedViews">
|
||||||
<div style="background-color: #FFFFFF;min-height: 600px;padding-bottom: 50px;">
|
<div :style="{
|
||||||
|
backgroundColor: bgColor
|
||||||
|
}" style="min-height: 600px;padding-bottom: 50px;">
|
||||||
<router-view :key="key" />
|
<router-view :key="key" />
|
||||||
</div>
|
</div>
|
||||||
</keep-alive>
|
</keep-alive>
|
||||||
@@ -39,7 +44,14 @@ export default {
|
|||||||
return this.$route.meta.title;
|
return this.$route.meta.title;
|
||||||
},
|
},
|
||||||
key() {
|
key() {
|
||||||
|
console.log(this.$route)
|
||||||
return this.$route.path
|
return this.$route.path
|
||||||
|
},
|
||||||
|
bgColor() {
|
||||||
|
return this.$route.path === "/growth/growthPage" ? "rgba(0,0,0,0)" : "#fff";
|
||||||
|
},
|
||||||
|
padding(){
|
||||||
|
return this.$route.path === "/growth/growthPage" ? "0" : "30px 20px";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,160 +1,132 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="growth">
|
<div class="growth" v-loading="loading">
|
||||||
<header class="header">
|
<div class="growth-left">
|
||||||
<div class="f-a-c header-title">
|
<div class="navbar">
|
||||||
<div style="margin-right: 8px">我的专业力必修</div>
|
<div style="display: flex; flex: 1">
|
||||||
|
<div class="nav-title">我的专业力必修</div>
|
||||||
<el-popover
|
<div class="nav-total">
|
||||||
placement="top-start"
|
<div class="total-num">35</div>
|
||||||
width="400"
|
<div class="total-text">总任务数</div>
|
||||||
trigger="hover"
|
</div>
|
||||||
content="根据您所在的组织、标准岗位、任职资格等级,已为您匹配专业力必修任务,抓紧时间学习吧~"
|
<div class="nav-total">
|
||||||
>
|
<div class="total-num">35</div>
|
||||||
<i
|
<div class="total-text">已完成数量</div>
|
||||||
slot="reference"
|
</div>
|
||||||
style="color: #a1a1a1"
|
<div class="nav-total">
|
||||||
class="el-icon-question"
|
<div class="total-num">35</div>
|
||||||
></i>
|
<div class="total-text">未完成数量</div>
|
||||||
</el-popover>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="list.length">
|
|
||||||
<el-dropdown trigger="click">
|
|
||||||
<el-button type="primary">
|
|
||||||
<div class="f-a-c">
|
|
||||||
<div class="select-active">{{ selectData.growthName }}</div>
|
|
||||||
<i class="el-icon-arrow-down el-icon--right"></i>
|
|
||||||
</div>
|
|
||||||
</el-button>
|
|
||||||
<el-dropdown-menu slot="dropdown">
|
|
||||||
<el-dropdown-item
|
|
||||||
v-for="item of list"
|
|
||||||
:disabled="item.id === selectData.id"
|
|
||||||
>
|
|
||||||
<div @click="select(item)">
|
|
||||||
{{ item.growthName }}
|
|
||||||
</div></el-dropdown-item
|
|
||||||
>
|
|
||||||
</el-dropdown-menu>
|
|
||||||
</el-dropdown>
|
|
||||||
</template>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<section class="container">
|
<div class="growth-item" v-for="item of list">
|
||||||
<template v-if="list.length">
|
<div class="growth-nav">
|
||||||
<div class="title">
|
<div class="growth-name">{{ item.growthName }}</div>
|
||||||
<div style="font-size: 20px">
|
<div class="f-a-c">
|
||||||
{{ selectData.growthName }}
|
<div
|
||||||
</div>
|
class="growth-state"
|
||||||
<div style="display: flex; align-items: center">
|
:style="{
|
||||||
<div style="display: flex">
|
color:
|
||||||
<div style="font-size: 18px; color: #333">学习状态:</div>
|
item.learningState === 0
|
||||||
<div
|
? '#999999'
|
||||||
style="font-size: 18px"
|
: item.learningState === 1
|
||||||
:style="{
|
? '#6ba158'
|
||||||
color:
|
: '#F2903D',
|
||||||
selectData.learningState === 0
|
}"
|
||||||
? '#fe9400'
|
>
|
||||||
: selectData.learningState === 1
|
{{
|
||||||
? '#6ba158'
|
item.learningState === 0
|
||||||
: '#0079ee',
|
? "未开始"
|
||||||
}"
|
: item.learningState === 1
|
||||||
>
|
? "已完成"
|
||||||
{{
|
: "进行中"
|
||||||
selectData.learningState === 0
|
}}
|
||||||
? "未开始"
|
|
||||||
: selectData.learningState === 1
|
|
||||||
? "已完成"
|
|
||||||
: "进行中"
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="learning f-j-c">
|
|
||||||
<el-button
|
|
||||||
style="width: 100px; margin-left: 16px"
|
|
||||||
type="primary"
|
|
||||||
@click="jumpRouter"
|
|
||||||
>
|
|
||||||
学习
|
|
||||||
</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="growth-btn" @click="jumpRouter(item)">去学习</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="tip-title">说明</div>
|
||||||
<div class="tip">
|
<div class="tip-content">
|
||||||
<div class="tip-title f-a-c">
|
{{ item.description || "暂无说明" }}
|
||||||
<img class="icon" src="../../assets/images/shuoming.jpg" />
|
|
||||||
<div>说明</div>
|
|
||||||
</div>
|
|
||||||
<div class="tip-text">
|
|
||||||
{{ selectData.description || "暂无说明" }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="progress">
|
|
||||||
<div class="progress-title f-a-c">
|
|
||||||
<img class="icon" src="../../assets/images/jindu.jpg" />
|
|
||||||
<div>学习进度</div>
|
|
||||||
</div>
|
|
||||||
<div class="progress-text">
|
|
||||||
<div class="progress-item">
|
|
||||||
<div class="item-title">总任务</div>
|
|
||||||
<div class="item-progress">{{ selectData.totalTaskNum }}个</div>
|
|
||||||
</div>
|
|
||||||
<div class="progress-item">
|
|
||||||
<div class="item-title">必修进度</div>
|
|
||||||
<div class="item-progress">
|
|
||||||
<el-progress
|
|
||||||
:stroke-width="14"
|
|
||||||
:text-inside="true"
|
|
||||||
:percentage="requiredTaskCompletionRate"
|
|
||||||
></el-progress>
|
|
||||||
<div class="mask">
|
|
||||||
{{ selectData.requiredTaskCompletedNum }}/{{
|
|
||||||
selectData.requiredTaskNum
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="item-text">{{ requiredTaskCompletionRate }}%</div>
|
|
||||||
</div>
|
|
||||||
<div class="progress-item">
|
|
||||||
<div class="item-title">选修进度</div>
|
|
||||||
<div class="item-progress">
|
|
||||||
<el-progress
|
|
||||||
:stroke-width="14"
|
|
||||||
:text-inside="true"
|
|
||||||
:percentage="electiveTaskCompletionRate"
|
|
||||||
></el-progress>
|
|
||||||
<div class="mask">
|
|
||||||
{{ selectData.electiveTaskCompletedNum }}/{{
|
|
||||||
selectData.electiveTaskNum
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="item-text">{{ electiveTaskCompletionRate }}%</div>
|
|
||||||
</div>
|
|
||||||
<div class="progress-item">
|
|
||||||
<div class="item-title">总进度</div>
|
|
||||||
<div class="item-progress">
|
|
||||||
<el-progress
|
|
||||||
:stroke-width="14"
|
|
||||||
:text-inside="true"
|
|
||||||
:percentage="totalTaskCompletionRate"
|
|
||||||
></el-progress>
|
|
||||||
<div class="mask">
|
|
||||||
{{ selectData.totalTaskCompletedNum }}/{{
|
|
||||||
selectData.totalTaskNum
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="item-text">{{ totalTaskCompletionRate }}%</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
<div class="progress-title">学习进度</div>
|
||||||
<template v-else>
|
|
||||||
<el-empty :image-size="200"></el-empty>
|
<div class="progress-content">
|
||||||
</template>
|
<div class="f-j-b" style="margin-bottom: 10px">
|
||||||
</section>
|
<div class="f-a-c">
|
||||||
|
<div style="font-weight: 700; font-size: 16px; color: #333333">
|
||||||
|
必修进度
|
||||||
|
</div>
|
||||||
|
<div style="font-size: 20px; color: #999999; margin-left: 12px">
|
||||||
|
{{ item.requiredTaskCompletedNum }}/{{ item.requiredTaskNum }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="font-weight: bold; font-size: 24px; color: #0077ec">
|
||||||
|
{{ requiredTaskCompletionRate(item) }}%
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-progress
|
||||||
|
:stroke-width="8"
|
||||||
|
:show-text="false"
|
||||||
|
:percentage="requiredTaskCompletionRate(item)"
|
||||||
|
></el-progress>
|
||||||
|
</div>
|
||||||
|
<div class="progress-content">
|
||||||
|
<div class="f-j-b" style="margin-bottom: 10px">
|
||||||
|
<div class="f-a-c">
|
||||||
|
<div style="font-weight: 700; font-size: 16px; color: #333333">
|
||||||
|
选修进度
|
||||||
|
</div>
|
||||||
|
<div style="font-size: 20px; color: #999999; margin-left: 12px">
|
||||||
|
{{ item.electiveTaskCompletedNum }}/{{ item.electiveTaskNum }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="font-weight: bold; font-size: 24px; color: #0077ec">
|
||||||
|
{{ electiveTaskCompletionRate(item) }}%
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-progress
|
||||||
|
:stroke-width="8"
|
||||||
|
:show-text="false"
|
||||||
|
:percentage="electiveTaskCompletionRate(item)"
|
||||||
|
></el-progress>
|
||||||
|
</div>
|
||||||
|
<div class="progress-content">
|
||||||
|
<div class="f-j-b" style="margin-bottom: 10px">
|
||||||
|
<div class="f-a-c">
|
||||||
|
<div style="font-weight: 700; font-size: 16px; color: #333333">
|
||||||
|
总进度
|
||||||
|
</div>
|
||||||
|
<div style="font-size: 20px; color: #999999; margin-left: 12px">
|
||||||
|
{{ item.totalTaskCompletedNum }}/{{ item.totalTaskNum }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="font-weight: bold; font-size: 24px; color: #0077ec">
|
||||||
|
{{ totalTaskCompletionRate(item) }}%
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-progress
|
||||||
|
:stroke-width="8"
|
||||||
|
:show-text="false"
|
||||||
|
:percentage="totalTaskCompletionRate(item)"
|
||||||
|
></el-progress>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="growth-right">
|
||||||
|
<div class="title">专业力必修</div>
|
||||||
|
<div
|
||||||
|
class="item-growth"
|
||||||
|
:class="selectData.id == item.id ? 'active' : ''"
|
||||||
|
v-for="item of list"
|
||||||
|
>
|
||||||
|
<div class="icon"></div>
|
||||||
|
<div>{{ item.growthName }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<template v-if="!list.length">
|
||||||
|
<el-empty :image-size="200"></el-empty>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@@ -164,73 +136,65 @@ export default {
|
|||||||
return {
|
return {
|
||||||
selectData: {},
|
selectData: {},
|
||||||
list: [],
|
list: [],
|
||||||
|
loading: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// 完成进度
|
// 完成进度
|
||||||
totalTaskCompletionRate() {
|
totalTaskCompletionRate() {
|
||||||
if (
|
return (item) => {
|
||||||
this.selectData.totalTaskCompletedNum &&
|
if (item.totalTaskCompletedNum && item.totalTaskNum) {
|
||||||
this.selectData.totalTaskNum
|
let num = item.totalTaskCompletedNum / item.totalTaskNum;
|
||||||
) {
|
num = num * 100;
|
||||||
let num =
|
num = num.toFixed(0);
|
||||||
this.selectData.totalTaskCompletedNum / this.selectData.totalTaskNum;
|
return Number(num);
|
||||||
num = num * 100;
|
} else {
|
||||||
num = num.toFixed(0);
|
return 0;
|
||||||
return Number(num);
|
}
|
||||||
} else {
|
};
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
// 选修进度
|
// 选修进度
|
||||||
electiveTaskCompletionRate() {
|
electiveTaskCompletionRate() {
|
||||||
if (
|
return (item) => {
|
||||||
this.selectData.electiveTaskCompletedNum &&
|
if (item.electiveTaskCompletedNum && item.electiveTaskNum) {
|
||||||
this.selectData.electiveTaskNum
|
let num = item.electiveTaskCompletedNum / item.electiveTaskNum;
|
||||||
) {
|
num = num * 100;
|
||||||
let num =
|
num = num.toFixed(0);
|
||||||
this.selectData.electiveTaskCompletedNum /
|
return Number(num);
|
||||||
this.selectData.electiveTaskNum;
|
} else {
|
||||||
num = num * 100;
|
return 0;
|
||||||
num = num.toFixed(0);
|
}
|
||||||
return Number(num);
|
};
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
// 必修进度
|
// 必修进度
|
||||||
requiredTaskCompletionRate() {
|
requiredTaskCompletionRate() {
|
||||||
if (
|
return (item) => {
|
||||||
this.selectData.requiredTaskCompletedNum &&
|
if (item.requiredTaskCompletedNum && item.requiredTaskNum) {
|
||||||
this.selectData.requiredTaskNum
|
let num = item.requiredTaskCompletedNum / item.requiredTaskNum;
|
||||||
) {
|
num = num * 100;
|
||||||
let num =
|
num = num.toFixed(0);
|
||||||
this.selectData.requiredTaskCompletedNum /
|
return Number(num);
|
||||||
this.selectData.requiredTaskNum;
|
} else {
|
||||||
num = num * 100;
|
return 0;
|
||||||
num = num.toFixed(0);
|
}
|
||||||
return Number(num);
|
};
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
select(item) {
|
select(item) {},
|
||||||
this.selectData = item;
|
jumpRouter(item) {
|
||||||
},
|
|
||||||
jumpRouter() {
|
|
||||||
let studentPath = process.env.VUE_APP_STUDENT_PATH;
|
let studentPath = process.env.VUE_APP_STUDENT_PATH;
|
||||||
let params = encodeURIComponent("routerId=" + this.selectData.id);
|
let params = encodeURIComponent("routerId=" + item.id);
|
||||||
this.$router.push(
|
this.$router.push(
|
||||||
"/forward?to=" + studentPath + "/growthList¶ms=" + params
|
"/forward?to=" + studentPath + "/growthList¶ms=" + params
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.loading = true;
|
||||||
listData().then((res) => {
|
listData().then((res) => {
|
||||||
this.list = res.data;
|
this.list = res.data;
|
||||||
this.selectData = this.list[0];
|
this.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -240,105 +204,130 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
.f-j-b {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
.f-j-c {
|
.f-j-c {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.header {
|
.growth {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
.growth-left {
|
||||||
align-items: center;
|
margin-right: 10px;
|
||||||
.header-title {
|
|
||||||
font-size: 24px;
|
flex: 1;
|
||||||
}
|
.growth-item {
|
||||||
.select-active {
|
background: #ffffff;
|
||||||
font-size: 18px;
|
padding: 30px 38px 66px 40px;
|
||||||
max-width: 300px;
|
margin-bottom: 35px;
|
||||||
white-space: nowrap; /* 防止文本换行 */
|
.progress-title {
|
||||||
overflow: hidden; /* 隐藏溢出的内容 */
|
font-weight: 700;
|
||||||
text-overflow: ellipsis; /* 显示省略符号来代表被修剪的文本 */
|
font-size: 20px;
|
||||||
}
|
color: #000000;
|
||||||
}
|
margin: 28px 0 20px 0;
|
||||||
.container {
|
}
|
||||||
.title {
|
.progress-content {
|
||||||
display: flex;
|
margin-bottom: 28px;
|
||||||
justify-content: space-between;
|
}
|
||||||
margin-top: 30px;
|
.tip-title {
|
||||||
padding: 25px 40px;
|
font-weight: 700;
|
||||||
font-size: 18px;
|
font-size: 20px;
|
||||||
color: rgb(51, 121, 251);
|
color: #000000;
|
||||||
border: 1px solid #e2eefd;
|
margin: 30px 0 10px 0;
|
||||||
border-bottom: none;
|
}
|
||||||
background-image: linear-gradient(to bottom, #e2eefd, #ffffff);
|
.tip-content {
|
||||||
}
|
font-weight: 700;
|
||||||
.content {
|
font-size: 14px;
|
||||||
border: 1px solid #e2eefd;
|
color: #333333;
|
||||||
padding: 25px 50px;
|
line-height: 40px;
|
||||||
.icon {
|
}
|
||||||
width: 40px;
|
.growth-nav {
|
||||||
height: 40px;
|
display: flex;
|
||||||
margin-right: 10px;
|
justify-content: space-between;
|
||||||
}
|
align-items: center;
|
||||||
.tip-title,
|
padding-bottom: 28px;
|
||||||
.progress-title {
|
border-bottom: 2px solid #f5f5f5;
|
||||||
font-size: 24px;
|
}
|
||||||
font-weight: 700;
|
.growth-name {
|
||||||
}
|
font-weight: 500;
|
||||||
.tip-text {
|
font-size: 18px;
|
||||||
font-size: 18px;
|
color: #0071ed;
|
||||||
line-height: 35px;
|
}
|
||||||
margin-top: 20px;
|
.growth-state {
|
||||||
}
|
font-size: 14px;
|
||||||
.tip-text,
|
margin-right: 18px;
|
||||||
.progress-text {
|
}
|
||||||
padding-left: 50px;
|
.growth-btn {
|
||||||
}
|
display: flex;
|
||||||
.progress-text {
|
justify-content: center;
|
||||||
.el-form-item {
|
align-items: center;
|
||||||
margin-bottom: 0;
|
width: 120px;
|
||||||
|
height: 36px;
|
||||||
|
background: #f2903d;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #ffffff;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.progress {
|
.navbar {
|
||||||
margin-top: 40px;
|
|
||||||
}
|
|
||||||
.progress-item {
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
font-size: 14px;
|
height: 130px;
|
||||||
margin-top: 20px;
|
padding-left: 40px;
|
||||||
.item-title {
|
margin-bottom: 10px;
|
||||||
width: 80px;
|
color: #ffffff;
|
||||||
display: flex;
|
background-image: url(../../assets/images/growth/growth-bg.png);
|
||||||
justify-content: flex-end;
|
.nav-title {
|
||||||
margin-right: 20px;
|
font-weight: 700;
|
||||||
font-size: 18px;
|
font-size: 26px;
|
||||||
}
|
}
|
||||||
.item-progress {
|
.nav-total {
|
||||||
width: 400px;
|
margin-left: 15%;
|
||||||
position: relative;
|
|
||||||
font-size: 18px;
|
|
||||||
.mask {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
top: 0;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.item-text {
|
.total-num {
|
||||||
color: #409eff;
|
font-weight: bold;
|
||||||
margin-left: 8px;
|
font-size: 30px;
|
||||||
}
|
|
||||||
::v-deep.el-progress-bar__innerText {
|
|
||||||
display: none;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.learning {
|
}
|
||||||
padding: 45px 0;
|
.growth-right {
|
||||||
|
width: 464px;
|
||||||
|
margin-bottom: 35px;
|
||||||
|
background-color: #ffffff;
|
||||||
|
padding: 35px 20px 20px 30px;
|
||||||
|
.title {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #000000;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-bottom: 35px;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.item-growth {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #666666;
|
||||||
|
padding: 15px 20px 15px 8px;
|
||||||
|
}
|
||||||
|
.icon {
|
||||||
|
width: 4px;
|
||||||
|
height: 4px;
|
||||||
|
background: #4c5564;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
.active {
|
||||||
|
background: #e3edfe;
|
||||||
|
color: #000;
|
||||||
|
.icon {
|
||||||
|
background: #0077ec;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,11 +124,11 @@ module.exports = {
|
|||||||
// 114.115.162.187 测试环境
|
// 114.115.162.187 测试环境
|
||||||
// 192.168.0.107 晋宇
|
// 192.168.0.107 晋宇
|
||||||
proxy: {
|
proxy: {
|
||||||
"/professional": {
|
"/growth": {
|
||||||
// target: 'http://192.168.16.195:32002',
|
target: 'https://u-pre.boe.com',
|
||||||
target: 'http://192.168.150.97:32002',
|
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
'/manageApi': {
|
'/manageApi': {
|
||||||
// 目标代理服务器地址
|
// 目标代理服务器地址
|
||||||
target: 'https://u-pre.boe.com',
|
target: 'https://u-pre.boe.com',
|
||||||
|
|||||||
Reference in New Issue
Block a user