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

This commit is contained in:
zhangyc
2022-12-03 19:42:54 +08:00
6 changed files with 172 additions and 131 deletions

View File

@@ -1,27 +1,27 @@
<template>
<div id="container" v-if="!isLogin">
<nav-top />
<nav-top/>
<div style="display: flex">
<nav-left />
<nav-left/>
<div style="flex: 1; display: flex; flex-direction: column; width: 0">
<open-pages />
<bread-crumb />
<open-pages/>
<bread-crumb/>
<main>
<a-config-provider :locale="zhCN">
<router-view />
<router-view/>
</a-config-provider>
</main>
</div>
</div>
</div>
<div id="container" v-if="isLogin">
<router-view />
<router-view/>
</div>
</template>
<script>
import { computed, defineComponent, ref, watch } from "vue";
import { useRouter, useRoute } from "vue-router";
import { useStore } from "vuex";
import {computed, defineComponent, ref, watch} from "vue";
import {useRouter, useRoute} from "vue-router";
import {useStore} from "vuex";
import NavLeft from "@/components/NavLeft";
import NavTop from "@/components/NavTop";
import OpenPages from "@/components/OpenPages";
@@ -29,6 +29,7 @@ import BreadCrumb from "@/components/BreadCrumb";
import zhCN from "ant-design-vue/es/locale/zh_CN";
import * as api from "./api/index1";
import * as api1 from "@/api/index1";
import * as api2 from "@/api/index";
export default defineComponent({
components: {
@@ -59,6 +60,7 @@ export default defineComponent({
function init() {
console.log(store);
getUserInfo();
initDict("faceclassPic");
initDict("faceclassClass");
initDict("faceclassScene");
@@ -70,15 +72,20 @@ export default defineComponent({
getOrgTree();
}
async function getUserInfo() {
const userInfo = await api2.userInfo()
store.commit("SET_USER", userInfo);
}
async function initDict(key) {
let list = localStorage.getItem(key);
if (list) {
store.commit("SET_DICT", { key, data: JSON.parse(list) });
store.commit("SET_DICT", {key, data: JSON.parse(list)});
return;
}
list = await getDictList(key);
localStorage.setItem(key, JSON.stringify(list));
store.commit("SET_DICT", { key, data: list });
store.commit("SET_DICT", {key, data: list});
}
const getDictList = (param) =>

View File

@@ -52,7 +52,7 @@ export const createProject = (obj) => http.post('/admin/project/edit', obj)
export const getProjectList = (obj) => http.post('/admin/project/list', obj)
// 获取项目详情信息(包含阶段及任务列表)
export const getProjectDetail = (obj) => http.get('/admin/project/detail', { params: obj })
export const getProjectDetail = (obj) => http.get('/admin/project/detail', {params: obj})
//发布项目
export const releaseProject = (obj) => http.post('/admin/project/publish', obj)
//获取项目学员
@@ -70,10 +70,11 @@ export const getDiscussDetail = (obj) => http.post('/discuss/getDiscussDetail',
//获取模版列表
export const getTemplate = (obj) => http.post('/admin/project/template/list', obj)
//获取模版详细信息
export const getTemplateDetail = (obj) => http.get('/admin/project/template/detail', { params: obj })
export const getTemplateDetail = (obj) => http.get('/admin/project/template/detail', {params: obj})
//获取项目统计
export const getProjectCount = (projectId) => http.get('/admin/project/projectCount', { params: { projectId: projectId } })
export const getProjectCount = (projectId) => http.get('/admin/project/projectCount', {params: {projectId: projectId}})
export const login = (obj) => http.post('/admin/CheckUser/userLogin', obj)
export const userInfo = () => http.get('/admin/CheckUser/userInfo')

View File

@@ -55,12 +55,13 @@
</div>
</div>
</div>
<down-load v-model:downloadVisible="visible" />
<down-load v-model:downloadVisible="visible"/>
</template>
<script>
import { reactive, toRefs } from "vue";
import {reactive, toRefs} from "vue";
import DownLoad from "../components/drawers/DownLoad";
import * as api from "../api/index1";
export default {
name: "NavTop",
components: {
@@ -118,6 +119,14 @@ export default {
getUser();
const logOut = () => {
localStorage.removeItem('faceclassPic');
localStorage.removeItem('faceclassClass');
localStorage.removeItem('faceclassScene');
localStorage.removeItem('projectLevel');
localStorage.removeItem('projectSys');
localStorage.removeItem('pathmapPic');
localStorage.removeItem('projectClass');
localStorage.removeItem('projectPic');
window.open("https://u-pre.boe.com/web/", "_self");
};
return {
@@ -142,9 +151,11 @@ export default {
display: flex;
justify-content: space-between;
background-color: rgba(255, 255, 255, 1);
.navTopRight {
display: flex;
}
.role {
display: flex;
align-items: center;
@@ -154,6 +165,7 @@ export default {
line-height: 36px;
cursor: pointer;
position: relative;
.roleArrow {
width: 13px;
height: 7px;
@@ -161,6 +173,7 @@ export default {
background-image: url(../assets/images/navtop/down.png);
background-size: 100%;
}
.roleItems {
width: 109px;
height: 90px;
@@ -174,22 +187,27 @@ export default {
display: none;
z-index: 100;
}
.roleItem {
font-size: 14px;
font-weight: 400;
color: rgba(79, 81, 86, 1);
line-height: 36px;
}
.roleItem:hover {
color: #4ea6ff;
}
}
.role:hover .roleItems {
display: block;
}
.role:hover .roleArrow {
background-image: url(../assets/images/navtop/up.png);
}
.user {
margin-left: 37px;
display: flex;
@@ -199,12 +217,14 @@ export default {
color: #b3bdc4;
line-height: 36px;
}
.signOutMain {
cursor: pointer;
margin-right: 29px;
display: flex;
align-items: center;
}
.signOut {
font-size: 16px;
font-weight: 400;

View File

@@ -115,9 +115,9 @@
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
<div class="pa">
<div class="pa" style="display:flex;justify-content:center;padding:20px;">
<a-pagination
v-if="total > 10"
v-if="tableDataTotal > 10"
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
@@ -288,7 +288,7 @@ export default {
};
list(objn)
.then((res) => {
console.log(res.data.data.rows);
console.log('面授课列表', res.data.data);
let result = res.data.data;
state.tableDataTotal = result.total;
getClassData(result.rows);

View File

@@ -28,10 +28,12 @@ export default {
props: {
value: {
type: Number,
type: String,
default: ''
},
name: {
type: Number,
type: String,
default: ''
},
disabled: {
type: Boolean,
@@ -55,9 +57,9 @@ export default {
loading: false,
init: false
});
const getMemberThrottle = throttle(getMember, 500)
watch(() => state.memberParam, getMemberThrottle)
watch(()=>state.memberParam.keyWord , throttle(getMember, 500))
watch(()=>state.memberParam.pageNo , throttle(getPushMember, 500))
watch(props, init)
onMounted(() => {
@@ -71,15 +73,21 @@ export default {
getMemberData()
}
function getPushMember() {
state.loading = true
getMemberData()
}
function getMemberData() {
console.log('getMemberData')
api1.getMemberInfo(state.memberParam).then((res) => {
const list = res.data.data.rows.filter(e => !props.value?.includes(e.id + '')).map(e => ({
const list = res.data.data.rows.filter(e => !(props.value + '')?.includes(e.id + '')).map(e => ({
label: e.realName,
value: e.id
}));
if (state.memberParam.pageNo === 1 && props.value) {
const arrManagerId = props.value.split(',')
const arrManagerId = (props.value + '').split(',')
const arrManager = props.name.split(',')
state.options = [...arrManager.map((e, i) => ({label: e, value: arrManagerId[i]})), ...list]
} else state.options.push(...list)
@@ -102,10 +110,11 @@ export default {
function init() {
console.log('init--', props)
if (props.value !== typeof state.managerArray === 'object' ? state.managerArray.join(',') : state.managerArray) {
console.log(Array.isArray(state.managerArray))
if ((props.value + '') !== (Array.isArray(state.managerArray) ? state.managerArray.join(',') : (state.managerArray + ''))) {
if (props.value) {
const arrManager = props.name.split(',')
const arrManagerId = props.value.split(',')
const arrManagerId = (props.value + '').split(',')
state.managerArray = props.mode === 'select' ? props.value : arrManagerId;
state.options = arrManager.map((e, i) => ({label: e, value: arrManagerId[i]}))
} else {
@@ -124,7 +133,7 @@ export default {
}
function change(e, l) {
console.log('change')
console.log('change', l)
if (Array.isArray(l)) {
ctx.emit('update:value', l.map(t => t.value).join(','))
ctx.emit('update:name', l.map(t => t.label).join(','))

View File

@@ -6,7 +6,7 @@
* @FilePath: /fe-manage/src/store/index.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { createStore } from "vuex";
import {createStore} from "vuex";
// import * as api from '../api/index1'
export default createStore({
state: {
@@ -23,6 +23,7 @@ export default createStore({
assessmentName: "",
routerId: null,
projectTemplateId: null,
userInfo: {},
orgtreeList: [],
faceclassPic: null,
faceclassClass: [],
@@ -51,9 +52,12 @@ export default createStore({
getOrgtreeList(state, data) {
state.orgtreeList = data
},
SET_DICT(state, { key, data }) {
SET_DICT(state, {key, data}) {
state[key] = data
},
SET_USER(state, userInfo) {
state.userInfo = userInfo
},
SET_projectTemplateId(state, projectTemplateId) {
state.projectTemplateId = projectTemplateId;
}