mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-16 22:36:45 +08:00
Merge branch 'develop' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage into develop
This commit is contained in:
40
src/App.vue
40
src/App.vue
@@ -58,36 +58,41 @@ export default defineComponent({
|
|||||||
const currentRouteName = computed(() => route.name);
|
const currentRouteName = computed(() => route.name);
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
console.log(store)
|
console.log(store);
|
||||||
initDict('faceclassPic')
|
initDict("faceclassPic");
|
||||||
initDict('faceclassClass')
|
initDict("faceclassClass");
|
||||||
initDict('faceclassScene')
|
initDict("faceclassScene");
|
||||||
initDict('projectLevel')
|
initDict("projectLevel");
|
||||||
initDict('projectSys')
|
initDict("projectSys");
|
||||||
getOrgTree()
|
initDict("pathmapPic");
|
||||||
|
initDict('projectClass')
|
||||||
|
initDict('projectPic')
|
||||||
|
getOrgTree();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async function initDict(key) {
|
async function initDict(key) {
|
||||||
let list = localStorage.getItem(key)
|
let list = localStorage.getItem(key);
|
||||||
if (list) {
|
if (list) {
|
||||||
store.commit('SET_DICT', {key, data:JSON.parse(list)});
|
store.commit("SET_DICT", { key, data: JSON.parse(list) });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
list = await getDictList(key)
|
list = await getDictList(key);
|
||||||
localStorage.setItem(key, JSON.stringify(list));
|
localStorage.setItem(key, JSON.stringify(list));
|
||||||
store.commit('SET_DICT', {key, data:list});
|
store.commit("SET_DICT", { key, data: list });
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDictList = (param) => api1.getDict({
|
const getDictList = (param) =>
|
||||||
|
api1
|
||||||
|
.getDict({
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
setCode: param
|
setCode: param,
|
||||||
}).then((res) => res.data.data.rows)
|
})
|
||||||
|
.then((res) => res.data.data.rows);
|
||||||
|
|
||||||
//获取组织树
|
//获取组织树
|
||||||
const getOrgTree = () => {
|
const getOrgTree = () => {
|
||||||
const orgtreeList = localStorage.getItem("orgtreeList")
|
const orgtreeList = localStorage.getItem("orgtreeList");
|
||||||
if (orgtreeList) {
|
if (orgtreeList) {
|
||||||
store.commit("getOrgtreeList", JSON.parse(orgtreeList));
|
store.commit("getOrgtreeList", JSON.parse(orgtreeList));
|
||||||
return;
|
return;
|
||||||
@@ -98,7 +103,8 @@ export default defineComponent({
|
|||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
};
|
};
|
||||||
api.getOrgInfo(obj)
|
api
|
||||||
|
.getOrgInfo(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("组织树获取成功", res);
|
console.log("组织树获取成功", res);
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
|
|||||||
@@ -6,6 +6,9 @@ export const list = (obj) => http.post('/admin/offcourse/list', obj)
|
|||||||
//获取待审核项目列表
|
//获取待审核项目列表
|
||||||
export const projlist = (obj) => http.post('/admin/project/list', obj)
|
export const projlist = (obj) => http.post('/admin/project/list', obj)
|
||||||
|
|
||||||
|
//获取待审核项目列表
|
||||||
|
export const auditlist = (obj) => http.post('/admin/project/auditlist', obj)
|
||||||
|
|
||||||
//获取已审核项目列表
|
//获取已审核项目列表
|
||||||
export const listView = (obj) => http.post('/admin/project/listView', obj)
|
export const listView = (obj) => http.post('/admin/project/listView', obj)
|
||||||
|
|
||||||
|
|||||||
@@ -174,12 +174,12 @@
|
|||||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="qdqtbox">
|
<!-- <div class="qdqtbox">
|
||||||
<div class="qtbtn">
|
<div class="qtbtn">
|
||||||
<div class="btntext">签退</div>
|
<div class="btntext">签退</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="setbox">
|
<!-- <div class="setbox">
|
||||||
<div class="timerbox">
|
<div class="timerbox">
|
||||||
<span>结束前:</span>
|
<span>结束前:</span>
|
||||||
<a-input-number
|
<a-input-number
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
>分钟(提前签退则记为早退)</span
|
>分钟(提前签退则记为早退)</span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_item">
|
<div class="main_item">
|
||||||
@@ -209,12 +209,11 @@
|
|||||||
<a-radio-group v-model:value="radioV1">
|
<a-radio-group v-model:value="radioV1">
|
||||||
<a-radio v-model:checked="checked" :value="1" @click="cloradio1"
|
<a-radio v-model:checked="checked" :value="1" @click="cloradio1"
|
||||||
>仅签到
|
>仅签到
|
||||||
</a-radio
|
</a-radio>
|
||||||
>
|
<!-- <a-radio v-model:checked="checked" :value="2" @click="cloradio1"
|
||||||
<a-radio v-model:checked="checked" :value="2" @click="cloradio1"
|
|
||||||
>签到、签退全部完成
|
>签到、签退全部完成
|
||||||
</a-radio
|
</a-radio
|
||||||
>
|
> -->
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -338,7 +337,7 @@ export default {
|
|||||||
state.time = "";
|
state.time = "";
|
||||||
localStorage.setItem("stageId", props.chooseStageId);
|
localStorage.setItem("stageId", props.chooseStageId);
|
||||||
localStorage.setItem("chapterId", props.isactive);
|
localStorage.setItem("chapterId", props.isactive);
|
||||||
}
|
};
|
||||||
const queryActive = () => {
|
const queryActive = () => {
|
||||||
api
|
api
|
||||||
.getActivity(props.EditActiveId)
|
.getActivity(props.EditActiveId)
|
||||||
@@ -359,8 +358,7 @@ export default {
|
|||||||
dayjs(res.data.data.activityEndTime, "YYYY-MM-DD"),
|
dayjs(res.data.data.activityEndTime, "YYYY-MM-DD"),
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {});
|
||||||
});
|
|
||||||
};
|
};
|
||||||
const afterVisibleChange = (bool) => {
|
const afterVisibleChange = (bool) => {
|
||||||
if (bool && props.edit) {
|
if (bool && props.edit) {
|
||||||
@@ -424,8 +422,6 @@ export default {
|
|||||||
.catch(() => {
|
.catch(() => {
|
||||||
//message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
//message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//创建活动
|
//创建活动
|
||||||
|
|||||||
@@ -262,10 +262,10 @@
|
|||||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="qdqtbox">
|
<!-- <div class="qdqtbox">
|
||||||
<div class="qtbtn"><div class="btntext">签退</div></div>
|
<div class="qtbtn"><div class="btntext">签退</div></div>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="setbox">
|
<!-- <div class="setbox">
|
||||||
<div class="timerbox">
|
<div class="timerbox">
|
||||||
<span>结束前:</span>
|
<span>结束前:</span>
|
||||||
<a-input-number
|
<a-input-number
|
||||||
@@ -275,14 +275,16 @@
|
|||||||
style="
|
style="
|
||||||
width: 88px;
|
width: 88px;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
border-radius: 8px;overflow: hidden; "
|
border-radius: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
"
|
||||||
v-model:value="inputV8"
|
v-model:value="inputV8"
|
||||||
></a-input-number>
|
></a-input-number>
|
||||||
<span style="color: #999999; margin-left: 8px"
|
<span style="color: #999999; margin-left: 8px"
|
||||||
>分钟(提前签退则记为早退)</span
|
>分钟(提前签退则记为早退)</span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_item">
|
<div class="main_item">
|
||||||
@@ -292,9 +294,9 @@
|
|||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-radio-group v-model:value="radioV1">
|
<a-radio-group v-model:value="radioV1">
|
||||||
<a-radio :value="1" @click="cloradio1">仅签到</a-radio>
|
<a-radio :value="1" @click="cloradio1">仅签到</a-radio>
|
||||||
<a-radio :value="2" @click="cloradio1"
|
<!-- <a-radio :value="2" @click="cloradio1"
|
||||||
>签到、签退全部完成</a-radio
|
>签到、签退全部完成</a-radio
|
||||||
>
|
> -->
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -305,7 +307,7 @@
|
|||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-checkbox
|
<a-checkbox
|
||||||
v-model:checked="switchC2"
|
v-model:checked="switchC2"
|
||||||
@onclick="(switchC2 = !switchC2)"
|
@onclick="switchC2 = !switchC2"
|
||||||
>学员请假后记为任务完成</a-checkbox
|
>学员请假后记为任务完成</a-checkbox
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,21 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-drawer
|
<a-drawer :visible="addprojvisible" class="drawerStyle addonlineDrawer" width="80%" title="添加在线" placement="right"
|
||||||
:visible="addprojvisible"
|
@after-visible-change="afterVisibleChange">
|
||||||
class="drawerStyle addonlineDrawer"
|
|
||||||
width="80%"
|
|
||||||
title="添加在线"
|
|
||||||
placement="right"
|
|
||||||
@after-visible-change="afterVisibleChange"
|
|
||||||
>
|
|
||||||
<div class="drawerMain">
|
<div class="drawerMain">
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<div v-if="edit" class="headerTitle">编辑项目</div>
|
<div v-if="edit" class="headerTitle">编辑项目</div>
|
||||||
<div v-else class="headerTitle">添加项目</div>
|
<div v-else class="headerTitle">添加项目</div>
|
||||||
<img
|
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
|
||||||
style="width: 29px; height: 29px; cursor: pointer"
|
@click="closeDrawer" />
|
||||||
src="../../assets/images/basicinfo/close.png"
|
|
||||||
@click="closeDrawer"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="contentMain">
|
<div class="contentMain">
|
||||||
<div class="main_items">
|
<div class="main_items">
|
||||||
@@ -23,31 +14,22 @@
|
|||||||
<div class="mii_ipt">
|
<div class="mii_ipt">
|
||||||
<div class="ipt_name">项目名称:</div>
|
<div class="ipt_name">项目名称:</div>
|
||||||
<div class="fi_input">
|
<div class="fi_input">
|
||||||
<a-input
|
<a-input v-model:value="inputV1" style="width: 240px; height: 40px; border-radius: 8px"
|
||||||
v-model:value="inputV1"
|
placeholder="请输入项目名称" />
|
||||||
style="width: 240px; height: 40px; border-radius: 8px"
|
|
||||||
placeholder="请输入项目名称"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mii_ipt">
|
<div class="mii_ipt">
|
||||||
<div class="ipt_name">项目经理:</div>
|
<div class="ipt_name">项目经理:</div>
|
||||||
<div class="fi_input">
|
<div class="fi_input">
|
||||||
<a-input
|
<a-input v-model:value="inputV2" style="width: 240px; height: 40px; border-radius: 8px"
|
||||||
v-model:value="inputV2"
|
placeholder="请输入项目经理" />
|
||||||
style="width: 240px; height: 40px; border-radius: 8px"
|
|
||||||
placeholder="请输入项目经理"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mii_ipt">
|
<div class="mii_ipt">
|
||||||
<div class="ipt_name">创建人:</div>
|
<div class="ipt_name">创建人:</div>
|
||||||
<div class="fi_input">
|
<div class="fi_input">
|
||||||
<a-input
|
<a-input v-model:value="inputV3" style="width: 240px; height: 40px; border-radius: 8px"
|
||||||
v-model:value="inputV3"
|
placeholder="请输入创建人" />
|
||||||
style="width: 240px; height: 40px; border-radius: 8px"
|
|
||||||
placeholder="请输入创建人"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -66,47 +48,27 @@
|
|||||||
<div class="mntc_left">
|
<div class="mntc_left">
|
||||||
<div class="notice_icon"></div>
|
<div class="notice_icon"></div>
|
||||||
<div v-if="selectedRows.length == 0">
|
<div v-if="selectedRows.length == 0">
|
||||||
<span class="title"
|
<span class="title">已选择
|
||||||
>已选择
|
|
||||||
<span class="data" style="color: #4ea6ff">{{ 0 }}</span>
|
<span class="data" style="color: #4ea6ff">{{ 0 }}</span>
|
||||||
条</span
|
条</span>
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div>
|
<div>
|
||||||
<span class="title"
|
<span class="title">已选择
|
||||||
>已选择
|
|
||||||
<span class="data" style="color: #4ea6ff">{{
|
<span class="data" style="color: #4ea6ff">{{
|
||||||
selectedRows.length
|
selectedRows.length
|
||||||
}}</span>
|
}}</span>
|
||||||
条 </span
|
条 </span>
|
||||||
>
|
<span class="title">名称:
|
||||||
<span class="title"
|
<span class="data" style="color: #4ea6ff; margin-right: 15px">{{ selectedRows[0].name }}</span>
|
||||||
>名称:
|
|
||||||
<span
|
|
||||||
class="data"
|
|
||||||
style="color: #4ea6ff; margin-right: 15px"
|
|
||||||
>{{ selectedRows[0].name }}</span
|
|
||||||
>
|
|
||||||
</span>
|
</span>
|
||||||
<span class="title"
|
<span class="title">项目经理:
|
||||||
>项目经理:
|
<span class="data" style="color: #4ea6ff; margin-right: 15px">{{ selectedRows[0].manager }}</span>
|
||||||
<span
|
|
||||||
class="data"
|
|
||||||
style="color: #4ea6ff; margin-right: 15px"
|
|
||||||
>{{ selectedRows[0].manager }}</span
|
|
||||||
>
|
|
||||||
</span>
|
</span>
|
||||||
<span class="title"
|
<span class="title">创建人:
|
||||||
>创建人:
|
<span class="data" style="color: #4ea6ff; margin-right: 15px">{{ selectedRows[0].creater }}</span>
|
||||||
<span
|
|
||||||
class="data"
|
|
||||||
style="color: #4ea6ff; margin-right: 15px"
|
|
||||||
>{{ selectedRows[0].creater }}</span
|
|
||||||
>
|
|
||||||
</span>
|
</span>
|
||||||
<span class="title"
|
<span class="title">创建时间:
|
||||||
>创建时间:
|
|
||||||
<span class="data" style="color: #4ea6ff">{{
|
<span class="data" style="color: #4ea6ff">{{
|
||||||
selectedRows[0].time
|
selectedRows[0].time
|
||||||
}}</span>
|
}}</span>
|
||||||
@@ -141,38 +103,30 @@
|
|||||||
<div class="">
|
<div class="">
|
||||||
<div class="drawerbox">
|
<div class="drawerbox">
|
||||||
<!-- 添加的时候显示多选的表 -->
|
<!-- 添加的时候显示多选的表 -->
|
||||||
<a-table
|
<a-table v-if="!edit" :columns="tableDataFunc()" :data-source="drawertableData" :row-selection="{
|
||||||
v-if="!edit"
|
|
||||||
:columns="tableDataFunc()"
|
|
||||||
:data-source="drawertableData"
|
|
||||||
:row-selection="{
|
|
||||||
selectedRowKeys: selectedRowKeys,
|
selectedRowKeys: selectedRowKeys,
|
||||||
onChange: onSelectChange,
|
onChange: onSelectChange,
|
||||||
}"
|
}" :loading="tableDataTotal === -1 ? true : false" :scroll="{ x: 700 }" @expand="expandTable"
|
||||||
:loading="tableDataTotal === -1 ? true : false"
|
:pagination="false">
|
||||||
:scroll="{ x: 700 }"
|
|
||||||
@expand="expandTable"
|
|
||||||
:pagination="false"
|
|
||||||
>
|
|
||||||
</a-table>
|
</a-table>
|
||||||
<!-- 编辑的时候显示单选的表 -->
|
<!-- 编辑的时候显示单选的表 -->
|
||||||
<a-table
|
<a-table v-else :columns="tableDataFunc()" :data-source="drawertableData" :row-selection="{
|
||||||
v-else
|
|
||||||
:columns="tableDataFunc()"
|
|
||||||
:data-source="drawertableData"
|
|
||||||
:row-selection="{
|
|
||||||
selectedRowKeys: selectedRowKeys,
|
selectedRowKeys: selectedRowKeys,
|
||||||
onChange: onSelectChange,
|
onChange: onSelectChange,
|
||||||
type: 'radio',
|
type: 'radio',
|
||||||
}"
|
}" :loading="tableDataTotal === -1 ? true : false" :scroll="{ x: 700 }" @expand="expandTable"
|
||||||
:loading="tableDataTotal === -1 ? true : false"
|
:pagination="false">
|
||||||
:scroll="{ x: 700 }"
|
|
||||||
@expand="expandTable"
|
|
||||||
:pagination="false"
|
|
||||||
>
|
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tableBox">
|
||||||
|
<div class="pa">
|
||||||
|
<a-pagination v-if="(tableDataTotal > 10)" showSizeChanger="true" showQuickJumper="true"
|
||||||
|
hideOnSinglePage="true" :pageSize="pageSize" v-model:current="currentPage" :total="tableDataTotal"
|
||||||
|
class="pagination" @change="changePagination"
|
||||||
|
style="display:flex;justify-content:center;margin-top:12px;margin-bottom:12px;" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_btns">
|
<div class="main_btns">
|
||||||
<button @click="closeDrawer" class="btn1">取消</button>
|
<button @click="closeDrawer" class="btn1">取消</button>
|
||||||
@@ -180,13 +134,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 有重复添加的项目时的弹窗 -->
|
<!-- 有重复添加的项目时的弹窗 -->
|
||||||
<a-modal
|
<a-modal v-model:visible="sameModal" :footer="null" :closable="sameCopy" wrapClassName="sameModal" centered="true">
|
||||||
v-model:visible="sameModal"
|
|
||||||
:footer="null"
|
|
||||||
:closable="sameCopy"
|
|
||||||
wrapClassName="sameModal"
|
|
||||||
centered="true"
|
|
||||||
>
|
|
||||||
<div class="delete">
|
<div class="delete">
|
||||||
<div class="del_header"></div>
|
<div class="del_header"></div>
|
||||||
<div class="del_main">
|
<div class="del_main">
|
||||||
@@ -329,7 +277,12 @@ export default {
|
|||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:addprojvisible", false);
|
ctx.emit("update:addprojvisible", false);
|
||||||
ctx.emit("update:edit", false);
|
ctx.emit("update:edit", false);
|
||||||
|
state.currentPage = 1
|
||||||
|
state.tableDataTotal = 0
|
||||||
|
state.drawertableData = []
|
||||||
|
state.inputV1 = ""
|
||||||
|
state.inputV2 = ""
|
||||||
|
state.inputV3 = ""
|
||||||
state.selectedRows = [];
|
state.selectedRows = [];
|
||||||
state.selectedRowKeys = [];
|
state.selectedRowKeys = [];
|
||||||
};
|
};
|
||||||
@@ -350,7 +303,7 @@ export default {
|
|||||||
// ajax request after empty completing
|
// ajax request after empty completing
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
state.loading = false;
|
state.loading = false;
|
||||||
state.selectedRowKeys = [];
|
|
||||||
}, 1000);
|
}, 1000);
|
||||||
};
|
};
|
||||||
// const onSelectChange = (selectedRowKeys, selectedRows) => {
|
// const onSelectChange = (selectedRowKeys, selectedRows) => {
|
||||||
@@ -364,25 +317,94 @@ export default {
|
|||||||
const resetProjectList = () => {
|
const resetProjectList = () => {
|
||||||
state.inputV1 = "";
|
state.inputV1 = "";
|
||||||
state.inputV2 = "";
|
state.inputV2 = "";
|
||||||
state.inputV1 = "";
|
state.inputV3 = "";
|
||||||
getAllProjText();
|
getAllProjText();
|
||||||
};
|
};
|
||||||
|
|
||||||
//获取全部项目信息接口
|
//翻页
|
||||||
const getAllProjText = () => {
|
const changePagination = (page) => {
|
||||||
|
state.currentPage = page;
|
||||||
|
getAllProjText();
|
||||||
|
// console.log("翻页", page, pageSize);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 点击编辑默认选中
|
||||||
|
const defaultValueOption = () => {
|
||||||
|
if (props.edit) {
|
||||||
|
state.drawertableData = []
|
||||||
|
state.selectedRowKeys = [props.EditProjectId];
|
||||||
|
getCurrentPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TODO 这里后续需要给接口或者改动
|
||||||
|
// 获取所有,确定分页位置
|
||||||
|
const getCurrentPage = () => {
|
||||||
apiProj
|
apiProj
|
||||||
.getProjectList({
|
.getProjectList({
|
||||||
createName: state.inputV1,
|
createName: state.inputV1,
|
||||||
manager: state.inputV2,
|
manager: state.inputV2,
|
||||||
name: state.inputV3,
|
name: state.inputV3,
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10000,
|
||||||
|
status: 3
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
// let arr = res.data.data.rows;
|
||||||
|
if (res.status === 200) {
|
||||||
|
console.log('all - project - info', res.data.data)
|
||||||
|
|
||||||
|
let allarr = res.data.data.rows
|
||||||
|
let isHav = true
|
||||||
|
for (let i = 0; i < allarr.length; i++) {
|
||||||
|
if (allarr[i].projectId == props.EditProjectId) {
|
||||||
|
isHav = false
|
||||||
|
state.currentPage = Math.ceil((i + 1) / 10);
|
||||||
|
console.log('sdadasd', state.currentPage)
|
||||||
|
getAllProjText()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isHav) {
|
||||||
|
getAllProjText()
|
||||||
|
state.currentPage = 1;
|
||||||
|
}
|
||||||
|
// state.drawertableData = getTableDate(arr);
|
||||||
|
// state.tableDataTotal = res.data.data.total
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
message.destroy();
|
||||||
|
//message.error("获取全部项目信息接口失败");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取全部项目信息接口
|
||||||
|
const getAllProjText = () => {
|
||||||
|
|
||||||
|
console.log("搜索的参数信息", {
|
||||||
|
createName: state.inputV3,
|
||||||
|
manager: state.inputV2,
|
||||||
|
name: state.inputV1,
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
status: state.status,
|
status: 3
|
||||||
|
})
|
||||||
|
|
||||||
|
apiProj
|
||||||
|
.getProjectList({
|
||||||
|
createName: state.inputV3,
|
||||||
|
manager: state.inputV2,
|
||||||
|
name: state.inputV1,
|
||||||
|
pageNo: state.currentPage,
|
||||||
|
pageSize: state.pageSize,
|
||||||
|
status: 3
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
let arr = res.data.data.rows;
|
let arr = res.data.data.rows;
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
|
console.log('all - project - info', res.data.data)
|
||||||
state.drawertableData = getTableDate(arr);
|
state.drawertableData = getTableDate(arr);
|
||||||
|
state.tableDataTotal = res.data.data.total
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
@@ -390,9 +412,11 @@ export default {
|
|||||||
//message.error("获取全部项目信息接口失败");
|
//message.error("获取全部项目信息接口失败");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
const afterVisibleChange = (bool) => {
|
const afterVisibleChange = () => {
|
||||||
|
|
||||||
if (bool) {
|
if (props.edit) {
|
||||||
|
defaultValueOption();
|
||||||
|
} else {
|
||||||
getAllProjText();
|
getAllProjText();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -424,6 +448,7 @@ export default {
|
|||||||
manager: value.manager,
|
manager: value.manager,
|
||||||
time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||||
children: value.subList ? getTableDate(value.subList) : [],
|
children: value.subList ? getTableDate(value.subList) : [],
|
||||||
|
creater: value.createName,
|
||||||
};
|
};
|
||||||
array.push(obj);
|
array.push(obj);
|
||||||
}
|
}
|
||||||
@@ -526,6 +551,8 @@ export default {
|
|||||||
showSameModal,
|
showSameModal,
|
||||||
closeSameModal,
|
closeSameModal,
|
||||||
sureSameModal,
|
sureSameModal,
|
||||||
|
changePagination,
|
||||||
|
getCurrentPage
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -556,6 +583,7 @@ export default {
|
|||||||
background: #ffffff;
|
background: #ffffff;
|
||||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
|
|
||||||
// position: absolute;
|
// position: absolute;
|
||||||
// left: 50%;
|
// left: 50%;
|
||||||
// top: 10%;
|
// top: 10%;
|
||||||
@@ -564,10 +592,8 @@ export default {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
width: calc(100%);
|
width: calc(100%);
|
||||||
height: 68px;
|
height: 68px;
|
||||||
background: linear-gradient(
|
background: linear-gradient(rgba(78, 166, 255, 0.2) 0%,
|
||||||
rgba(78, 166, 255, 0.2) 0%,
|
rgba(78, 166, 255, 0) 100%);
|
||||||
rgba(78, 166, 255, 0) 100%
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.del_main {
|
.del_main {
|
||||||
@@ -663,6 +689,7 @@ export default {
|
|||||||
|
|
||||||
.addrefDrawer {
|
.addrefDrawer {
|
||||||
.drawerMain {
|
.drawerMain {
|
||||||
|
|
||||||
// .main_notice {
|
// .main_notice {
|
||||||
// display: flex;
|
// display: flex;
|
||||||
// justify-content: space-between;
|
// justify-content: space-between;
|
||||||
@@ -798,6 +825,43 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tableBox {
|
||||||
|
// margin: 20px 38px 30px;
|
||||||
|
margin: 10px 35px 0px 35px;
|
||||||
|
|
||||||
|
th.h {
|
||||||
|
background-color: #eff4fc !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-table-tbody>tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)>td {
|
||||||
|
background: #f6f9fd;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tableBox {
|
||||||
|
padding-bottom: 20px;
|
||||||
|
|
||||||
|
.pa {
|
||||||
|
// position: absolute;
|
||||||
|
// bottom: 20px;
|
||||||
|
// left: 0;
|
||||||
|
width: 100%;
|
||||||
|
// height: 20px;
|
||||||
|
// background-color: red;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
// margin-bottom: 10px;
|
||||||
|
// position: absolute;
|
||||||
|
// bottom: -40px;
|
||||||
|
.pagination {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.main_btns {
|
.main_btns {
|
||||||
|
|||||||
@@ -100,6 +100,7 @@
|
|||||||
title: 'name',
|
title: 'name',
|
||||||
value: 'name',
|
value: 'name',
|
||||||
}"
|
}"
|
||||||
|
v-model:expandedKeys="expandedKeys"
|
||||||
>
|
>
|
||||||
<template #suffixIcon></template>
|
<template #suffixIcon></template>
|
||||||
</a-tree>
|
</a-tree>
|
||||||
@@ -201,6 +202,7 @@
|
|||||||
title: 'name',
|
title: 'name',
|
||||||
value: 'name',
|
value: 'name',
|
||||||
}"
|
}"
|
||||||
|
v-model:expandedKeys="expandedKeys"
|
||||||
>
|
>
|
||||||
<template #suffixIcon></template>
|
<template #suffixIcon></template>
|
||||||
</a-tree>
|
</a-tree>
|
||||||
@@ -754,12 +756,16 @@ export default {
|
|||||||
//受众关联-------------------------------------
|
//受众关联-------------------------------------
|
||||||
|
|
||||||
selectAllArr: null, //所有选中
|
selectAllArr: null, //所有选中
|
||||||
|
|
||||||
|
expandedKeys: [], //展开的节点
|
||||||
});
|
});
|
||||||
|
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
state.activeKey = "1";
|
state.activeKey = "1";
|
||||||
ctx.emit("update:ProjCheckvisible", false);
|
ctx.emit("update:ProjCheckvisible", false);
|
||||||
deleteAll();
|
deleteAll();
|
||||||
|
// console.log("expandedKeys", state.expandedKeys);
|
||||||
|
state.expandedKeys = [];
|
||||||
};
|
};
|
||||||
const afterVisibleChange = (bool) => {
|
const afterVisibleChange = (bool) => {
|
||||||
console.log("state", bool);
|
console.log("state", bool);
|
||||||
|
|||||||
@@ -244,241 +244,9 @@ export default {
|
|||||||
nameadd: "",
|
nameadd: "",
|
||||||
nameaddd: "",
|
nameaddd: "",
|
||||||
com: "",
|
com: "",
|
||||||
openKeys: [2, 13, 32],
|
openKeys: [],
|
||||||
//组织树
|
//组织树
|
||||||
treeData: [
|
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:
|
|
||||||
"十六级标题",
|
|
||||||
children:
|
|
||||||
[
|
|
||||||
{
|
|
||||||
key: 28,
|
|
||||||
title:
|
|
||||||
"十七级标题",
|
|
||||||
value:
|
|
||||||
"十七级标题",
|
|
||||||
children:
|
|
||||||
[
|
|
||||||
{
|
|
||||||
key: 29,
|
|
||||||
title:
|
|
||||||
"十八级标题",
|
|
||||||
value:
|
|
||||||
"十八级标题",
|
|
||||||
children:
|
|
||||||
[
|
|
||||||
{
|
|
||||||
key: 30,
|
|
||||||
title:
|
|
||||||
"十九级标题",
|
|
||||||
value:
|
|
||||||
"十九级标题",
|
|
||||||
children:
|
|
||||||
[
|
|
||||||
{
|
|
||||||
key: 31,
|
|
||||||
title:
|
|
||||||
"二十级标题二十级标题",
|
|
||||||
value:
|
|
||||||
"二十级标题二十级标题",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 32,
|
|
||||||
title: "人力资源部",
|
|
||||||
value: "人力资源部",
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
key: 33,
|
|
||||||
title: "人事部",
|
|
||||||
value: "人事部",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: 34,
|
|
||||||
title: "行政部",
|
|
||||||
value: "行政部",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
//快速选人的table
|
//快速选人的table
|
||||||
tabledata: [
|
tabledata: [
|
||||||
// {
|
// {
|
||||||
@@ -543,6 +311,7 @@ export default {
|
|||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
state.activeKey = "1";
|
state.activeKey = "1";
|
||||||
ctx.emit("update:ProjOwnervisible", false);
|
ctx.emit("update:ProjOwnervisible", false);
|
||||||
|
state.openKeys = [];
|
||||||
};
|
};
|
||||||
|
|
||||||
const afterVisibleChange = (bool) => {
|
const afterVisibleChange = (bool) => {
|
||||||
|
|||||||
62
src/components/project/OrgClass.vue
Normal file
62
src/components/project/OrgClass.vue
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
<template>
|
||||||
|
<a-tree-select
|
||||||
|
v-model:value="id"
|
||||||
|
style="width: 100%"
|
||||||
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||||
|
placeholder="自动带出 可修改"
|
||||||
|
allow-clear
|
||||||
|
:tree-data="options"
|
||||||
|
:fieldNames="{
|
||||||
|
children: 'treeChildList',
|
||||||
|
label: 'name',
|
||||||
|
value: 'id',
|
||||||
|
}"
|
||||||
|
:disabled="viewDetail ? true : false"
|
||||||
|
@change="change"
|
||||||
|
dropdownClassName="treeDropdown"
|
||||||
|
>
|
||||||
|
</a-tree-select>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {onMounted, reactive, toRefs, watch} from "vue";
|
||||||
|
import {useStore} from "vuex";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "OrgClass",
|
||||||
|
|
||||||
|
props: {
|
||||||
|
modelValue: {
|
||||||
|
type: Number,
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
type: String,
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup(props, ctx) {
|
||||||
|
const store = useStore();
|
||||||
|
|
||||||
|
const state = reactive({
|
||||||
|
options: [],
|
||||||
|
id: props.value
|
||||||
|
});
|
||||||
|
watch(state.id, () => {
|
||||||
|
ctx.emit('update:modelValue', state.id)
|
||||||
|
})
|
||||||
|
onMounted(() => {
|
||||||
|
state.options = [{id: props.modelValue, name: props.name}, ...store.state.orgtreeList]
|
||||||
|
})
|
||||||
|
function change(key, obj) {
|
||||||
|
ctx.emit('update:name', obj[0])
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
...toRefs(state),
|
||||||
|
change
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
48
src/components/project/ProjectClass.vue
Normal file
48
src/components/project/ProjectClass.vue
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<!-- 评估管理-创建评估页面 -->
|
||||||
|
<template>
|
||||||
|
<a-select
|
||||||
|
v-model:value="id"
|
||||||
|
placeholder="请选择分类"
|
||||||
|
style="width: 100%"
|
||||||
|
:options="options"
|
||||||
|
allowClear
|
||||||
|
:disabled="disabled"
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {onMounted, reactive, toRefs, watch} from "vue";
|
||||||
|
import {useStore} from "vuex";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "ProjectClass",
|
||||||
|
|
||||||
|
props: {
|
||||||
|
modelValue: {
|
||||||
|
type: Number,
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup(props, ctx) {
|
||||||
|
const store = useStore();
|
||||||
|
|
||||||
|
const state = reactive({
|
||||||
|
options: [],
|
||||||
|
id: props.modelValue
|
||||||
|
});
|
||||||
|
watch(state.id,()=>{
|
||||||
|
ctx.emit('update:modelValue',state.id)
|
||||||
|
})
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
state.options = store.state.projectClass.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
|
||||||
|
})
|
||||||
|
return {
|
||||||
|
...toRefs(state),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
45
src/components/project/ProjectLevel.vue
Normal file
45
src/components/project/ProjectLevel.vue
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<template>
|
||||||
|
<a-select
|
||||||
|
v-model:value="id"
|
||||||
|
:options="options"
|
||||||
|
style="width: 100%"
|
||||||
|
placeholder="请选择项目级别"
|
||||||
|
:disabled="disabled"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {onMounted, reactive, toRefs, watch} from "vue";
|
||||||
|
import {useStore} from "vuex";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "ProjectClass",
|
||||||
|
|
||||||
|
props: {
|
||||||
|
modelValue: {
|
||||||
|
type: Number,
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup(props, ctx) {
|
||||||
|
const store = useStore();
|
||||||
|
|
||||||
|
const state = reactive({
|
||||||
|
options: [],
|
||||||
|
id: props.modelValue
|
||||||
|
});
|
||||||
|
watch(state.id, () => {
|
||||||
|
ctx.emit('update:modelValue', state.id)
|
||||||
|
})
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
state.options = store.state.projectLevel.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
|
||||||
|
})
|
||||||
|
return {
|
||||||
|
...toRefs(state),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
104
src/components/project/ProjectManager.vue
Normal file
104
src/components/project/ProjectManager.vue
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
<template>
|
||||||
|
<a-select
|
||||||
|
v-model:value="managerArray"
|
||||||
|
placeholder="请选择项目经理"
|
||||||
|
:filterOption="false"
|
||||||
|
style="width: 100%"
|
||||||
|
:options="options"
|
||||||
|
allowClear
|
||||||
|
showSearch
|
||||||
|
mode="multiple"
|
||||||
|
:disabled="disabled"
|
||||||
|
@popupScroll="memberScroll"
|
||||||
|
@search="searchMember"
|
||||||
|
@change="change"
|
||||||
|
>
|
||||||
|
<template v-if="loading" #notFoundContent>
|
||||||
|
<a-spin size="small"/>
|
||||||
|
</template>
|
||||||
|
</a-select>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {reactive, toRefs, watch} from "vue";
|
||||||
|
import {scrollLoad} from "@/api/method";
|
||||||
|
import * as api1 from "@/api/index1";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "ProjectClass",
|
||||||
|
|
||||||
|
props: {
|
||||||
|
value: {
|
||||||
|
type: Number,
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
type: Number,
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup(props, ctx) {
|
||||||
|
const state = reactive({
|
||||||
|
options: [],
|
||||||
|
managerArray: [],
|
||||||
|
memberParam: {keyWord: '', pageNo: 1, pageSize: 10},
|
||||||
|
loading: false,
|
||||||
|
init: false
|
||||||
|
});
|
||||||
|
|
||||||
|
watch(() => state.memberParam, getMember)
|
||||||
|
watch(() => props.value, init)
|
||||||
|
|
||||||
|
function getMember() {
|
||||||
|
state.loading = true
|
||||||
|
api1.getMemberInfo(state.memberParam).then((res) => {
|
||||||
|
const list = res.data.data.rows.filter(e => !props.value?.includes(e.id + '')).map(e => ({
|
||||||
|
label: e.realName,
|
||||||
|
value: e.id
|
||||||
|
}));
|
||||||
|
state.options.push(...list)
|
||||||
|
state.loading = false
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const memberScroll = (e) => {
|
||||||
|
let num = scrollLoad(e);
|
||||||
|
if (num === 2) {
|
||||||
|
// 如果滑到底部,则加载下一页
|
||||||
|
state.memberParam.pageNo++;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//搜索学员
|
||||||
|
const searchMember = (keyWord) => {
|
||||||
|
keyWord && (state.memberParam = {keyWord, pageNo: 1, pageSize: 10});
|
||||||
|
};
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
if (props.value && props.name) {
|
||||||
|
const arrManager = props.name.split(',')
|
||||||
|
const arrManagerId = props.value.split(',')
|
||||||
|
state.managerArray = arrManagerId
|
||||||
|
state.options = arrManager.map((e, i) => ({label: e, value: arrManagerId[i]}))
|
||||||
|
state.init = true
|
||||||
|
getMember()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function change(e, l) {
|
||||||
|
console.log('change')
|
||||||
|
ctx.emit('update:value', e.join(','))
|
||||||
|
ctx.emit('update:name', l.map(t => t.label).join(','))
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
...toRefs(state),
|
||||||
|
searchMember,
|
||||||
|
memberScroll,
|
||||||
|
change
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
44
src/components/project/TrainClass.vue
Normal file
44
src/components/project/TrainClass.vue
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<template>
|
||||||
|
<a-select
|
||||||
|
v-model:value="id"
|
||||||
|
:options="options"
|
||||||
|
style="width: 100%"
|
||||||
|
placeholder="请选择分类"
|
||||||
|
:disabled="disabled"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {onMounted, reactive, toRefs, watch} from "vue";
|
||||||
|
import {useStore} from "vuex";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "TrainClass",
|
||||||
|
|
||||||
|
props: {
|
||||||
|
modelValue: {
|
||||||
|
type: Number,
|
||||||
|
},
|
||||||
|
disabled: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
setup(props, ctx) {
|
||||||
|
const store = useStore();
|
||||||
|
|
||||||
|
const state = reactive({
|
||||||
|
options: [],
|
||||||
|
id: props.modelValue
|
||||||
|
});
|
||||||
|
watch(state.id, () => {
|
||||||
|
ctx.emit('update:modelValue', state.id)
|
||||||
|
})
|
||||||
|
onMounted(() => {
|
||||||
|
state.options = store.state.projectSys.map(e => ({value: parseInt(e.dictCode), label: e.dictName}))
|
||||||
|
})
|
||||||
|
return {
|
||||||
|
...toRefs(state),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
* @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-26 20:20:03
|
* @LastEditTime: 2022-12-02 14:09:43
|
||||||
* @FilePath: /fe-manage/src/store/index.js
|
* @FilePath: /fe-manage/src/store/index.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 @@ export default createStore({
|
|||||||
faceclassScene: [],
|
faceclassScene: [],
|
||||||
projectLevel: [],//项目级别
|
projectLevel: [],//项目级别
|
||||||
projectSys: [],//培训分类
|
projectSys: [],//培训分类
|
||||||
|
pathmapPic: [],//学习路径背景图
|
||||||
},
|
},
|
||||||
getters: {},
|
getters: {},
|
||||||
mutations: {
|
mutations: {
|
||||||
|
|||||||
@@ -37,10 +37,10 @@
|
|||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
" placeholder="请输入创建人" />
|
" placeholder="请输入创建人" />
|
||||||
</div>
|
</div>
|
||||||
<div class="inpbox1">
|
<!-- <div class="inpbox1">-->
|
||||||
<a-range-picker v-model:value="valueDate" style="border-radius: 8px; height: 40px; margin-left: 5px"
|
<!-- <a-range-picker v-model:value="valueDate" style="border-radius: 8px; height: 40px; margin-left: 5px"-->
|
||||||
:placeholder="[' 开始时间', ' 结束时间']" @change="rankTimeChange" />
|
<!-- :placeholder="[' 开始时间', ' 结束时间']" @change="rankTimeChange" />-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tmplh_btn">
|
<div class="tmplh_btn">
|
||||||
@@ -75,8 +75,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import {onMounted, reactive, toRefs} from "vue";
|
import {onMounted, reactive, toRefs} from "vue";
|
||||||
import ProjectAudit from "../../components/drawers/ProjectAudit";
|
import ProjectAudit from "../../components/drawers/ProjectAudit";
|
||||||
import { projlist } from "../../api/indexAudit";
|
import {auditlist} from "../../api/indexAudit";
|
||||||
import { toDate } from "@/api/method";
|
|
||||||
export default {
|
export default {
|
||||||
name: "ProjectViewedN",
|
name: "ProjectViewedN",
|
||||||
components: { ProjectAudit },
|
components: { ProjectAudit },
|
||||||
@@ -106,8 +106,8 @@ export default {
|
|||||||
columns1: [
|
columns1: [
|
||||||
{
|
{
|
||||||
title: "序号",
|
title: "序号",
|
||||||
dataIndex: "number",
|
dataIndex: "projectId",
|
||||||
key: "number",
|
key: "projectId",
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -135,17 +135,18 @@ export default {
|
|||||||
dataIndex: "status",
|
dataIndex: "status",
|
||||||
key: "status",
|
key: "status",
|
||||||
align: "center",
|
align: "center",
|
||||||
|
customRender: ()=><div>待审核</div>,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "创建人",
|
title: "创建人",
|
||||||
dataIndex: "creater",
|
dataIndex: "createName",
|
||||||
key: "creater",
|
key: "createName",
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "创建时间",
|
title: "创建时间",
|
||||||
dataIndex: "time",
|
dataIndex: "createTime",
|
||||||
key: "time",
|
key: "createTime",
|
||||||
align: "center",
|
align: "center",
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -163,7 +164,7 @@ export default {
|
|||||||
showProjAudit(
|
showProjAudit(
|
||||||
value.record.projectId,
|
value.record.projectId,
|
||||||
value.record.createId,
|
value.record.createId,
|
||||||
value.record.creater
|
value.record.createName
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -194,12 +195,13 @@ export default {
|
|||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
status: 1,
|
status: 1,
|
||||||
};
|
};
|
||||||
projlist(objn)
|
auditlist(objn)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("获取待审核项目成功", res);
|
console.log("获取待审核项目成功", res);
|
||||||
let result = res.data.data;
|
let result = res.data.data;
|
||||||
state.total = result.total;
|
state.total = result.total;
|
||||||
setProjList(result.rows);
|
state.tableData1 = result.rows
|
||||||
|
// setProjList(result.rows);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("获取待审核项目失败", err);
|
console.log("获取待审核项目失败", err);
|
||||||
@@ -232,7 +234,7 @@ export default {
|
|||||||
? "拒绝"
|
? "拒绝"
|
||||||
: "-",
|
: "-",
|
||||||
creater: item.createName,
|
creater: item.createName,
|
||||||
time: toDate(item.createTime, "Y-M-D h-m"),
|
time: item.createTime,
|
||||||
projectId: item.projectId,
|
projectId: item.projectId,
|
||||||
createId: item.createId,
|
createId: item.createId,
|
||||||
};
|
};
|
||||||
@@ -260,7 +262,7 @@ export default {
|
|||||||
? "拒绝"
|
? "拒绝"
|
||||||
: "-",
|
: "-",
|
||||||
creater: item.createName,
|
creater: item.createName,
|
||||||
time: toDate(item.createTime, "Y-M-D h-m"),
|
time: item.createTime,
|
||||||
projectId: item.projectId,
|
projectId: item.projectId,
|
||||||
createId: item.createId,
|
createId: item.createId,
|
||||||
children: item.subList ? setProjList(item.subList) : [],
|
children: item.subList ? setProjList(item.subList) : [],
|
||||||
|
|||||||
@@ -867,7 +867,7 @@ export default {
|
|||||||
state.editPathId = null;
|
state.editPathId = null;
|
||||||
};
|
};
|
||||||
const chooseImg = (item) => {
|
const chooseImg = (item) => {
|
||||||
// console.log(item);
|
console.log(item);
|
||||||
state.pathBgId = item.dictCode;
|
state.pathBgId = item.dictCode;
|
||||||
state.pathBg = item.dictValue;
|
state.pathBg = item.dictValue;
|
||||||
};
|
};
|
||||||
@@ -1148,7 +1148,7 @@ export default {
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
// console.log("text.record", text.record);
|
// console.log("text.record", text.record);
|
||||||
|
|
||||||
getLearnPathInfo(text.record);
|
getLearnPathInfo(text.record.id);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
@@ -1409,8 +1409,8 @@ export default {
|
|||||||
};
|
};
|
||||||
const selectorganization = (e, v) => {
|
const selectorganization = (e, v) => {
|
||||||
console.log("eee", e, v);
|
console.log("eee", e, v);
|
||||||
state.organizationSelectName = e;
|
state.organizationSelectName = v[0];
|
||||||
state.organizationSelectId = v.id;
|
state.organizationSelectId = e;
|
||||||
};
|
};
|
||||||
//创建学习路径图
|
//创建学习路径图
|
||||||
const createLearnPath = () => {
|
const createLearnPath = () => {
|
||||||
@@ -1429,13 +1429,17 @@ export default {
|
|||||||
state.lpLoading = true;
|
state.lpLoading = true;
|
||||||
let obj = {
|
let obj = {
|
||||||
name: state.pathName,
|
name: state.pathName,
|
||||||
picUrl: "",
|
|
||||||
remark: state.pathIntro,
|
remark: state.pathIntro,
|
||||||
status: 0,
|
status: 0,
|
||||||
|
organizationId: state.organizationSelectId,
|
||||||
|
organizationName: state.organizationSelectName,
|
||||||
|
picUrl: state.pathBg,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.createLearnPath(obj)
|
.createLearnPath(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
console.log("创建学习路径成功", res);
|
||||||
|
if (res.data.code === 200) {
|
||||||
let chapterObj = {
|
let chapterObj = {
|
||||||
name: "关卡一",
|
name: "关卡一",
|
||||||
remark: "",
|
remark: "",
|
||||||
@@ -1460,6 +1464,7 @@ export default {
|
|||||||
.catch((chapterErr) => {
|
.catch((chapterErr) => {
|
||||||
console.log("关卡创建失败", chapterErr);
|
console.log("关卡创建失败", chapterErr);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("创建失败", err);
|
console.log("创建失败", err);
|
||||||
@@ -1525,22 +1530,36 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//获取路径图详细信息
|
//获取路径图详细信息
|
||||||
const getLearnPathInfo = (item) => {
|
const getLearnPathInfo = (id) => {
|
||||||
state.out1 = true;
|
// console.log("编辑学习路径图id", id);
|
||||||
state.pathName = item.manager;
|
//获取学习路径详情
|
||||||
state.pathBg = "";
|
api
|
||||||
|
.getRouterDetail(id)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.data.code === 200) {
|
||||||
|
let detail = res.data.data.routerInfo;
|
||||||
|
// console.log("获取详情成功", detail);
|
||||||
|
state.pathName = detail.name;
|
||||||
|
state.pathBg = detail.picUrl;
|
||||||
state.pathBgId = "";
|
state.pathBgId = "";
|
||||||
state.organizationSelectName = null;
|
state.organizationSelectName = detail.organizationName;
|
||||||
state.organizationSelectId = null;
|
state.organizationSelectId = detail.organizationId;
|
||||||
state.pathIntro = item.remark;
|
state.pathIntro = detail.remark;
|
||||||
state.editPathId = item.id;
|
state.editPathId = id;
|
||||||
console.log("state.imgData", state.imgData);
|
// console.log("state.imgData", state.imgData);
|
||||||
let arr = state.imgData;
|
let arr = state.imgData;
|
||||||
for (let i = 0; i < arr.length; i++) {
|
for (let i = 0; i < arr.length; i++) {
|
||||||
if (arr[i].dictCode === state.pathBgId) {
|
// console.log("arr[i].dictValue", arr[i].dictValue, state.pathBg);
|
||||||
state.pathBgId = arr[i].dictValue;
|
if (arr[i].dictValue === state.pathBg) {
|
||||||
|
state.pathBgId = arr[i].dictCode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
console.log("获取详情失败", err);
|
||||||
|
});
|
||||||
|
state.out1 = true;
|
||||||
};
|
};
|
||||||
//编辑学习路径图
|
//编辑学习路径图
|
||||||
const editLearnPath = () => {
|
const editLearnPath = () => {
|
||||||
@@ -1556,12 +1575,21 @@ export default {
|
|||||||
message.destroy();
|
message.destroy();
|
||||||
return message.warning("请选择背景图");
|
return message.warning("请选择背景图");
|
||||||
}
|
}
|
||||||
|
// state.pathName = detail.name;
|
||||||
|
// state.pathBg = detail.picUrl;
|
||||||
|
// state.pathBgId = "";
|
||||||
|
// state.organizationSelectName = detail.organizationName;
|
||||||
|
// state.organizationSelectId = detail.organizationId;
|
||||||
|
// state.pathIntro = detail.remark;
|
||||||
|
// state.editPathId = id;
|
||||||
// state.createLoading = true;
|
// state.createLoading = true;
|
||||||
let obj = {
|
let obj = {
|
||||||
routerId: state.editPathId,
|
routerId: state.editPathId,
|
||||||
name: state.pathName,
|
name: state.pathName,
|
||||||
picUrl: "",
|
picUrl: state.pathBg,
|
||||||
remark: state.pathIntro,
|
remark: state.pathIntro,
|
||||||
|
organizationName: state.organizationSelectName,
|
||||||
|
organizationId: state.organizationSelectId,
|
||||||
status: 0,
|
status: 0,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
@@ -1641,30 +1669,30 @@ export default {
|
|||||||
// }
|
// }
|
||||||
// choiceEvaluation()
|
// choiceEvaluation()
|
||||||
|
|
||||||
//字典获取路径图背景
|
// //字典获取路径图背景
|
||||||
const getDictList = (param) => {
|
// const getDictList = (param) => {
|
||||||
let obj = {
|
// let obj = {
|
||||||
pageNo: 1,
|
// pageNo: 1,
|
||||||
pageSize: 20,
|
// pageSize: 20,
|
||||||
setCode: param,
|
// setCode: param,
|
||||||
};
|
// };
|
||||||
api
|
// api
|
||||||
.getDict(obj)
|
// .getDict(obj)
|
||||||
.then((res) => {
|
// .then((res) => {
|
||||||
console.log("获取字典成功", res);
|
// console.log("获取字典成功", res);
|
||||||
if (res.status === 200) {
|
// if (res.status === 200) {
|
||||||
if (param === "pathmapPic") {
|
// if (param === "pathmapPic") {
|
||||||
if (res.data.data.rows.length > 0) {
|
// if (res.data.data.rows.length > 0) {
|
||||||
state.imgData = [res.data.data.rows[0]];
|
// state.imgData = [res.data.data.rows[0]];
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
.catch((err) => {
|
// .catch((err) => {
|
||||||
console.log("获取字典失败", err);
|
// console.log("获取字典失败", err);
|
||||||
});
|
// });
|
||||||
};
|
// };
|
||||||
getDictList("pathmapPic");
|
// getDictList("pathmapPic");
|
||||||
//显示更多路径背景弹窗
|
//显示更多路径背景弹窗
|
||||||
const showLearnBgMore = () => {
|
const showLearnBgMore = () => {
|
||||||
state.learnBgMore = true;
|
state.learnBgMore = true;
|
||||||
@@ -1676,6 +1704,10 @@ export default {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// console.log("执行");
|
// console.log("执行");
|
||||||
getLearnPath();
|
getLearnPath();
|
||||||
|
if (store.state.pathmapPic.length > 0) {
|
||||||
|
console.log("store.state.pathmapPic", store.state.pathmapPic);
|
||||||
|
state.imgData = [store.state.pathmapPic[0]];
|
||||||
|
}
|
||||||
});
|
});
|
||||||
//添加权限
|
//添加权限
|
||||||
watch(
|
watch(
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="addhead">
|
<div class="addhead">
|
||||||
<div class="leftimg">
|
<div class="leftimg">
|
||||||
<!-- <img class="img" :src="picUrl" /> -->
|
<!-- <img class="img" :src="picUrl" /> -->
|
||||||
<img class="img" src="../../assets/images/leveladd/1.png" />
|
<img class="img" :src="picUrl" />
|
||||||
</div>
|
</div>
|
||||||
<div class="imgfor">
|
<div class="imgfor">
|
||||||
<div class="forz">{{ styTitle }}</div>
|
<div class="forz">{{ styTitle }}</div>
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="taskbox"
|
class="taskbox"
|
||||||
@click="showModal"
|
@click="showPub"
|
||||||
style="background: linear-gradient(180deg, #e5f6ec, #eef9f3)"
|
style="background: linear-gradient(180deg, #e5f6ec, #eef9f3)"
|
||||||
>
|
>
|
||||||
<div class="leftt">
|
<div class="leftt">
|
||||||
@@ -564,7 +564,7 @@
|
|||||||
<a-input
|
<a-input
|
||||||
v-model:value="gatenamee"
|
v-model:value="gatenamee"
|
||||||
style="width: 270px; height: 40px; border-radius: 8px"
|
style="width: 270px; height: 40px; border-radius: 8px"
|
||||||
placeholder="关卡名称"
|
placeholder="请输入姓名"
|
||||||
/>
|
/>
|
||||||
<div class="btns" @click="searchLevel">
|
<div class="btns" @click="searchLevel">
|
||||||
<div class="btn btn1">
|
<div class="btn btn1">
|
||||||
@@ -1078,7 +1078,9 @@
|
|||||||
<div class="projectbox">
|
<div class="projectbox">
|
||||||
<div class="promessage">
|
<div class="promessage">
|
||||||
<div class="messageme">路径信息</div>
|
<div class="messageme">路径信息</div>
|
||||||
<div class="messagege">当前路径共0个关卡,0个任务</div>
|
<div class="messagege">
|
||||||
|
当前路径共{{ routeChapters }}个关卡,{{ routeTasks }}个任务
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="stumessage">
|
<div class="stumessage">
|
||||||
<div class="messageme1">学员信息</div>
|
<div class="messageme1">学员信息</div>
|
||||||
@@ -1255,6 +1257,8 @@ export default {
|
|||||||
dcopyModal: false, //复制弹窗
|
dcopyModal: false, //复制弹窗
|
||||||
closeBack: false,
|
closeBack: false,
|
||||||
routeStudentsNum: null,
|
routeStudentsNum: null,
|
||||||
|
routeChapters: null,
|
||||||
|
routeTasks: null,
|
||||||
dcloseCopy: false,
|
dcloseCopy: false,
|
||||||
dicloseCopy: false,
|
dicloseCopy: false,
|
||||||
stopModal: false, //结束弹窗
|
stopModal: false, //结束弹窗
|
||||||
@@ -1649,7 +1653,7 @@ export default {
|
|||||||
//获取学员列表
|
//获取学员列表
|
||||||
const getStudent = () => {
|
const getStudent = () => {
|
||||||
let obj = {
|
let obj = {
|
||||||
name: "",
|
name: state.gatenamee,
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
routerId: state.routerId,
|
routerId: state.routerId,
|
||||||
@@ -1733,7 +1737,9 @@ export default {
|
|||||||
message.destroy();
|
message.destroy();
|
||||||
message.success("发布成功");
|
message.success("发布成功");
|
||||||
state.pub = false;
|
state.pub = false;
|
||||||
|
state.nodata = false;
|
||||||
// getLearnPath();
|
// getLearnPath();
|
||||||
|
|
||||||
reget();
|
reget();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
@@ -1744,33 +1750,19 @@ export default {
|
|||||||
const showPub = () => {
|
const showPub = () => {
|
||||||
state.pub = true;
|
state.pub = true;
|
||||||
// state.releasePathId = routerId;
|
// state.releasePathId = routerId;
|
||||||
//获取学员总数
|
|
||||||
let obj = {
|
|
||||||
pageNo: 0,
|
|
||||||
pageSize: 0,
|
|
||||||
routerId: state.routerId,
|
|
||||||
};
|
|
||||||
api
|
api
|
||||||
.getStudent(obj)
|
.getLearnCount(state.routerId)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
// console.log("res", res.data.data);
|
// console.log("获取关卡、任务、学员统计数据", res.data);
|
||||||
state.routeStudentsNum = res.data.data.total;
|
state.routeStudentsNum = res.data.students;
|
||||||
|
state.routeChapters = res.data.chapters;
|
||||||
|
state.routeTasks = res.data.tasks;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("err", err);
|
console.log("err", err);
|
||||||
});
|
});
|
||||||
|
|
||||||
//获取学习路径详细信息
|
|
||||||
// api
|
|
||||||
// .getRouterDetail(routerId)
|
|
||||||
// .then((res) => {
|
|
||||||
// console.log("学习路径详情", res);
|
|
||||||
// })
|
|
||||||
// .catch((err) => {
|
|
||||||
// console.log("学习路径详情获取错误", err);
|
|
||||||
// });
|
|
||||||
};
|
};
|
||||||
//显示撤回弹窗
|
//显示撤回弹窗
|
||||||
const showBackModal = () => {
|
const showBackModal = () => {
|
||||||
@@ -1794,6 +1786,7 @@ export default {
|
|||||||
message.success("撤回成功");
|
message.success("撤回成功");
|
||||||
state.backModal = false;
|
state.backModal = false;
|
||||||
reget();
|
reget();
|
||||||
|
state.nodata = true;
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("撤回失败", err);
|
console.log("撤回失败", err);
|
||||||
@@ -1855,6 +1848,7 @@ export default {
|
|||||||
};
|
};
|
||||||
const reget = () => {
|
const reget = () => {
|
||||||
GetRouterDetail(state.routerId).then((res) => {
|
GetRouterDetail(state.routerId).then((res) => {
|
||||||
|
// console.log("获取路径图详情", res);
|
||||||
state.styTitle = res.data.data.routerInfo.name;
|
state.styTitle = res.data.data.routerInfo.name;
|
||||||
state.cretime = toDate(
|
state.cretime = toDate(
|
||||||
res.data.data.routerInfo.createTime / 1000,
|
res.data.data.routerInfo.createTime / 1000,
|
||||||
@@ -1985,10 +1979,12 @@ export default {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
const searchLevel = () => {
|
const searchLevel = () => {
|
||||||
const result = state.tableData.filter(
|
// const result = state.tableData.filter(
|
||||||
(item) => item.cur == state.gatenamee
|
// (item) => item.cur == state.gatenamee
|
||||||
);
|
// );
|
||||||
state.tableData = result;
|
// state.tableData = result;
|
||||||
|
state.currentPage = 1;
|
||||||
|
getStudent();
|
||||||
};
|
};
|
||||||
const resetLevel = () => {
|
const resetLevel = () => {
|
||||||
state.gatenamee = "";
|
state.gatenamee = "";
|
||||||
|
|||||||
@@ -174,7 +174,7 @@
|
|||||||
<div class="filt">
|
<div class="filt">
|
||||||
<div class="le">
|
<div class="le">
|
||||||
<div class="leftimg">
|
<div class="leftimg">
|
||||||
<img class="img" src="../../assets/images/leveladd/1.png" />
|
<img class="img" :src="picUrl" />
|
||||||
</div>
|
</div>
|
||||||
<div class="imgfor">
|
<div class="imgfor">
|
||||||
<div class="forz">{{ styTitle }}</div>
|
<div class="forz">{{ styTitle }}</div>
|
||||||
@@ -524,7 +524,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btn btn2">
|
<div class="btn btn2">
|
||||||
<div class="imgIcon"></div>
|
<div class="imgIcon"></div>
|
||||||
<div class="btnText" @click="showDeleteALLModal">
|
<div class="btnText" @click="showDeleteALLModal(1)">
|
||||||
批量删除
|
批量删除
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -640,7 +640,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 120px; text-align: center">
|
<div
|
||||||
|
style="
|
||||||
|
width: 120px;
|
||||||
|
text-align: center;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
"
|
||||||
|
:title="element.creater"
|
||||||
|
>
|
||||||
{{ element.creater }}
|
{{ element.creater }}
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 120px; text-align: center">
|
<div style="width: 120px; text-align: center">
|
||||||
@@ -776,7 +785,7 @@
|
|||||||
<button class="addx" @click="showAddStu">添加学员</button>
|
<button class="addx" @click="showAddStu">添加学员</button>
|
||||||
<!-- 点击抽屉组件在LevelAdd,此处没添加showAddStu、showImpStu -->
|
<!-- 点击抽屉组件在LevelAdd,此处没添加showAddStu、showImpStu -->
|
||||||
<button class="addd" @click="showImpStu">导入学员</button>
|
<button class="addd" @click="showImpStu">导入学员</button>
|
||||||
<button class="addd" @click="showDeleteALLModal">
|
<button class="addd" @click="showDeleteALLModal(2)">
|
||||||
批量删除
|
批量删除
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -898,7 +907,9 @@
|
|||||||
<div class="close_exit" @click="delete_exit"></div>
|
<div class="close_exit" @click="delete_exit"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<span>请确认是否批量删除学员</span>
|
<span
|
||||||
|
>请确认是否批量删除{{ deleteType === 1 ? "任务" : "学员" }}</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btnbox">
|
<div class="del_btnbox">
|
||||||
<div class="del_btn btn1">
|
<div class="del_btn btn1">
|
||||||
@@ -955,7 +966,7 @@
|
|||||||
<div class="header">
|
<div class="header">
|
||||||
<div class="inhe">
|
<div class="inhe">
|
||||||
<div class="mod"></div>
|
<div class="mod"></div>
|
||||||
<div class="tz">选择任务移动到阶段</div>
|
<div class="tz">选择任务移动到关卡</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mid">
|
<div class="mid">
|
||||||
@@ -1192,6 +1203,10 @@ export default {
|
|||||||
|
|
||||||
unlockModeVisible: false, //切换模式抽屉
|
unlockModeVisible: false, //切换模式抽屉
|
||||||
chooseProjectList: null, //选择的阶段下的任务列表
|
chooseProjectList: null, //选择的阶段下的任务列表
|
||||||
|
|
||||||
|
curLevel: null, //选择移动到的关卡名称
|
||||||
|
|
||||||
|
deleteType: null, //批量删除学员/任务 1:任务 2:学员
|
||||||
});
|
});
|
||||||
|
|
||||||
const showModal = (element) => {
|
const showModal = (element) => {
|
||||||
@@ -1415,9 +1430,11 @@ export default {
|
|||||||
item["value"] = item.chapterId;
|
item["value"] = item.chapterId;
|
||||||
item["label"] = item.name;
|
item["label"] = item.name;
|
||||||
});
|
});
|
||||||
|
console.log("路径图详情", res);
|
||||||
if (state.level.length > 0) {
|
if (state.level.length > 0) {
|
||||||
let chapter = localStorage.getItem("chapterId");
|
let chapter = localStorage.getItem("chapterId");
|
||||||
if (chapter !== "null") {
|
// console.log("chapter", chapter, chapter !== "null");
|
||||||
|
if (chapter) {
|
||||||
dataAssignment(chapter); //用哪个的任务表
|
dataAssignment(chapter); //用哪个的任务表
|
||||||
state.isactive = chapter; //哪个亮
|
state.isactive = chapter; //哪个亮
|
||||||
} else {
|
} else {
|
||||||
@@ -1593,6 +1610,7 @@ export default {
|
|||||||
document.getElementsByTagName("main")[0].style.background = "#ffffff";
|
document.getElementsByTagName("main")[0].style.background = "#ffffff";
|
||||||
document.getElementsByTagName("main")[0].style.boxShadow =
|
document.getElementsByTagName("main")[0].style.boxShadow =
|
||||||
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
|
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
|
||||||
|
localStorage.removeItem("chapterId");
|
||||||
});
|
});
|
||||||
const changebgc = (chapterId) => {
|
const changebgc = (chapterId) => {
|
||||||
state.isactive = chapterId;
|
state.isactive = chapterId;
|
||||||
@@ -1604,12 +1622,14 @@ export default {
|
|||||||
const gqxy_hShow = () => {
|
const gqxy_hShow = () => {
|
||||||
state.gqxy_hs = !state.gqxy_hs;
|
state.gqxy_hs = !state.gqxy_hs;
|
||||||
};
|
};
|
||||||
const showDeleteALLModal = () => {
|
const showDeleteALLModal = (type) => {
|
||||||
state.deleteAll = true;
|
state.deleteAll = true;
|
||||||
|
state.deleteType = type;
|
||||||
};
|
};
|
||||||
const delete_exit = () => {
|
const delete_exit = () => {
|
||||||
state.deleteAll = false;
|
state.deleteAll = false;
|
||||||
deletecTaskAll();
|
deletecTaskAll();
|
||||||
|
state.deleteType = null;
|
||||||
};
|
};
|
||||||
const showDeleteModal = (id) => {
|
const showDeleteModal = (id) => {
|
||||||
state.deleteID = id;
|
state.deleteID = id;
|
||||||
@@ -1729,6 +1749,7 @@ export default {
|
|||||||
chapterId: state.removeStageId,
|
chapterId: state.removeStageId,
|
||||||
routerTaskIdList: state.selectRow,
|
routerTaskIdList: state.selectRow,
|
||||||
};
|
};
|
||||||
|
console.log("移动关卡obj", obj);
|
||||||
api
|
api
|
||||||
.moveTask(obj)
|
.moveTask(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
@@ -1736,12 +1757,15 @@ export default {
|
|||||||
message.destroy();
|
message.destroy();
|
||||||
message.success("移动成功");
|
message.success("移动成功");
|
||||||
localStorage.setItem("chapterId", state.chooseChapterId);
|
localStorage.setItem("chapterId", state.chooseChapterId);
|
||||||
|
state.selectRow = []; //选择行
|
||||||
|
state.selectAll = 0; //0:未选择,1:全选,2:部分选择
|
||||||
getDetail();
|
getDetail();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.log("移动失败", err);
|
console.log("移动失败", err);
|
||||||
});
|
});
|
||||||
state.visiblene = false;
|
state.visiblene = false;
|
||||||
|
state.curLevel = null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
//编辑的按钮
|
//编辑的按钮
|
||||||
@@ -1812,10 +1836,12 @@ export default {
|
|||||||
};
|
};
|
||||||
const closeChangeModal = () => {
|
const closeChangeModal = () => {
|
||||||
state.visiblene = false;
|
state.visiblene = false;
|
||||||
|
state.curLevel = null;
|
||||||
};
|
};
|
||||||
const handleChangeStage = (value, option) => {
|
const handleChangeStage = (value, option) => {
|
||||||
console.log("阶段改变", value, option);
|
console.log("阶段改变", value, option);
|
||||||
state.removeStageId = option.chapterId;
|
state.removeStageId = option.chapterId;
|
||||||
|
state.curLevel = option.name;
|
||||||
};
|
};
|
||||||
|
|
||||||
//显示切换模式抽屉
|
//显示切换模式抽屉
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -586,7 +586,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 120px; text-align: center">
|
<div
|
||||||
|
style="
|
||||||
|
width: 120px;
|
||||||
|
text-align: center;
|
||||||
|
text-align: center;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
"
|
||||||
|
:title="element.creater"
|
||||||
|
>
|
||||||
{{ element.creater }}
|
{{ element.creater }}
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 120px; text-align: center">
|
<div style="width: 120px; text-align: center">
|
||||||
@@ -1127,7 +1137,7 @@ export default {
|
|||||||
voteId: "", //删除投票id
|
voteId: "", //删除投票id
|
||||||
deleteID: "",
|
deleteID: "",
|
||||||
selectRow: [], //选择行
|
selectRow: [], //选择行
|
||||||
curLevel: [], //阶段名称
|
curLevel: null, //阶段名称
|
||||||
selectAll: 0, //0:未选择,1:全选,2:部分选择
|
selectAll: 0, //0:未选择,1:全选,2:部分选择
|
||||||
|
|
||||||
updateStageID: null, //编辑阶段id
|
updateStageID: null, //编辑阶段id
|
||||||
@@ -1209,7 +1219,7 @@ export default {
|
|||||||
taskList: value.taskList,
|
taskList: value.taskList,
|
||||||
value: value.stageId,
|
value: value.stageId,
|
||||||
label: value.name,
|
label: value.name,
|
||||||
courseId: value.courseId ? value.courseId : null
|
courseId: value.courseId ? value.courseId : null,
|
||||||
};
|
};
|
||||||
array.push(obj);
|
array.push(obj);
|
||||||
}
|
}
|
||||||
@@ -1388,7 +1398,6 @@ export default {
|
|||||||
getTableData(taskListAll);
|
getTableData(taskListAll);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
console.log(stage);
|
console.log(stage);
|
||||||
let stageList = res.data.data.stageList; //阶段数组
|
let stageList = res.data.data.stageList; //阶段数组
|
||||||
@@ -1406,16 +1415,16 @@ export default {
|
|||||||
// console.log("任务列表", stage, arr);
|
// console.log("任务列表", stage, arr);
|
||||||
// getTableData(arr);
|
// getTableData(arr);
|
||||||
}
|
}
|
||||||
//获取阶段列表
|
// //获取阶段列表
|
||||||
let stagearr = res.data.data.stageList;
|
let stagearr = res.data.data.stageList;
|
||||||
let arrlist = state.curLevel;
|
// let arrlist = state.curLevel;
|
||||||
console.log(stagearr, 111111);
|
console.log(stagearr, 111111);
|
||||||
if (stagearr.length > 0) {
|
if (stagearr.length > 0) {
|
||||||
getStageData(stagearr);
|
getStageData(stagearr);
|
||||||
stagearr.map((value) => {
|
// stagearr.map((value) => {
|
||||||
console.log(value);
|
// console.log(value);
|
||||||
arrlist.push(value);
|
// // arrlist.push(value);
|
||||||
});
|
// });
|
||||||
}
|
}
|
||||||
//给阶段id赋初始值
|
//给阶段id赋初始值
|
||||||
let stageid = localStorage.getItem("stageId")
|
let stageid = localStorage.getItem("stageId")
|
||||||
@@ -1489,8 +1498,11 @@ export default {
|
|||||||
console.log("移动成功", res);
|
console.log("移动成功", res);
|
||||||
message.destroy();
|
message.destroy();
|
||||||
message.success("移动成功");
|
message.success("移动成功");
|
||||||
|
state.selectRow = []; //选择行
|
||||||
|
state.selectAll = 0; //0:未选择,1:全选,2:部分选择
|
||||||
console.log(state.removeStageId);
|
console.log(state.removeStageId);
|
||||||
getTask();
|
getTask();
|
||||||
|
|
||||||
localStorage.setItem("stageId", state.chooseStageId);
|
localStorage.setItem("stageId", state.chooseStageId);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
@@ -1636,7 +1648,7 @@ export default {
|
|||||||
console.log("删除阶段成功", res);
|
console.log("删除阶段成功", res);
|
||||||
message.success("删除阶段成功");
|
message.success("删除阶段成功");
|
||||||
closeDeleteStage();
|
closeDeleteStage();
|
||||||
localStorage.setItem("stageId", "")
|
localStorage.setItem("stageId", "");
|
||||||
getTask();
|
getTask();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
@@ -1661,7 +1673,7 @@ export default {
|
|||||||
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
|
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
|
||||||
});
|
});
|
||||||
const showDrawerOnline = (id, eleId) => {
|
const showDrawerOnline = (id, eleId) => {
|
||||||
console.log('id, eleId',id, eleId);
|
console.log("id, eleId", id, eleId);
|
||||||
state.addonlinevisible = true;
|
state.addonlinevisible = true;
|
||||||
state.EditOnlineId = id;
|
state.EditOnlineId = id;
|
||||||
state.projectTaskId = eleId;
|
state.projectTaskId = eleId;
|
||||||
|
|||||||
Reference in New Issue
Block a user