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

View File

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

View File

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

View File

@@ -6,7 +6,7 @@
width="85%" width="85%"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
> >
<div class="drawerMain" id="ownpower"> <div class="drawerMain" id="ProjOwnership">
<div class="header"> <div class="header">
<div class="headerTitle">归属权</div> <div class="headerTitle">归属权</div>
<img <img
@@ -101,6 +101,7 @@
columnWidth: 20, columnWidth: 20,
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
onChange: onSelectChange, onChange: onSelectChange,
type: 'radio',
}" }"
/> />
<div class="pa"> <div class="pa">
@@ -121,80 +122,30 @@
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
</div> </div>
</div> </div>
<div class="right"> <div class="right">
<div class="onerow"> <div class="onerow">
<div class="onleft"> <div class="onleft">
<div class="already">已选</div> <div
<!-- <div class="count">6</div> style="
<div class="peo"></div> --> display: flex;
</div> align-items: center;
<div class="clbox" @click="deleteAll"> margin-bottom: 20px;
<div class="colose"></div> flex-wrap: wrap;
<span class="allclear">全部清除</span> "
</div> >
</div> <div class="already">当前归属</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 class="chose" v-for="item in choosepeople" :key="item.key"> <div class="chose" v-for="item in choosepeople" :key="item.key">
<div>{{ item.name }}</div> <div>{{ item.name }}</div>
<div class="ch" @click="deleteChoosePeople(item)"></div>
</div> </div>
</div> </div>
</div> </div>
<div <div class="clbox">
class="chose" <span class="allclear">转移归属权</span>
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> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="btnn"> <div class="btnn">
@@ -202,8 +153,6 @@
<button class="btn2">确定</button> <button class="btn2">确定</button>
</div> </div>
</div> </div>
</a-drawer> </a-drawer>
</template> </template>
@@ -567,7 +516,6 @@ export default {
}, },
], ],
//快速选人------------------------------------- //快速选人-------------------------------------
valueSelectboe: null, //快速选人的选择组织 valueSelectboe: null, //快速选人的选择组织
choosepeople: [], //总的数组 choosepeople: [], //总的数组
@@ -576,14 +524,12 @@ export default {
showHidden: false, //是否显示收回 showHidden: false, //是否显示收回
selectedRowKeys: [], //表格选中的key selectedRowKeys: [], //表格选中的key
//快速选人------------------------------------- //快速选人-------------------------------------
}); });
const closeDrawer = () => { const closeDrawer = () => {
state.activeKey = "1"; state.activeKey = "1";
ctx.emit("update:ownpowervisible", false); ctx.emit("update:ownpowervisible", false);
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state", bool); console.log("state", bool);
}; };
@@ -690,8 +636,6 @@ export default {
// 结束 快速选人------------------------------------------------------------------ // 结束 快速选人------------------------------------------------------------------
//全部清除 //全部清除
const deleteAll = () => { const deleteAll = () => {
//快速选人------------------------------------- //快速选人-------------------------------------
@@ -701,10 +645,9 @@ export default {
state.showHidden = false; //是否显示收回 state.showHidden = false; //是否显示收回
state.selectedRowKeys = []; //表格选中的key state.selectedRowKeys = []; //表格选中的key
//快速选人------------------------------------- //快速选人-------------------------------------
}; };
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange, afterVisibleChange,
closeDrawer, closeDrawer,
onSelectChange, onSelectChange,
@@ -715,10 +658,7 @@ export default {
morePeopleShow, morePeopleShow,
morePeopleHidden, morePeopleHidden,
deleteAll, deleteAll,
}; };
}, },
}; };
@@ -726,7 +666,7 @@ export default {
<style lang="scss"> <style lang="scss">
.ownpower { .ownpower {
.ant-drawer-content-wrapper { .ant-drawer-content-wrapper {
max-width: 1300px !important; max-width: 1300px !important;
} }
.drawerMain { .drawerMain {
@@ -1166,7 +1106,7 @@ export default {
} }
} }
.right { .right {
width: 320px; width: 340px;
flex-shrink: 0; flex-shrink: 0;
overflow-y: auto; overflow-y: auto;
.onerow { .onerow {
@@ -1178,11 +1118,15 @@ export default {
.onleft { .onleft {
display: flex; display: flex;
text-align: center; text-align: center;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
margin-left: 32px;
.already { .already {
color: rgba(51, 51, 51, 1); color: rgba(51, 51, 51, 1);
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
margin-left: 32px;
white-space: nowrap; white-space: nowrap;
// margin-bottom: 20px; // margin-bottom: 20px;
} }
@@ -1196,9 +1140,35 @@ export default {
font-size: 16px; font-size: 16px;
font-weight: 500; 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 { .clbox {
margin-left: 30px; margin-left: 30px;
margin-bottom: 20px;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@@ -1250,30 +1220,6 @@ export default {
margin-left: 32px; margin-left: 32px;
min-height: 100px; min-height: 100px;
// overflow: hidden; // 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%" width="85%"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
> >
<div class="drawerMain" id="Ownership"> <div class="drawerMain" id="ProjOwnership">
<div class="header"> <div class="header">
<div class="headerTitle">归属权</div> <div class="headerTitle">归属权</div>
<img <img
@@ -102,6 +102,7 @@
columnWidth: 20, columnWidth: 20,
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
onChange: onSelectChange, onChange: onSelectChange,
type: 'radio',
}" }"
/> />
<div class="pa"> <div class="pa">
@@ -128,70 +129,22 @@
<div class="right"> <div class="right">
<div class="onerow"> <div class="onerow">
<div class="onleft"> <div class="onleft">
<div class="already">已选</div> <div
<!-- <div class="count">6</div> style="
<div class="peo"></div> --> display: flex;
</div> align-items: center;
<div class="clbox" @click="deleteAll"> margin-bottom: 20px;
<div class="colose"></div> flex-wrap: wrap;
<span class="allclear">全部清除</span> "
</div> >
</div> <div class="already">当前归属</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 class="chose" v-for="item in choosepeople" :key="item.key"> <div class="chose" v-for="item in choosepeople" :key="item.key">
<div>{{ item.name }}</div> <div>{{ item.name }}</div>
<div class="ch" @click="deleteChoosePeople(item)"></div>
</div> </div>
</div> </div>
</div> </div>
<div <div class="clbox">
class="chose" <span class="allclear">转移归属权</span>
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> </div>
</div> </div>
</div> </div>
@@ -201,7 +154,6 @@
<button class="btn2">确定</button> <button class="btn2">确定</button>
</div> </div>
</div> </div>
<!-- 确认添加部门弹窗 --> <!-- 确认添加部门弹窗 -->
<a-modal <a-modal
v-model:visible="showOrgModal" v-model:visible="showOrgModal"
@@ -272,7 +224,7 @@ export default {
nameaddd: "", nameaddd: "",
com: "", com: "",
//组织树 //组织树
treeData: [ treeData: [
{ {
title: "京东方", title: "京东方",
@@ -665,31 +617,50 @@ export default {
//根据右侧快速选人高度,判断是否显示更多 //根据右侧快速选人高度,判断是否显示更多
const selectedsHeight = () => { const selectedsHeight = () => {
let resize = elementResizeDetectorMaker(); let resize = elementResizeDetectorMaker();
resize.listenTo(document.getElementById('Ownership').querySelector("#selecteds"), function (ele) { resize.listenTo(
console.log("ele", ele.offsetHeight); document.getElementById("Ownership").querySelector("#selecteds"),
if (ele.offsetHeight > 160 && !state.showHidden) { function (ele) {
state.showMore = true; console.log("ele", ele.offsetHeight);
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden"; if (ele.offsetHeight > 160 && !state.showHidden) {
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px"; state.showMore = true;
} else if (ele.offsetHeight < 160) { document
state.showMore = false; .getElementById("Ownership")
state.showHidden = false; .querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden"; document
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px"; .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 = () => { const morePeopleShow = () => {
state.showMore = false; state.showMore = false;
state.showHidden = true; state.showHidden = true;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = ""; document
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = ""; .getElementById("Ownership")
.querySelector("#selectedsBox").style.overflow = "";
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.height = "";
}; };
const morePeopleHidden = () => { const morePeopleHidden = () => {
state.showMore = true; state.showMore = true;
state.showHidden = false; state.showHidden = false;
document.getElementById('Ownership').querySelector("#selectedsBox").style.overflow = "hidden"; document
document.getElementById('Ownership').querySelector("#selectedsBox").style.height = "160px"; .getElementById("Ownership")
.querySelector("#selectedsBox").style.overflow = "hidden";
document
.getElementById("Ownership")
.querySelector("#selectedsBox").style.height = "160px";
}; };
// 结束 快速选人------------------------------------------------------------------ // 结束 快速选人------------------------------------------------------------------
@@ -1166,7 +1137,7 @@ export default {
} }
} }
.right { .right {
width: 320px; width: 340px;
flex-shrink: 0; flex-shrink: 0;
overflow-y: auto; overflow-y: auto;
.onerow { .onerow {
@@ -1178,11 +1149,15 @@ export default {
.onleft { .onleft {
display: flex; display: flex;
text-align: center; text-align: center;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
margin-left: 32px;
.already { .already {
color: rgba(51, 51, 51, 1); color: rgba(51, 51, 51, 1);
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
margin-left: 32px;
white-space: nowrap; white-space: nowrap;
// margin-bottom: 20px; // margin-bottom: 20px;
} }
@@ -1196,9 +1171,35 @@ export default {
font-size: 16px; font-size: 16px;
font-weight: 500; 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 { .clbox {
margin-left: 30px; margin-left: 30px;
margin-bottom: 20px;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@@ -1250,30 +1251,6 @@ export default {
margin-left: 32px; margin-left: 32px;
min-height: 100px; min-height: 100px;
// overflow: hidden; // 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" class="treeMain"
:style="{ height: screenHeight - 400 + 'px' }" :style="{ height: screenHeight - 400 + 'px' }"
dropdownClassName="changetreedropdownboe" dropdownClassName="changetreedropdownboe"
defaultExpandAll default-expand-all
:dropdown-style="{ :dropdown-style="{
maxHeight: '600px', maxHeight: '600px',
}" }"
placeholder="BOE组织树" placeholder="BOE组织树"
allow-clear allow-clear
tree-default-expand-all
:tree-data="treeData" :tree-data="treeData"
@select="departmentSelect" @select="departmentSelect"
v-model:selectedKeys="selectedKeys" v-model:selectedKeys="selectedKeys"
v-model:expandedKeys="openKeys"
> >
<template #suffixIcon></template> <template #suffixIcon></template>
</a-tree> </a-tree>
@@ -101,6 +101,7 @@
columnWidth: 20, columnWidth: 20,
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
onChange: onSelectChange, onChange: onSelectChange,
type: 'radio',
}" }"
/> />
<div class="pa"> <div class="pa">
@@ -127,70 +128,22 @@
<div class="right"> <div class="right">
<div class="onerow"> <div class="onerow">
<div class="onleft"> <div class="onleft">
<div class="already">已选</div> <div
<!-- <div class="count">6</div> style="
<div class="peo"></div> --> display: flex;
</div> align-items: center;
<div class="clbox" @click="deleteAll"> margin-bottom: 20px;
<div class="colose"></div> flex-wrap: wrap;
<span class="allclear">全部清除</span> "
</div> >
</div> <div class="already">当前归属</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 class="chose" v-for="item in choosepeople" :key="item.key"> <div class="chose" v-for="item in choosepeople" :key="item.key">
<div>{{ item.name }}</div> <div>{{ item.name }}</div>
<div class="ch" @click="deleteChoosePeople(item)"></div>
</div> </div>
</div> </div>
</div> </div>
<div <div class="clbox">
class="chose" <span class="allclear">转移归属权</span>
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> </div>
</div> </div>
</div> </div>
@@ -238,6 +191,7 @@
import { reactive, toRefs, onMounted, onUnmounted } from "vue"; import { reactive, toRefs, onMounted, onUnmounted } from "vue";
import elementResizeDetectorMaker from "element-resize-detector"; import elementResizeDetectorMaker from "element-resize-detector";
// import { message } from "ant-design-vue"; // import { message } from "ant-design-vue";
import * as api from "../../api/index1";
export default { export default {
name: "ProjOwnerShip", name: "ProjOwnerShip",
props: { props: {
@@ -271,120 +225,148 @@ export default {
nameadd: "", nameadd: "",
nameaddd: "", nameaddd: "",
com: "", com: "",
openKeys: [2, 13, 32],
//组织树 //组织树
treeData: [ treeData: [
{ {
key: 1,
title: "京东方", title: "京东方",
value: "京东方", value: "京东方",
children: [ children: [
{ {
key: 2,
title: "产研部", title: "产研部",
value: "产研部", value: "产研部",
children: [ children: [
{ {
key: 3,
title: "产品部", title: "产品部",
value: "产品部", value: "产品部",
}, },
{ {
key: 4,
title: "研究部", title: "研究部",
value: "研究部", value: "研究部",
}, },
{ {
key: 5,
title: "研究部2", title: "研究部2",
value: "研究部2", value: "研究部2",
}, },
{ {
key: 6,
title: "研究3", title: "研究3",
value: "研究3", value: "研究3",
}, },
{ {
key: 7,
title: "研究4", title: "研究4",
value: "研究4", value: "研究4",
}, },
{ {
key: 8,
title: "研究部5", title: "研究部5",
value: "研究部5", value: "研究部5",
}, },
{ {
key: 9,
title: "研究部6", title: "研究部6",
value: "研究部6", value: "研究部6",
}, },
{ {
key: 10,
title: "研究部7", title: "研究部7",
value: "研究部7", value: "研究部7",
}, },
{ {
key: 11,
title: "研究部8", title: "研究部8",
value: "研究部8", value: "研究部8",
}, },
{ {
key: 12,
title: "研究部9", title: "研究部9",
value: "研究部9", value: "研究部9",
}, },
], ],
}, },
{ {
key: 13,
title: "二级标题", title: "二级标题",
value: "二级标题", value: "二级标题",
children: [ children: [
{ {
key: 14,
title: "三级标题", title: "三级标题",
value: "三级标题", value: "三级标题",
children: [ children: [
{ {
key: 15,
title: "四级标题", title: "四级标题",
value: "四级标题", value: "四级标题",
children: [ children: [
{ {
key: 16,
title: "五级标题", title: "五级标题",
value: "五级标题", value: "五级标题",
children: [ children: [
{ {
key: 17,
title: "六级标题", title: "六级标题",
value: "六级标题", value: "六级标题",
children: [ children: [
{ {
key: 18,
title: "七级标题", title: "七级标题",
value: "七级标题", value: "七级标题",
children: [ children: [
{ {
key: 19,
title: "八级标题", title: "八级标题",
value: "八级标题", value: "八级标题",
children: [ children: [
{ {
key: 20,
title: "九级标题", title: "九级标题",
value: "九级标题", value: "九级标题",
children: [ children: [
{ {
key: 21,
title: "十级标题", title: "十级标题",
value: "十级标题", value: "十级标题",
children: [ children: [
{ {
key: 22,
title: "十一级标题", title: "十一级标题",
value: "十一级标题", value: "十一级标题",
children: [ children: [
{ {
key: 23,
title: "十二级标题", title: "十二级标题",
value: "十二级标题", value: "十二级标题",
children: [ children: [
{ {
key: 24,
title: title:
"十三级标题十三级标题十三级标题十三级标题", "十三级标题十三级标题十三级标题十三级标题",
value: "十三级标题", value: "十三级标题",
children: [ children: [
{ {
key: 25,
title: title:
"十四级标题", "十四级标题",
value: value:
"十四级标题", "十四级标题",
children: [ children: [
{ {
key: 26,
title: title:
"十五级标题", "十五级标题",
value: value:
"十五级标题", "十五级标题",
children: [ children: [
{ {
key: 27,
title: title:
"十六级标题", "十六级标题",
value: value:
@@ -392,6 +374,7 @@ export default {
children: children:
[ [
{ {
key: 28,
title: title:
"十七级标题", "十七级标题",
value: value:
@@ -399,6 +382,7 @@ export default {
children: children:
[ [
{ {
key: 29,
title: title:
"十八级标题", "十八级标题",
value: value:
@@ -406,6 +390,7 @@ export default {
children: children:
[ [
{ {
key: 30,
title: title:
"十九级标题", "十九级标题",
value: value:
@@ -413,6 +398,7 @@ export default {
children: children:
[ [
{ {
key: 31,
title: title:
"二十级标题二十级标题", "二十级标题二十级标题",
value: value:
@@ -455,14 +441,17 @@ export default {
], ],
}, },
{ {
key: 32,
title: "人力资源部", title: "人力资源部",
value: "人力资源部", value: "人力资源部",
children: [ children: [
{ {
key: 33,
title: "人事部", title: "人事部",
value: "人事部", value: "人事部",
}, },
{ {
key: 34,
title: "行政部", title: "行政部",
value: "行政部", value: "行政部",
}, },
@@ -602,6 +591,26 @@ export default {
selectedRowKeys: [], //表格选中的key 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 = () => { const closeDrawer = () => {
state.activeKey = "1"; state.activeKey = "1";
ctx.emit("update:ProjOwnervisible", false); ctx.emit("update:ProjOwnervisible", false);
@@ -625,6 +634,8 @@ export default {
window.addEventListener("resize", getClientHeight, false); window.addEventListener("resize", getClientHeight, false);
// window.addEventListener("resize", getClientHeightSelecteds, false); // window.addEventListener("resize", getClientHeightSelecteds, false);
// judgeUrl(); // judgeUrl();
getOrgTree();
}); });
onUnmounted(() => { onUnmounted(() => {
window.removeEventListener("resize", getClientHeight, false); window.removeEventListener("resize", getClientHeight, false);
@@ -665,31 +676,50 @@ export default {
//根据右侧快速选人高度,判断是否显示更多 //根据右侧快速选人高度,判断是否显示更多
const selectedsHeight = () => { const selectedsHeight = () => {
let resize = elementResizeDetectorMaker(); let resize = elementResizeDetectorMaker();
resize.listenTo(document.getElementById('ProjOwnership').querySelector("#selecteds"), function (ele) { resize.listenTo(
console.log("ele", ele.offsetHeight); document.getElementById("ProjOwnership").querySelector("#selecteds"),
if (ele.offsetHeight > 160 && !state.showHidden) { function (ele) {
state.showMore = true; console.log("ele", ele.offsetHeight);
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden"; if (ele.offsetHeight > 160 && !state.showHidden) {
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px"; state.showMore = true;
} else if (ele.offsetHeight < 160) { document
state.showMore = false; .getElementById("ProjOwnership")
state.showHidden = false; .querySelector("#selectedsBox").style.overflow = "hidden";
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden"; document
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px"; .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 = () => { const morePeopleShow = () => {
state.showMore = false; state.showMore = false;
state.showHidden = true; state.showHidden = true;
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = ""; document
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = ""; .getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.overflow = "";
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.height = "";
}; };
const morePeopleHidden = () => { const morePeopleHidden = () => {
state.showMore = true; state.showMore = true;
state.showHidden = false; state.showHidden = false;
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.overflow = "hidden"; document
document.getElementById('ProjOwnership').querySelector("#selectedsBox").style.height = "160px"; .getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.overflow = "hidden";
document
.getElementById("ProjOwnership")
.querySelector("#selectedsBox").style.height = "160px";
}; };
// 结束 快速选人------------------------------------------------------------------ // 结束 快速选人------------------------------------------------------------------
@@ -704,6 +734,10 @@ export default {
state.selectedRowKeys = []; //表格选中的key state.selectedRowKeys = []; //表格选中的key
//快速选人------------------------------------- //快速选人-------------------------------------
}; };
const expandTree = (e) => {
console.log("展开", e);
};
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange, afterVisibleChange,
@@ -717,6 +751,7 @@ export default {
morePeopleHidden, morePeopleHidden,
deleteAll, deleteAll,
expandTree,
}; };
}, },
}; };
@@ -1164,7 +1199,7 @@ export default {
} }
} }
.right { .right {
width: 320px; width: 340px;
flex-shrink: 0; flex-shrink: 0;
overflow-y: auto; overflow-y: auto;
.onerow { .onerow {
@@ -1176,11 +1211,15 @@ export default {
.onleft { .onleft {
display: flex; display: flex;
text-align: center; text-align: center;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
margin-left: 32px;
.already { .already {
color: rgba(51, 51, 51, 1); color: rgba(51, 51, 51, 1);
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
margin-left: 32px;
white-space: nowrap; white-space: nowrap;
// margin-bottom: 20px; // margin-bottom: 20px;
} }
@@ -1194,9 +1233,35 @@ export default {
font-size: 16px; font-size: 16px;
font-weight: 500; 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 { .clbox {
margin-left: 30px; margin-left: 30px;
margin-bottom: 20px;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@@ -1248,30 +1313,6 @@ export default {
margin-left: 32px; margin-left: 32px;
min-height: 100px; min-height: 100px;
// overflow: hidden; // 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 * @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-09 09:26:26 * @Date: 2022-11-09 09:26:26
* @LastEditors: lixg lixg@dongwu-inc.com * @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 * @FilePath: /fe-manage/src/views/courselibrary/CourseManage.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
--> -->
<!-- 课件管理页面 --> <!-- 课件管理页面 -->
<template> <template>
<div class="courseManage"> <div class="courseManage">
<iframe <iframe
id="iframe" id="iframe"
style="width:100%l;height:100%" style="width: 100%l; height: 100%"
src="https://u-pre.boe.com/pc/iframe/course/coursewares" src="https://u-pre.boe.com/pc/iframe/course/coursewares"
name="myframe" name="myframe"
></iframe> sandbox="allow-forms allow-scripts allow-same-origin allow-popups"
></iframe>
</div> </div>
</template> </template>
<script> <script>
@@ -24,17 +25,14 @@ export default {
name: "CourseManage", name: "CourseManage",
setup() { setup() {
const state = reactive({ const state = reactive({});
});
onMounted(() => { onMounted(() => {
// console.log("执行"); // console.log("执行");
}); });
return { return {
...toRefs(state), ...toRefs(state),
}; };
}, },
}; };
@@ -45,6 +43,5 @@ export default {
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
</style> </style>

View File

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

View File

@@ -2047,13 +2047,16 @@ export default {
customRender: (value) => { customRender: (value) => {
return ( return (
<div> <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) < Number(value.record.beginTime) <
Math.ceil(new Date().getTime() / 1000) Math.ceil(new Date().getTime() / 1000)
? "进行中" ? "进行中"
: value.record.status == 1 && : value.record.status == 3 &&
Number(value.record.beginTime) > Number(value.record.beginTime) >
Math.ceil(new Date().getTime() / 1000) && Math.ceil(new Date().getTime() / 1000) &&
value.record.type !== 1 && value.record.type !== 1 &&
@@ -2074,6 +2077,36 @@ export default {
width: 100, width: 100,
align: "center", 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: "创建时间", title: "创建时间",
dataIndex: "createTime", dataIndex: "createTime",
@@ -2094,7 +2127,10 @@ export default {
customRender: (value) => { customRender: (value) => {
// console.log("value", value.record.type, value.record.status); // console.log("value", value.record.type, value.record.status);
return value.record.type === 1 ? ( 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"> <div class="operation">
<span <span
onClick={() => { onClick={() => {
@@ -2214,7 +2250,7 @@ export default {
</a-select> </a-select>
</div> </div>
</div> </div>
) : value.record.status === 1 ? ( ) : value.record.status === 3 ? (
<div class="operation"> <div class="operation">
<span class="operation1">查看</span> <span class="operation1">查看</span>
<div class="tableSelect"> <div class="tableSelect">
@@ -2404,7 +2440,10 @@ export default {
<div></div> <div></div>
) )
) : value.record.type === 2 ? ( ) : 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"> <div class="operation">
<span <span
onClick={() => { onClick={() => {
@@ -2515,7 +2554,7 @@ export default {
</a-select> </a-select>
</div> </div>
</div> </div>
) : value.record.status === 1 ? ( ) : value.record.status === 3 ? (
<div class="operation"> <div class="operation">
<span class="operation1">查看</span> <span class="operation1">查看</span>
<div class="tableSelect"> <div class="tableSelect">
@@ -2812,7 +2851,23 @@ export default {
</a-select-option> </a-select-option>
</a-select> </a-select>
</div> </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 <span
onClick={() => { onClick={() => {
console.log("value.record", value.record); console.log("value.record", value.record);

View File

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