diff --git a/src/App.vue b/src/App.vue
index e9e32c22..e09e7e17 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -29,7 +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: {
NavLeft,
@@ -43,22 +43,20 @@ export default defineComponent({
const store = useStore();
const isLogin = ref(false);
// console.log("router", router.getRoutes(), route);
- console.log("版本0.11------------");
+ console.log("版本0.13------------");
const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink);
});
-
watch(
() => route.path,
() => {
route.path === "/login" && (isLogin.value = true);
}
);
-
const currentRouteName = computed(() => route.name);
-
function init() {
console.log(store);
+ getUserInfo();
initDict("faceclassPic");
initDict("faceclassClass");
initDict("faceclassScene");
@@ -67,9 +65,25 @@ export default defineComponent({
initDict("pathmapPic");
initDict("projectClass");
initDict("projectPic");
+ getMemberInfo();
getOrgTree();
}
-
+ async function getMemberInfo() {
+ const list = localStorage.getItem("memberInitInfo");
+ if (list) {
+ store.commit("SET_MEMBER_INFO", JSON.parse(list));
+ return;
+ }
+ const memberInitInfo = await api1
+ .getMemberInfo({ keyWord: "", pageNo: 1, pageSize: 10 })
+ .then((res) => res.data.data.rows);
+ store.commit("SET_MEMBER_INFO", memberInitInfo);
+ localStorage.setItem("memberInitInfo", JSON.stringify(memberInitInfo));
+ }
+ async function getUserInfo() {
+ const userInfo = await api2.userInfo();
+ store.commit("SET_USER", userInfo);
+ }
async function initDict(key) {
let list = localStorage.getItem(key);
if (list) {
@@ -80,7 +94,6 @@ export default defineComponent({
localStorage.setItem(key, JSON.stringify(list));
store.commit("SET_DICT", { key, data: list });
}
-
const getDictList = (param) =>
api1
.getDict({
@@ -89,7 +102,6 @@ export default defineComponent({
setCode: param,
})
.then((res) => res.data.data.rows);
-
//获取组织树
const getOrgTree = () => {
const orgtreeList = localStorage.getItem("orgtreeList");
@@ -117,9 +129,7 @@ export default defineComponent({
console.log("组织树获取失败", err);
});
};
-
init();
-
return {
isLogin,
routes,
@@ -140,17 +150,14 @@ export default defineComponent({
color: #2c3e50;
height: 100%;
}
-
#container {
margin: 0;
display: flex;
flex-direction: column;
-
width: 100%;
min-width: 1000px;
min-height: 100%;
background-color: rgba(245, 247, 250, 1);
-
main {
height: 0;
flex: 1 1 auto;
@@ -166,7 +173,6 @@ export default defineComponent({
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
}
-
// @media screen and (max-width: 1366px) {
// .cmMain {
// width: 750px;
@@ -188,4 +194,4 @@ export default defineComponent({
// }
// }
}
-
+
\ No newline at end of file
diff --git a/src/api/config.js b/src/api/config.js
index e5013af6..e8171905 100644
--- a/src/api/config.js
+++ b/src/api/config.js
@@ -2,10 +2,11 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com
- * @LastEditTime: 2022-12-02 17:13:55
+ * @LastEditTime: 2022-12-04 13:27:07
* @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
+import { message } from "ant-design-vue";
import axios from "axios";
// import { getCookie } from '../api/method'
// const Qs = require("qs");
@@ -23,6 +24,7 @@ const http = axios.create({
http.interceptors.request.use(
(config) => {
+ // console.log('config', config)
// const token = localStorage.getItem("token");
// // const token = getCookie('token')
// // console.log('token', token)
@@ -54,12 +56,17 @@ http.interceptors.response.use(
} else {
if (code === 1000) {
// window.open("https://u-pre.boe.com/web/", '_self');
+ // window.open("http://111.231.196.214:12013/manage/login", '_self');
}
console.log("api %o", msg);
}
return response;
},
function (error) {
+ if (error.message == "timeout of 1ms exceeded") {
+ message.destroy()
+ message.error("请求超时")
+ }
console.log("api error %o", error);
return Promise.reject(error);
}
diff --git a/src/api/index.js b/src/api/index.js
index 489a97a8..21944ade 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -18,28 +18,28 @@ import http from "./config";
* name: user
* }
* }).then(res => console.log(res))
- *
+ *
* 接口传参三种方式(post/put/patch)
- *
+ *
* 1.'Content-Type'= 'multipart/form-data',传参格式为 formData。
* (全局请求头:'Content-Type'= 'application/x-www-form-urlencoded')
* (request的Header:'Content-Type'= 'multipart/form-data')
* var formData=new FormData();
* formData.append('user',123456);formData.append('pass',12345678);
* axios.post("/notice",formData).then()
- *
+ *
* 2.'Content-Type'= 'application/x-www-form-urlencoded',传参格式为 query 形式,使用$qs.stringify。
* (全局请求头:'Content-Type'= 'application/x-www-form-urlencoded')
* (request的Header:'Content-Type'= 'application/x-www-form-urlencoded')
* let data = {"code":"1234","name":"yyyy"};
* axios.post(`${this.$url}/test/testRequest`,qs.stringify({data})).then()
- *
+ *
* 3.'Content-Type'= 'application/json,传参格式为 raw (JSON格式)。
* (全局请求头:'Content-Type'= 'application/x-www-form-urlencoded')
* (request的Header:'Content-Type'= 'application/json;charset=UTF-8')
* let data = {"code":"1234","name":"yyyy"}
* axios.post(`${this.$url}/test/testRequest`,data).then()
- *
+ *
*/
@@ -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')
diff --git a/src/assets/images/leveladd/pinggu.png b/src/assets/images/leveladd/pinggu.png
new file mode 100644
index 00000000..ef4afd06
Binary files /dev/null and b/src/assets/images/leveladd/pinggu.png differ
diff --git a/src/assets/images/leveladd/xiangmu.png b/src/assets/images/leveladd/xiangmu.png
new file mode 100644
index 00000000..fe1310fe
Binary files /dev/null and b/src/assets/images/leveladd/xiangmu.png differ
diff --git a/src/components/NavTop.vue b/src/components/NavTop.vue
index 88ba9201..a8fc96fd 100644
--- a/src/components/NavTop.vue
+++ b/src/components/NavTop.vue
@@ -2,8 +2,8 @@
@@ -11,10 +11,10 @@
{{ value.name }}
@@ -22,14 +22,14 @@
{{ username }}
@@ -47,20 +47,21 @@
-->
登出
-
+
-
+
\ No newline at end of file
diff --git a/src/components/drawers/ProjPowerList.vue b/src/components/drawers/ProjPowerList.vue
index 5c65c17e..228b2399 100644
--- a/src/components/drawers/ProjPowerList.vue
+++ b/src/components/drawers/ProjPowerList.vue
@@ -133,6 +133,7 @@
diff --git a/src/components/project/ProjectClass.vue b/src/components/project/ProjectClass.vue
index 6364db17..854235d3 100644
--- a/src/components/project/ProjectClass.vue
+++ b/src/components/project/ProjectClass.vue
@@ -1,55 +1,46 @@
-
diff --git a/src/components/project/ProjectLevel.vue b/src/components/project/ProjectLevel.vue
index 87f724f1..c8eeee67 100644
--- a/src/components/project/ProjectLevel.vue
+++ b/src/components/project/ProjectLevel.vue
@@ -1,45 +1,42 @@
-
diff --git a/src/components/project/ProjectManager.vue b/src/components/project/ProjectManager.vue
index aaa314b0..21b31a40 100644
--- a/src/components/project/ProjectManager.vue
+++ b/src/components/project/ProjectManager.vue
@@ -1,5 +1,10 @@
state.memberParam, getMemberThrottle)
+ watch(()=>state.memberParam.keyWord , throttle(getMember, 500))
+ watch(()=>state.memberParam.pageNo , throttle(getPushMember, 500))
watch(props, init)
onMounted(() => {
@@ -71,15 +78,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 +115,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 +138,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(','))
diff --git a/src/components/project/ProjectManagerNew.vue b/src/components/project/ProjectManagerNew.vue
new file mode 100644
index 00000000..40422f1f
--- /dev/null
+++ b/src/components/project/ProjectManagerNew.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/project/TrainClass.vue b/src/components/project/TrainClass.vue
index ccac922a..3d837b53 100644
--- a/src/components/project/TrainClass.vue
+++ b/src/components/project/TrainClass.vue
@@ -1,52 +1,43 @@
-
diff --git a/src/store/index.js b/src/store/index.js
index 1e92f749..c7979bfa 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -6,60 +6,68 @@
* @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: {
- openpages: localStorage.getItem("openpages")
- ? JSON.parse(localStorage.getItem("openpages"))
- : [
- {
- pagename: "学习路径图",
- href: "/learningpath",
- active: true,
+ state: {
+ openpages: localStorage.getItem("openpages")
+ ? JSON.parse(localStorage.getItem("openpages"))
+ : [
+ {
+ pagename: "学习路径图",
+ href: "/learningpath",
+ active: true,
+ },
+ ],
+
+ assessmentName: "",
+ routerId: null,
+ projectTemplateId: null,
+ userInfo: {},
+ orgtreeList: [],
+ faceclassPic: null,
+ faceclassClass: [],
+ faceclassScene: [],
+ projectLevel: [],//项目级别
+ projectSys: [],//培训分类
+ pathmapPic: [],//学习路径背景图
+ memberInitInfo: [],//学员默认
+ },
+ getters: {},
+ mutations: {
+ chengeOpenpages(state, list) {
+ // console.log('list', list)
+ state.openpages = list;
+ },
+ chengeRouterId(state, routerId) {
+ // console.log('list', list)
+ state.routerId = routerId;
},
- ],
- assessmentName: "",
- routerId: null,
- projectTemplateId: null,
- orgtreeList: [],
- faceclassPic: null,
- faceclassClass: [],
- faceclassScene: [],
- projectLevel: [],//项目级别
- projectSys: [],//培训分类
- pathmapPic: [],//学习路径背景图
- },
- getters: {},
- mutations: {
- chengeOpenpages(state, list) {
- // console.log('list', list)
- state.openpages = list;
- },
- chengeRouterId(state, routerId) {
- // console.log('list', list)
- state.routerId = routerId;
- },
-
- SET_assessmentName(state, name) {
- state.assessmentName = name;
- console.log("state.assessmentName");
- console.log(state.assessmentName);
- },
- //获取组织树
- getOrgtreeList(state, data) {
- state.orgtreeList = data
- },
- SET_DICT(state, { key, data }) {
- state[key] = data
- },
- SET_projectTemplateId(state, projectTemplateId) {
- state.projectTemplateId = projectTemplateId;
- }
+ SET_assessmentName(state, name) {
+ state.assessmentName = name;
+ console.log("state.assessmentName");
+ console.log(state.assessmentName);
+ },
+ //获取组织树
+ getOrgtreeList(state, data) {
+ state.orgtreeList = data
+ },
+ SET_DICT(state, {key, data}) {
+ state[key] = data
+ },
+ SET_MEMBER_INFO(state, data) {
+ state.memberInitInfo = data
+ },
+ SET_USER(state, userInfo) {
+ state.userInfo = userInfo
+ },
+ SET_projectTemplateId(state, projectTemplateId) {
+ state.projectTemplateId = projectTemplateId;
+ }
- },
- actions: {},
- modules: {},
+ },
+ actions: {},
+ modules: {},
});
diff --git a/src/views/courselibrary/CoursewareManage.vue b/src/views/courselibrary/CoursewareManage.vue
index 1de45dc8..246fbfea 100644
--- a/src/views/courselibrary/CoursewareManage.vue
+++ b/src/views/courselibrary/CoursewareManage.vue
@@ -7,53 +7,53 @@
@@ -81,16 +81,16 @@