Merge branch 'master' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage

This commit is contained in:
Ggysh-7
2022-11-22 22:46:08 +08:00
10 changed files with 600 additions and 540 deletions

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-21 15:13:50
* @LastEditTime: 2022-11-22 20:17:22
* @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -29,6 +29,7 @@ http.interceptors.request.use(
config.headers.token = 123456; //测试1111
} else {
console.log("当前请求页面无token,请执行操作!!!");
// 此处测试默认配置token
config.headers.token = "123456";
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njg4NjI2MTAsImV4cCI6MTY2ODg2OTgxMCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.defa91ecb2b61d9b20d858db0c2c8d7d80dea4613cb2559a22569b7df36b3f6b";

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-04 22:45:31
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-21 16:39:08
* @LastEditTime: 2022-11-22 18:04:47
* @FilePath: /fe-manage/src/api/index1.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -87,6 +87,10 @@ export const billboard = (obj) => http.post('/admin/project/billboard', obj);
//获取字典信息
export const getDict = (obj) => http.post('/dict/getList', obj)
//获取组织树
export const getOrgTree = (obj) => http.post('/admin/router/orgList', obj)
// 获取组织结构树
export const orgtree = () => http.get('/org/tree');

View File

@@ -192,8 +192,8 @@
src="../assets/images/navleft/certificate.png"
/>
</div>
<router-link to="/certificatecenter">证书中心</router-link>
<span>证书中心</span>
<!-- <router-link to="/certificatecenter">证书中心</router-link> -->
</a-menu-item>
<a-menu-item key="sub9" @titleClick="titleClick">
<div class="imgBox">
@@ -202,7 +202,8 @@
src="../assets/images/navleft/system.png"
/>
</div>
<router-link to="/systemmanage">系统管理</router-link>
<span>系统管理</span>
<!-- <router-link to="/systemmanage">系统管理</router-link> -->
</a-menu-item>
</a-menu>
</div>
@@ -219,6 +220,9 @@
mode="inline"
@click="handleClick"
>
<a-menu-item key="sub10" @titleClick="titleClick">
<router-link to="/coursereviewedn">审核</router-link>
</a-menu-item>
<a-menu-item key="sub1" @titleClick="titleClick">
<router-link to="/learningpath">学习</router-link>
</a-menu-item>

View File

@@ -6,7 +6,7 @@
width="85%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain" id="ownpower">
<div class="drawerMain" id="ProjOwnership">
<div class="header">
<div class="headerTitle">归属权</div>
<img
@@ -101,6 +101,7 @@
columnWidth: 20,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
type: 'radio',
}"
/>
<div class="pa">
@@ -121,80 +122,30 @@
</div>
</div>
</a-tab-pane>
</a-tabs>
</div>
</div>
<div class="right">
<div class="onerow">
<div class="onleft">
<div class="already">已选</div>
<!-- <div class="count">6</div>
<div class="peo"></div> -->
</div>
<div class="clbox" @click="deleteAll">
<div class="colose"></div>
<span class="allclear">全部清除</span>
</div>
</div>
<div class="line"></div>
<div class="tit">快速选人</div>
<div style="position: relative; min-height: 180px">
<div style="height: 160px" class="selectedsBox" id="selectedsBox">
<div class="selecteds" id="selecteds">
<!-- 遍历生成 -->
<div
style="
display: flex;
align-items: center;
margin-bottom: 20px;
flex-wrap: wrap;
"
>
<div class="already">当前归属</div>
<div class="chose" v-for="item in choosepeople" :key="item.key">
<div>{{ item.name }}</div>
<div class="ch" @click="deleteChoosePeople(item)"></div>
</div>
</div>
</div>
<div
class="chose"
style="
display: flex;
justify-content: flex-end;
margin-right: 20px;
font-size: 12px;
font-weight: 500;
color: #409eff;
line-height: 22px;
"
v-if="showMore"
@click="morePeopleShow"
>
<div>
查看更多
<img
style="width: 10px; height: 12px; margin-top: -2px"
src="../../assets/images/projectadd/go.png"
/>
</div>
</div>
<div
class="chose"
style="
display: flex;
justify-content: flex-end;
margin-right: 20px;
font-size: 12px;
font-weight: 500;
color: #409eff;
line-height: 22px;
"
v-if="showHidden"
@click="morePeopleHidden"
>
<div>
收起
<img
style="width: 10px; height: 12px; margin-top: -2px"
src="../../assets/images/projectadd/pickUp.png"
/>
</div>
<div class="clbox">
<span class="allclear">转移归属权</span>
</div>
</div>
</div>
</div>
<div class="btnn">
@@ -202,8 +153,6 @@
<button class="btn2">确定</button>
</div>
</div>
</a-drawer>
</template>
@@ -567,7 +516,6 @@ export default {
},
],
//快速选人-------------------------------------
valueSelectboe: null, //快速选人的选择组织
choosepeople: [], //总的数组
@@ -576,14 +524,12 @@ export default {
showHidden: false, //是否显示收回
selectedRowKeys: [], //表格选中的key
//快速选人-------------------------------------
});
const closeDrawer = () => {
state.activeKey = "1";
ctx.emit("update:ownpowervisible", false);
};
const afterVisibleChange = (bool) => {
console.log("state", bool);
};
@@ -690,8 +636,6 @@ export default {
// 结束 快速选人------------------------------------------------------------------
//全部清除
const deleteAll = () => {
//快速选人-------------------------------------
@@ -701,10 +645,9 @@ export default {
state.showHidden = false; //是否显示收回
state.selectedRowKeys = []; //表格选中的key
//快速选人-------------------------------------
};
return {
...toRefs(state),
...toRefs(state),
afterVisibleChange,
closeDrawer,
onSelectChange,
@@ -715,10 +658,7 @@ export default {
morePeopleShow,
morePeopleHidden,
deleteAll,
};
},
};
@@ -726,7 +666,7 @@ export default {
<style lang="scss">
.ownpower {
.ant-drawer-content-wrapper {
.ant-drawer-content-wrapper {
max-width: 1300px !important;
}
.drawerMain {
@@ -1166,7 +1106,7 @@ export default {
}
}
.right {
width: 320px;
width: 340px;
flex-shrink: 0;
overflow-y: auto;
.onerow {
@@ -1178,11 +1118,15 @@ export default {
.onleft {
display: flex;
text-align: center;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
margin-left: 32px;
.already {
color: rgba(51, 51, 51, 1);
font-size: 16px;
font-weight: 500;
margin-left: 32px;
white-space: nowrap;
// margin-bottom: 20px;
}
@@ -1196,9 +1140,35 @@ export default {
font-size: 16px;
font-weight: 500;
}
.chose {
// width: 64px;
padding-left: 10px;
padding-right: 10px;
height: 24px;
// margin-top: 25px;
// margin-right: 25px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 2px;
border: 1px solid rgba(56, 139, 225, 1);
color: rgba(56, 139, 225, 1);
font-size: 12px;
position: relative;
flex-shrink: 0;
.ch {
position: absolute;
width: 18px;
height: 18px;
background-image: url(../../assets/images/basicinfo/ch.png);
right: -8px;
top: -8px;
}
}
}
.clbox {
margin-left: 30px;
margin-bottom: 20px;
display: flex;
justify-content: center;
align-items: center;
@@ -1250,30 +1220,6 @@ export default {
margin-left: 32px;
min-height: 100px;
// overflow: hidden;
.chose {
// width: 64px;
padding-left: 10px;
padding-right: 10px;
height: 24px;
margin-top: 25px;
margin-right: 25px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 2px;
border: 1px solid rgba(56, 139, 225, 1);
color: rgba(56, 139, 225, 1);
font-size: 12px;
position: relative;
.ch {
position: absolute;
width: 18px;
height: 18px;
background-image: url(../../assets/images/basicinfo/ch.png);
right: -8px;
top: -8px;
}
}
}
}
}

View File

@@ -7,7 +7,7 @@
width="85%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain" id="Ownership">
<div class="drawerMain" id="ProjOwnership">
<div class="header">
<div class="headerTitle">归属权</div>
<img
@@ -102,6 +102,7 @@
columnWidth: 20,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
type: 'radio',
}"
/>
<div class="pa">
@@ -128,70 +129,22 @@
<div class="right">
<div class="onerow">
<div class="onleft">
<div class="already">已选</div>
<!-- <div class="count">6</div>
<div class="peo"></div> -->
</div>
<div class="clbox" @click="deleteAll">
<div class="colose"></div>
<span class="allclear">全部清除</span>
</div>
</div>
<div class="line"></div>
<div class="tit">快速选人</div>
<div style="position: relative; min-height: 180px">
<div style="height: 160px" class="selectedsBox" id="selectedsBox">
<div class="selecteds" id="selecteds">
<!-- 遍历生成 -->
<div
style="
display: flex;
align-items: center;
margin-bottom: 20px;
flex-wrap: wrap;
"
>
<div class="already">当前归属</div>
<div class="chose" v-for="item in choosepeople" :key="item.key">
<div>{{ item.name }}</div>
<div class="ch" @click="deleteChoosePeople(item)"></div>
</div>
</div>
</div>
<div
class="chose"
style="
display: flex;
justify-content: flex-end;
margin-right: 20px;
font-size: 12px;
font-weight: 500;
color: #409eff;
line-height: 22px;
"
v-if="showMore"
@click="morePeopleShow"
>
<div>
查看更多
<img
style="width: 10px; height: 12px; margin-top: -2px"
src="../../assets/images/projectadd/go.png"
/>
</div>
</div>
<div
class="chose"
style="
display: flex;
justify-content: flex-end;
margin-right: 20px;
font-size: 12px;
font-weight: 500;
color: #409eff;
line-height: 22px;
"
v-if="showHidden"
@click="morePeopleHidden"
>
<div>
收起
<img
style="width: 10px; height: 12px; margin-top: -2px"
src="../../assets/images/projectadd/pickUp.png"
/>
</div>
<div class="clbox">
<span class="allclear">转移归属权</span>
</div>
</div>
</div>
@@ -201,7 +154,6 @@
<button class="btn2">确定</button>
</div>
</div>
<!-- 确认添加部门弹窗 -->
<a-modal
v-model:visible="showOrgModal"
@@ -272,7 +224,7 @@ export default {
nameaddd: "",
com: "",
//组织树
treeData: [
{
title: "京东方",
@@ -665,31 +617,50 @@ export default {
//根据右侧快速选人高度,判断是否显示更多
const selectedsHeight = () => {
let resize = elementResizeDetectorMaker();
resize.listenTo(document.getElementById('Ownership').querySelector("#selecteds"), function (ele) {
console.log("ele", ele.offsetHeight);
if (ele.offsetHeight > 160 && !state.showHidden) {
state.showMore = true;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px";
} else if (ele.offsetHeight < 160) {
state.showMore = false;
state.showHidden = false;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px";
resize.listenTo(
document.getElementById("Ownership").querySelector("#selecteds"),
function (ele) {
console.log("ele", ele.offsetHeight);
if (ele.offsetHeight > 160 && !state.showHidden) {
state.showMore = true;
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.overflow = "hidden";
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.height = "160px";
} else if (ele.offsetHeight < 160) {
state.showMore = false;
state.showHidden = false;
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.overflow = "hidden";
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.height = "160px";
}
}
});
);
};
const morePeopleShow = () => {
state.showMore = false;
state.showHidden = true;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "";
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "";
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.overflow = "";
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.height = "";
};
const morePeopleHidden = () => {
state.showMore = true;
state.showHidden = false;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px";
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.overflow = "hidden";
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.height = "160px";
};
// 结束 快速选人------------------------------------------------------------------
@@ -1166,7 +1137,7 @@ export default {
}
}
.right {
width: 320px;
width: 340px;
flex-shrink: 0;
overflow-y: auto;
.onerow {
@@ -1178,11 +1149,15 @@ export default {
.onleft {
display: flex;
text-align: center;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
margin-left: 32px;
.already {
color: rgba(51, 51, 51, 1);
font-size: 16px;
font-weight: 500;
margin-left: 32px;
white-space: nowrap;
// margin-bottom: 20px;
}
@@ -1196,9 +1171,35 @@ export default {
font-size: 16px;
font-weight: 500;
}
.chose {
// width: 64px;
padding-left: 10px;
padding-right: 10px;
height: 24px;
// margin-top: 25px;
// margin-right: 25px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 2px;
border: 1px solid rgba(56, 139, 225, 1);
color: rgba(56, 139, 225, 1);
font-size: 12px;
position: relative;
flex-shrink: 0;
.ch {
position: absolute;
width: 18px;
height: 18px;
background-image: url(../../assets/images/basicinfo/ch.png);
right: -8px;
top: -8px;
}
}
}
.clbox {
margin-left: 30px;
margin-bottom: 20px;
display: flex;
justify-content: center;
align-items: center;
@@ -1250,30 +1251,6 @@ export default {
margin-left: 32px;
min-height: 100px;
// overflow: hidden;
.chose {
// width: 64px;
padding-left: 10px;
padding-right: 10px;
height: 24px;
margin-top: 25px;
margin-right: 25px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 2px;
border: 1px solid rgba(56, 139, 225, 1);
color: rgba(56, 139, 225, 1);
font-size: 12px;
position: relative;
.ch {
position: absolute;
width: 18px;
height: 18px;
background-image: url(../../assets/images/basicinfo/ch.png);
right: -8px;
top: -8px;
}
}
}
}
}

View File

@@ -74,16 +74,16 @@
class="treeMain"
:style="{ height: screenHeight - 400 + 'px' }"
dropdownClassName="changetreedropdownboe"
defaultExpandAll
default-expand-all
:dropdown-style="{
maxHeight: '600px',
}"
placeholder="BOE组织树"
allow-clear
tree-default-expand-all
:tree-data="treeData"
@select="departmentSelect"
v-model:selectedKeys="selectedKeys"
v-model:expandedKeys="openKeys"
>
<template #suffixIcon></template>
</a-tree>
@@ -101,6 +101,7 @@
columnWidth: 20,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
type: 'radio',
}"
/>
<div class="pa">
@@ -127,70 +128,22 @@
<div class="right">
<div class="onerow">
<div class="onleft">
<div class="already">已选</div>
<!-- <div class="count">6</div>
<div class="peo"></div> -->
</div>
<div class="clbox" @click="deleteAll">
<div class="colose"></div>
<span class="allclear">全部清除</span>
</div>
</div>
<div class="line"></div>
<div class="tit">快速选人</div>
<div style="position: relative; min-height: 180px">
<div style="height: 160px" class="selectedsBox" id="selectedsBox">
<div class="selecteds" id="selecteds">
<!-- 遍历生成 -->
<div
style="
display: flex;
align-items: center;
margin-bottom: 20px;
flex-wrap: wrap;
"
>
<div class="already">当前归属</div>
<div class="chose" v-for="item in choosepeople" :key="item.key">
<div>{{ item.name }}</div>
<div class="ch" @click="deleteChoosePeople(item)"></div>
</div>
</div>
</div>
<div
class="chose"
style="
display: flex;
justify-content: flex-end;
margin-right: 20px;
font-size: 12px;
font-weight: 500;
color: #409eff;
line-height: 22px;
"
v-if="showMore"
@click="morePeopleShow"
>
<div>
查看更多
<img
style="width: 10px; height: 12px; margin-top: -2px"
src="../../assets/images/projectadd/go.png"
/>
</div>
</div>
<div
class="chose"
style="
display: flex;
justify-content: flex-end;
margin-right: 20px;
font-size: 12px;
font-weight: 500;
color: #409eff;
line-height: 22px;
"
v-if="showHidden"
@click="morePeopleHidden"
>
<div>
收起
<img
style="width: 10px; height: 12px; margin-top: -2px"
src="../../assets/images/projectadd/pickUp.png"
/>
</div>
<div class="clbox">
<span class="allclear">转移归属权</span>
</div>
</div>
</div>
@@ -238,6 +191,7 @@
import { reactive, toRefs, onMounted, onUnmounted } from "vue";
import elementResizeDetectorMaker from "element-resize-detector";
// import { message } from "ant-design-vue";
import * as api from "../../api/index1";
export default {
name: "ProjOwnerShip",
props: {
@@ -271,120 +225,148 @@ export default {
nameadd: "",
nameaddd: "",
com: "",
openKeys: [2, 13, 32],
//组织树
treeData: [
{
key: 1,
title: "京东方",
value: "京东方",
children: [
{
key: 2,
title: "产研部",
value: "产研部",
children: [
{
key: 3,
title: "产品部",
value: "产品部",
},
{
key: 4,
title: "研究部",
value: "研究部",
},
{
key: 5,
title: "研究部2",
value: "研究部2",
},
{
key: 6,
title: "研究3",
value: "研究3",
},
{
key: 7,
title: "研究4",
value: "研究4",
},
{
key: 8,
title: "研究部5",
value: "研究部5",
},
{
key: 9,
title: "研究部6",
value: "研究部6",
},
{
key: 10,
title: "研究部7",
value: "研究部7",
},
{
key: 11,
title: "研究部8",
value: "研究部8",
},
{
key: 12,
title: "研究部9",
value: "研究部9",
},
],
},
{
key: 13,
title: "二级标题",
value: "二级标题",
children: [
{
key: 14,
title: "三级标题",
value: "三级标题",
children: [
{
key: 15,
title: "四级标题",
value: "四级标题",
children: [
{
key: 16,
title: "五级标题",
value: "五级标题",
children: [
{
key: 17,
title: "六级标题",
value: "六级标题",
children: [
{
key: 18,
title: "七级标题",
value: "七级标题",
children: [
{
key: 19,
title: "八级标题",
value: "八级标题",
children: [
{
key: 20,
title: "九级标题",
value: "九级标题",
children: [
{
key: 21,
title: "十级标题",
value: "十级标题",
children: [
{
key: 22,
title: "十一级标题",
value: "十一级标题",
children: [
{
key: 23,
title: "十二级标题",
value: "十二级标题",
children: [
{
key: 24,
title:
"十三级标题十三级标题十三级标题十三级标题",
value: "十三级标题",
children: [
{
key: 25,
title:
"十四级标题",
value:
"十四级标题",
children: [
{
key: 26,
title:
"十五级标题",
value:
"十五级标题",
children: [
{
key: 27,
title:
"十六级标题",
value:
@@ -392,6 +374,7 @@ export default {
children:
[
{
key: 28,
title:
"十七级标题",
value:
@@ -399,6 +382,7 @@ export default {
children:
[
{
key: 29,
title:
"十八级标题",
value:
@@ -406,6 +390,7 @@ export default {
children:
[
{
key: 30,
title:
"十九级标题",
value:
@@ -413,6 +398,7 @@ export default {
children:
[
{
key: 31,
title:
"二十级标题二十级标题",
value:
@@ -455,14 +441,17 @@ export default {
],
},
{
key: 32,
title: "人力资源部",
value: "人力资源部",
children: [
{
key: 33,
title: "人事部",
value: "人事部",
},
{
key: 34,
title: "行政部",
value: "行政部",
},
@@ -602,6 +591,26 @@ export default {
selectedRowKeys: [], //表格选中的key
//快速选人-------------------------------------
});
//获取组织树
const getOrgTree = () => {
let obj = {
keyword: "",
pageNo: 1,
pageSize: 10,
};
api
.getOrgTree(obj)
.then((res) => {
if (res.status === 200) {
console.log("获取组织树成功", res);
}
})
.catch((err) => {
console.log("获取组织树失败", err);
});
};
const closeDrawer = () => {
state.activeKey = "1";
ctx.emit("update:ProjOwnervisible", false);
@@ -625,6 +634,8 @@ export default {
window.addEventListener("resize", getClientHeight, false);
// window.addEventListener("resize", getClientHeightSelecteds, false);
// judgeUrl();
getOrgTree();
});
onUnmounted(() => {
window.removeEventListener("resize", getClientHeight, false);
@@ -665,31 +676,50 @@ export default {
//根据右侧快速选人高度,判断是否显示更多
const selectedsHeight = () => {
let resize = elementResizeDetectorMaker();
resize.listenTo(document.getElementById('ProjOwnership').querySelector("#selecteds"), function (ele) {
console.log("ele", ele.offsetHeight);
if (ele.offsetHeight > 160 && !state.showHidden) {
state.showMore = true;
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px";
} else if (ele.offsetHeight < 160) {
state.showMore = false;
state.showHidden = false;
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px";
resize.listenTo(
document.getElementById("ProjOwnership").querySelector("#selecteds"),
function (ele) {
console.log("ele", ele.offsetHeight);
if (ele.offsetHeight > 160 && !state.showHidden) {
state.showMore = true;
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.overflow = "hidden";
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.height = "160px";
} else if (ele.offsetHeight < 160) {
state.showMore = false;
state.showHidden = false;
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.overflow = "hidden";
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.height = "160px";
}
}
});
);
};
const morePeopleShow = () => {
state.showMore = false;
state.showHidden = true;
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "";
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "";
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.overflow = "";
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.height = "";
};
const morePeopleHidden = () => {
state.showMore = true;
state.showHidden = false;
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px";
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.overflow = "hidden";
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.height = "160px";
};
// 结束 快速选人------------------------------------------------------------------
@@ -704,6 +734,10 @@ export default {
state.selectedRowKeys = []; //表格选中的key
//快速选人-------------------------------------
};
const expandTree = (e) => {
console.log("展开", e);
};
return {
...toRefs(state),
afterVisibleChange,
@@ -717,6 +751,7 @@ export default {
morePeopleHidden,
deleteAll,
expandTree,
};
},
};
@@ -1164,7 +1199,7 @@ export default {
}
}
.right {
width: 320px;
width: 340px;
flex-shrink: 0;
overflow-y: auto;
.onerow {
@@ -1176,11 +1211,15 @@ export default {
.onleft {
display: flex;
text-align: center;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
margin-left: 32px;
.already {
color: rgba(51, 51, 51, 1);
font-size: 16px;
font-weight: 500;
margin-left: 32px;
white-space: nowrap;
// margin-bottom: 20px;
}
@@ -1194,9 +1233,35 @@ export default {
font-size: 16px;
font-weight: 500;
}
.chose {
// width: 64px;
padding-left: 10px;
padding-right: 10px;
height: 24px;
// margin-top: 25px;
// margin-right: 25px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 2px;
border: 1px solid rgba(56, 139, 225, 1);
color: rgba(56, 139, 225, 1);
font-size: 12px;
position: relative;
flex-shrink: 0;
.ch {
position: absolute;
width: 18px;
height: 18px;
background-image: url(../../assets/images/basicinfo/ch.png);
right: -8px;
top: -8px;
}
}
}
.clbox {
margin-left: 30px;
margin-bottom: 20px;
display: flex;
justify-content: center;
align-items: center;
@@ -1248,30 +1313,6 @@ export default {
margin-left: 32px;
min-height: 100px;
// overflow: hidden;
.chose {
// width: 64px;
padding-left: 10px;
padding-right: 10px;
height: 24px;
margin-top: 25px;
margin-right: 25px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 2px;
border: 1px solid rgba(56, 139, 225, 1);
color: rgba(56, 139, 225, 1);
font-size: 12px;
position: relative;
.ch {
position: absolute;
width: 18px;
height: 18px;
background-image: url(../../assets/images/basicinfo/ch.png);
right: -8px;
top: -8px;
}
}
}
}
}

View File

@@ -2,19 +2,20 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-09 09:26:26
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-17 16:27:22
* @LastEditTime: 2022-11-22 20:13:01
* @FilePath: /fe-manage/src/views/courselibrary/CourseManage.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!-- 课件管理页面 -->
<template>
<div class="courseManage">
<iframe
id="iframe"
style="width:100%l;height:100%"
src="https://u-pre.boe.com/pc/iframe/course/coursewares"
name="myframe"
></iframe>
<iframe
id="iframe"
style="width: 100%l; height: 100%"
src="https://u-pre.boe.com/pc/iframe/course/coursewares"
name="myframe"
sandbox="allow-forms allow-scripts allow-same-origin allow-popups"
></iframe>
</div>
</template>
<script>
@@ -24,17 +25,14 @@ export default {
name: "CourseManage",
setup() {
const state = reactive({
});
const state = reactive({});
onMounted(() => {
// console.log("执行");
});
return {
...toRefs(state),
};
},
};
@@ -45,6 +43,5 @@ export default {
height: 100%;
display: flex;
flex-direction: column;
}
</style>

View File

@@ -307,6 +307,10 @@
@change="classificationChange4"
placeholder="请选择培训分类"
:disabled="viewDetail ? true : false"
:fieldNames="{
label: 'dictName',
value: 'dictCode',
}"
/>
</div>
</div>
@@ -420,153 +424,17 @@ export default {
const store = useStore();
// 编辑页面跳转过来时候,自动填充表格
const routers = useRoute();
const isEdit = ref(false);
let peojectID = "";
console.log("store.state.orgtreeList", store.state.orgtreeList);
if (routers.query.projectId) {
storage.set("projectAddId", routers.query.projectId);
isEdit.value = true;
peojectID = routers.query.projectId;
// 需要编辑
api
.getProjectDetail({ projectId: routers.query.projectId })
.then((res) => {
if (res.status == 200 && res.data.code == 200) {
let info = res.data.data.projectInfo;
console.log(info);
// projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 *
projectName.value = info.name;
state.classifySelect = classifyList.value[1]; // info.category
imageUrl.value = info.picUrl;
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
let end = toDate(info.endTime / 1000, "YYYY/MM/DD");
state.rangevalue = [
dayjs(start, "YYYY/MM/DD"),
dayjs(end, "YYYY/MM/DD"),
];
let manageName = info.manager.split(",");
let manageValue = info.managerId.split(",");
let optionsManage = [];
for (let i = 0; i < manageName.length; i++) {
let obj = {
label: manageName[i],
value: manageValue[i],
};
optionsManage.push(obj);
}
console.log(optionsManage);
state.classifySelect1 = optionsManage;
state.classifySelect2 =
classifyList2.value[info.sourceBelongId - 1];
remark.value = info.remark;
state.checked = info.boeFlag ? info.boeFlag : false;
state.classifySelect3 = classifyList3.value[info.level];
state.classifySelect4 = classifyList4.value[info.systemId - 1];
state.checked1 = info.boeFlag ? info.boeFlag : false;
// fileList1.value = info.attach.split(",");
projectType = 1;
picUrl = info.picUrl;
beginTime = Number(info.beginTime / 1000);
endTime = Number(info.endTime / 1000);
manager = info.manager;
managerId = info.managerId;
sourceBelongIdC = Number(info.sourceBelongId);
courseSyncFlag = info.courseSyncFlag;
levels = info.level;
systemid = info.systemId;
boeFlag = info.boeFlag;
}
})
.catch((err) => {
console.log(err);
});
} else {
if (storage.get("projectAddId")) {
isEdit.value = true;
peojectID = storage.get("projectAddId");
// 需要编辑
api
.getProjectDetail({ projectId: storage.get("projectAddId") })
.then((res) => {
if (res.status == 200 && res.data.code == 200) {
let info = res.data.data.projectInfo;
console.log("我是从本地存储获取的id", info);
projectName.value = info.name;
state.classifySelect = classifyList.value[1]; // info.category
imageUrl.value = info.picUrl;
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
let end = toDate(info.endTime / 1000, "YYYY/MM/DD");
state.rangevalue = [
dayjs(start, "YYYY/MM/DD"),
dayjs(end, "YYYY/MM/DD"),
];
let manageName = info.manager.split(",");
let manageValue = info.managerId.split(",");
let optionsManage = [];
for (let i = 0; i < manageName.length; i++) {
let obj = {
label: manageName[i],
value: manageValue[i],
};
optionsManage.push(obj);
}
console.log(optionsManage);
state.classifySelect1 = optionsManage;
state.classifySelect2 =
classifyList2.value[info.sourceBelongId - 1];
remark.value = info.remark;
state.checked = info.boeFlag ? info.boeFlag : false;
state.classifySelect3 = classifyList3.value[info.level];
state.classifySelect4 = classifyList4.value[info.systemId - 1];
state.checked1 = info.boeFlag ? info.boeFlag : false;
projectType = 1;
picUrl = info.picUrl;
beginTime = Number(info.beginTime / 1000);
endTime = Number(info.endTime / 1000);
manager = info.manager;
managerId = info.managerId;
sourceBelongIdC = Number(info.sourceBelongId);
courseSyncFlag = info.courseSyncFlag;
levels = info.level;
systemid = info.systemId;
boeFlag = info.boeFlag;
}
})
.catch((err) => {
console.log(err);
});
}
}
const backPage = () => {
storage.remove("projectAddId");
setTimeout(() => {
router.push({
path: "/projectmanage",
});
}, 400);
};
const router = useRouter();
const state = reactive({
classifySelect: null,
classifySelectId: null,
checked: false,
checked1: false,
valueE: null,
valueE1: null,
valueE2: null,
classifySelect1: [],
classifySelect2: null,
classifySelect3: [],
classifySelect4: [],
rangevalue: [],
classifySelect: null, //分类选择信息
projectType: null, //分类选择的id
checked: false, //同步学习记录
checked1: false, //BOEU实施
classifySelect1: [], //选中项目经理名称数组
classifySelect2: null, //选中的资源归属信息
classifySelect3: null, //选中的项目级别信息
classifySelect4: null, //选中的培训分类信息
rangevalue: [], //项目时间
currentPage: 1, //当前页
tableDataTotal: -1, //模版列表总数
@@ -574,10 +442,21 @@ export default {
totalPages: 0, //总页数
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
});
const projectName = ref("");
//分类
//分类列表
const classifyList = ref([]);
//项目封面
const imageUrl = ref("");
// 项目级别
const classifyList3 = ref([
// { value: 1, label: "集团级" },
]);
// 培训分类
const classifyList4 = ref([
// { value: 1, label: "集团级" },
]);
//获取分类、封面图、项目级别、培训分类-----------字典配置-------------------------------
const getDictList = (param) => {
let obj = {
pageNo: 1,
@@ -595,11 +474,15 @@ export default {
if (param === "projectPic") {
if (res.data.data.rows.length > 0) {
imageUrl.value = res.data.data.rows[0].dictValue;
picUrl = res.data.data.rows[0].dictValue;
}
}
if (param === "projectLevel") {
classifyList3.value = res.data.data.rows;
}
if (param === "projectSys") {
classifyList4.value = res.data.data.rows;
}
}
})
.catch((err) => {
@@ -609,11 +492,164 @@ export default {
getDictList("projectClass");
getDictList("projectPic");
getDictList("projectLevel");
getDictList("projectSys");
//获取分类、封面图、项目级别、培训分类---------------字典配置---------------------------
let projectType = "";
const isEdit = ref(false);
let peojectID = ""; //项目id
console.log("store.state.orgtreeList", store.state.orgtreeList);
const editProject = () => {
if (routers.query.projectId) {
storage.set("projectAddId", routers.query.projectId);
isEdit.value = true;
peojectID = routers.query.projectId;
// 需要编辑
api
.getProjectDetail({ projectId: routers.query.projectId })
.then((res) => {
if (res.status == 200 && res.data.code == 200) {
let info = res.data.data.projectInfo;
console.log(
"classifyList.value.find(item=>item.dictCode===info.category)",
classifyList.value.find((item) => {
if (item.dictCode == 11) {
return item.dictName;
}
// return item.dictName;
}),
classifyList.value,
info.category
);
console.log(info);
// projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 *
projectName.value = info.name; //项目名称
// state.classifySelect =classifyList.value.find(item=>item.dictCode===info.category) ; // info.category 项目分类
state.projectType = 1; //分类选择的id
imageUrl.value = info.picUrl; //封面图
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD"); //开始时间
let end = toDate(info.endTime / 1000, "YYYY/MM/DD"); //结束时间
state.rangevalue = [
dayjs(start, "YYYY/MM/DD"),
dayjs(end, "YYYY/MM/DD"),
];
let manageName = info.manager.split(","); //项目经理
let manageValue = info.managerId.split(","); //项目经理id数组
let optionsManage = [];
for (let i = 0; i < manageName.length; i++) {
let obj = {
label: manageName[i],
value: manageValue[i],
};
optionsManage.push(obj);
}
console.log(optionsManage);
state.classifySelect1 = optionsManage;
state.classifySelect2 =
classifyList2.value[info.sourceBelongId - 1];
remark.value = info.remark;
state.checked = info.boeFlag ? info.boeFlag : false;
state.classifySelect3 = classifyList3.value[info.level];
state.classifySelect4 = classifyList4.value[info.systemId - 1];
state.checked1 = info.boeFlag ? info.boeFlag : false;
// fileList1.value = info.attach.split(",");
picUrl = info.picUrl;
beginTime = Number(info.beginTime / 1000);
endTime = Number(info.endTime / 1000);
manager = info.manager;
managerId = info.managerId;
sourceBelongIdC = Number(info.sourceBelongId);
courseSyncFlag = info.courseSyncFlag;
levels = info.level;
systemid = info.systemId;
boeFlag = info.boeFlag;
}
})
.catch((err) => {
console.log(err);
});
} else {
if (storage.get("projectAddId")) {
isEdit.value = true;
peojectID = storage.get("projectAddId");
// 需要编辑
api
.getProjectDetail({ projectId: storage.get("projectAddId") })
.then((res) => {
if (res.status == 200 && res.data.code == 200) {
let info = res.data.data.projectInfo;
console.log("我是从本地存储获取的id", info);
projectName.value = info.name;
state.classifySelect = classifyList.value[1]; // info.category 分类选择的信息
state.projectType = 1; //分类选择的id
imageUrl.value = info.picUrl;
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
let end = toDate(info.endTime / 1000, "YYYY/MM/DD");
state.rangevalue = [
dayjs(start, "YYYY/MM/DD"),
dayjs(end, "YYYY/MM/DD"),
];
let manageName = info.manager.split(",");
let manageValue = info.managerId.split(",");
let optionsManage = [];
for (let i = 0; i < manageName.length; i++) {
let obj = {
label: manageName[i],
value: manageValue[i],
};
optionsManage.push(obj);
}
console.log(optionsManage);
state.classifySelect1 = optionsManage;
state.classifySelect2 =
classifyList2.value[info.sourceBelongId - 1];
remark.value = info.remark;
state.checked = info.boeFlag ? info.boeFlag : false;
state.classifySelect3 = classifyList3.value[info.level];
state.classifySelect4 = classifyList4.value[info.systemId - 1];
state.checked1 = info.boeFlag ? info.boeFlag : false;
picUrl = info.picUrl;
beginTime = Number(info.beginTime / 1000);
endTime = Number(info.endTime / 1000);
manager = info.manager;
managerId = info.managerId;
sourceBelongIdC = Number(info.sourceBelongId);
courseSyncFlag = info.courseSyncFlag;
levels = info.level;
systemid = info.systemId;
boeFlag = info.boeFlag;
}
})
.catch((err) => {
console.log(err);
});
}
}
};
editProject();
const backPage = () => {
storage.remove("projectAddId");
setTimeout(() => {
router.push({
path: "/projectmanage",
});
}, 400);
};
const projectName = ref(""); //项目名称
//选择分类
const classificationChange = (value) => {
console.log(`selected ${value}`);
projectType = value;
state.projectType = value; //分类选择的id
};
function getBase64(img, callback) {
@@ -625,8 +661,8 @@ export default {
const fileList = ref([]);
const fileList1 = ref([]);
const loading = ref(false);
const imageUrl = ref("");
let picUrl = "";
let picUrl = ""; //项目封面
const handleChange = (info) => {
if (info.file.status === "uploading") {
@@ -727,7 +763,6 @@ export default {
beginTime = new Date(dateString[0]).getTime() / 1000;
endTime = new Date(dateString[1]).getTime() / 1000;
};
// 项目经理 后续接口调用
const classifyList1 = ref([
{ value: 1, label: "李俊国" },
@@ -735,6 +770,7 @@ export default {
{ value: 3, label: "刘孟君" },
]);
//选择处理项目经理
let manager = "";
let managerId = "";
const classificationChange1 = (key, options) => {
@@ -774,28 +810,14 @@ export default {
sourceBelongIdC = key;
};
// 项目级别
const classifyList3 = ref([
// { value: 1, label: "集团级" },
// { value: 2, label: "组织级" },
// { value: 3, label: "现地级" },
// { value: 4, label: "部门级" },
]);
//选择项目级别
let levels = "";
const classificationChange3 = (key) => {
console.log(`selected ${key}`, classifyList3);
levels = key;
};
// 培训分类
const classifyList4 = ref([
{ value: 1, label: "集团级" },
{ value: 2, label: "组织级" },
{ value: 3, label: "现地级" },
{ value: 4, label: "部门级" },
]);
//选择培训分类
let systemid = "";
const classificationChange4 = (key) => {
console.log(`selected ${key}`, classifyList4);
@@ -824,7 +846,9 @@ export default {
console.log(info);
// projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 *
projectName.value = info.name;
state.classifySelect = classifyList.value[1]; // info.category
state.classifySelect = classifyList.value[1]; // info.category 分类选择的信息
state.projectType = 1; //分类选择的id
imageUrl.value = info.picUrl;
let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
@@ -855,7 +879,6 @@ export default {
state.checked1 = info.boeFlag ? info.boeFlag : false;
// fileList1.value = info.attach.split(",");
projectType = 1;
picUrl = info.picUrl;
beginTime = Number(info.beginTime / 1000);
endTime = Number(info.endTime / 1000);
@@ -924,19 +947,22 @@ export default {
// 项目说明
const remark = ref("");
//同步学习记录------------------------------------
let courseSyncFlag = 0;
const changeChecked = () => {
console.log(state.checked);
state.checked ? (state.checked = false) : (state.checked = true);
courseSyncFlag = state.checked ? 1 : 0;
};
//同步学习记录------------------------------------
//BOEU实施--------------------------------------
let boeFlag = 0;
const changeChecked1 = () => {
console.log(state.checked1);
state.checked1 ? (state.checked1 = false) : (state.checked1 = true);
boeFlag = state.checked1 ? 1 : 0;
};
//BOEU实施--------------------------------------
const removeFile = (file) => {
const index = fileList1.value.indexOf(file);
@@ -980,7 +1006,7 @@ export default {
let obj = {
projectId: Number(peojectID),
name: projectName["value"],
category: projectType,
category: state.projectType, //分类选择的id
picUrl: picUrl,
beginTime: beginTime,
endTime: endTime,
@@ -1037,7 +1063,7 @@ export default {
} else {
let obj = {
name: projectName["value"],
category: projectType,
category: state.projectType, //分类选择的id
picUrl: picUrl,
beginTime: beginTime,
endTime: endTime,

View File

@@ -2047,13 +2047,16 @@ export default {
customRender: (value) => {
return (
<div>
{value.record.status == 0
{value.record.status == 0 ||
value.record.status == 1 ||
value.record.status == 2 ||
value.record.status == -2
? "草稿"
: value.record.status == 1 &&
: value.record.status == 3 &&
Number(value.record.beginTime) <
Math.ceil(new Date().getTime() / 1000)
? "进行中"
: value.record.status == 1 &&
: value.record.status == 3 &&
Number(value.record.beginTime) >
Math.ceil(new Date().getTime() / 1000) &&
value.record.type !== 1 &&
@@ -2074,6 +2077,36 @@ export default {
width: 100,
align: "center",
},
{
title: "是否审核",
dataIndex: "status",
// width: "30%",
key: "status",
width: 100,
align: "center",
customRender: (value) => {
{
console.log("获取项目", value);
}
return (
<div>
{value.record.type !== 3
? "-"
: value.record.status == 0
? "未审核"
: value.record.status == 1
? "审核中"
: value.record.status == 2 ||
value.record.status == 3 ||
value.record.status == -1
? "已审核"
: value.record.status == -2
? "未通过"
: "-"}
</div>
);
},
},
{
title: "创建时间",
dataIndex: "createTime",
@@ -2094,7 +2127,10 @@ export default {
customRender: (value) => {
// console.log("value", value.record.type, value.record.status);
return value.record.type === 1 ? (
value.record.status === 0 ? (
value.record.status === 0 ||
value.record.status === 1 ||
value.record.status === 2 ||
value.record.status === -2 ? (
<div class="operation">
<span
onClick={() => {
@@ -2214,7 +2250,7 @@ export default {
</a-select>
</div>
</div>
) : value.record.status === 1 ? (
) : value.record.status === 3 ? (
<div class="operation">
<span class="operation1">查看</span>
<div class="tableSelect">
@@ -2404,7 +2440,10 @@ export default {
<div></div>
)
) : value.record.type === 2 ? (
value.record.status === 0 ? (
value.record.status === 0 ||
value.record.status === 1 ||
value.record.status === 2 ||
value.record.status === -2 ? (
<div class="operation">
<span
onClick={() => {
@@ -2515,7 +2554,7 @@ export default {
</a-select>
</div>
</div>
) : value.record.status === 1 ? (
) : value.record.status === 3 ? (
<div class="operation">
<span class="operation1">查看</span>
<div class="tableSelect">
@@ -2812,7 +2851,23 @@ export default {
</a-select-option>
</a-select>
</div>
{value.record.status === 0 ? (
{value.record.status === 0 || value.record.status === -2 ? (
<span
onClick={() => {}}
style="cursor:pointer"
class="operation3"
>
提交审核
</span>
) : value.record.status === 1 ? (
<span
onClick={() => {}}
style="cursor:pointer"
class="operation3"
>
撤回审核
</span>
) : value.record.status === 2 ? (
<span
onClick={() => {
console.log("value.record", value.record);

View File

@@ -794,7 +794,7 @@
<div class="line"></div>
<div class="search">
<div class="left">
<div class="name">
<!-- <div class="name">
<div class="text">姓名</div>
<a-input
v-model:value="valueName"
@@ -806,7 +806,7 @@
margin-left: 5px;
"
/>
</div>
</div> -->
<div class="time">
<div class="text">选择时间</div>
<a-range-picker
@@ -864,7 +864,7 @@
<div class="rank">
<div class="rankhead">
<div class="inhead">
<div class="left">分排行 Top10</div>
<div class="left">分排行 Top10</div>
<div class="right">
<a-select
v-model:value="valuestu3"
@@ -889,7 +889,7 @@
<div class="rank">
<div class="rankhead">
<div class="inhead">
<div class="left">排行 Top10</div>
<div class="left">排行 Top10</div>
<div class="right">
<a-select
v-model:value="valuestu4"
@@ -1766,16 +1766,25 @@ export default {
// projectId:"", //项目任务id
projectTaskId: "", //项目任务任务id
//进度排行学员
rankjindu: [{ value: "学员", label: "学员" }],
rankjindu: [
{ value: "学员", label: "学员" },
{ value: "小组", label: "小组" },
],
valuestu1: "学员",
//进度排行阶段
rankjieduan: [{ value: "第一阶段", label: "第一阶段" }],
valuestu2: "第一阶段",
//分排行
rankxuefen: [{ value: "学员", label: "学员" }],
//分排行
rankxuefen: [
{ value: "学员", label: "学员" },
{ value: "小组", label: "小组" },
],
valuestu3: "学员",
//学排行
rankxueshi: [{ value: "学员", label: "学员" }],
//学排行
rankxueshi: [
{ value: "学员", label: "学员" },
{ value: "小组", label: "小组" },
],
valuestu4: "学员",
visible: false, //时间管理
FaceVisivle: false, //面授管理
@@ -1962,53 +1971,53 @@ export default {
{
rank: "1",
name: "哈哈",
jd: "80%",
jd: "80",
},
{
rank: "2",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "3",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "4",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "5",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "6",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "7",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "8",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "9",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "10",
name: "哈哈",
jd: "70%",
jd: "7",
},
],
xuefentablecolumns: [
@@ -2056,7 +2065,7 @@ export default {
},
{
title: "进度",
title: "积分",
dataIndex: "jd",
key: "jd",
width: 50,
@@ -2064,58 +2073,58 @@ export default {
className: "h",
},
],
//学排行表
//学排行表
xueshitabledata: [
{
rank: "1",
name: "哈哈",
jd: "80%",
jd: "8",
},
{
rank: "2",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "3",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "4",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "5",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "6",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "7",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "8",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "9",
name: "哈哈",
jd: "70%",
jd: "70",
},
{
rank: "10",
name: "哈哈",
jd: "70%",
jd: "70",
},
],
xueshitablecolumns: [
@@ -2163,7 +2172,7 @@ export default {
},
{
title: "进度",
title: "时长",
dataIndex: "jd",
key: "jd",
width: 50,