feat:修改token失效

This commit is contained in:
lixg
2022-11-29 13:45:02 +08:00
parent dc1f46a19c
commit 556ad2d54d
3 changed files with 505 additions and 442 deletions

View File

@@ -41,7 +41,7 @@ export default defineComponent({
const store = useStore();
const isLogin = ref(false);
// console.log("router", router.getRoutes(), route);
console.log("版本0.01------------");
console.log("版本0.02------------");
const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink);
});

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-29 13:07:24
* @LastEditTime: 2022-11-29 13:44:40
* @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -52,7 +52,10 @@ http.interceptors.response.use(
if (code === 0 || code === 200) {
return response;
} else {
if (code === 1000) {
window.open("https://u-pre.boe.com/web/", '_self');
}
// window.open("https://u-pre.boe.com/web/", '_self');
console.log("api %o", msg);
}
return response;

View File

@@ -5,11 +5,12 @@
<img class="img" src="../../assets/images/projectadd/picture.png" />
</div>
<div class="imgfor">
<div class="forz">{{projectInfo.name || '-'}}</div>
<div class="forz">{{ projectInfo.name || "-" }}</div>
<div class="fort">
<div class="fort1">项目经理{{projectInfo.manager || '-'}}</div>
<div class="fort1">项目经理{{ projectInfo.manager || "-" }}</div>
<div class="fort2">
起止时间{{projectInfo.beginTime || '-'}} {{projectInfo.endTime || '-'}}
起止时间{{ projectInfo.beginTime || "-" }}
{{ projectInfo.endTime || "-" }}
</div>
</div>
</div>
@@ -54,7 +55,7 @@
<div class="split"></div>
<div class="onerow">
<div class="taskmain">任务大纲</div>
<button class="btn" @click="showFaceIn">批量面授报名</button>
<!-- <button class="btn" @click="showFaceIn">批量面授报名</button> -->
<router-link to="/temTask" class="edit">
<img
class="editimg"
@@ -272,14 +273,17 @@
</div>
</a-tab-pane>
<a-tab-pane key="2" tab="公告" force-render>
<div class="split"></div>
<a-tabs v-model:activeKey="activeKeyNotice">
<a-tab-pane key="11" tab="公告">
<div class="notice">
<div class="ntc_body">
<div class="ntc_switch">
<a-switch size="small" v-model:checked="checked" @click="changeopclo" />
<a-switch
size="small"
v-model:checked="checked"
@click="changeopclo"
/>
<div
class="opclo"
:style="{ display: hideshow ? 'block' : 'none' }"
@@ -317,9 +321,7 @@
</div>
</div>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
<a-tab-pane key="3" tab="项目积分">
<div class="split"></div>
@@ -331,7 +333,7 @@
<div class="pjc_body">
<div class="groupright">
<div class="spandiv"><span class="spantext">规则</span></div>
<div v-if="edit" class="btns" style="display:none">
<div v-if="edit" class="btns" style="display: none">
<div class="btn1" @click="edit = !edit">
<img src="../../assets/images/projectadd/edit1.png" />
<span class="btn1text">编辑</span>
@@ -505,26 +507,33 @@
<div class="setc_name"><span>项目时间</span></div>
<div class="setc_main">
<span style="color: #999999"
>{{ projectInfo.beginTime }} {{ projectInfo.endTime }}</span
>{{ projectInfo.beginTime }}
{{ projectInfo.endTime }}</span
>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目经理</span></div>
<div class="setc_main">
<span style="color: #999999">{{ projectInfo.manager }}</span>
<span style="color: #999999">{{
projectInfo.manager
}}</span>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>资源归属</span></div>
<div class="setc_main">
<span style="color: #999999">{{ projectInfo.sourceBelong }}</span>
<span style="color: #999999">{{
projectInfo.sourceBelong
}}</span>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目说明</span></div>
<div class="setc_main">
<span style="color: #999999">{{ projectInfo.remark }}</span>
<span style="color: #999999">{{
projectInfo.remark
}}</span>
</div>
</div>
<div class="set_content">
@@ -540,13 +549,17 @@
<div class="set_content">
<div class="setc_name"><span>项目级别</span></div>
<div class="setc_main">
<span style="color: #999999">{{ projectInfo.level }}</span>
<span style="color: #999999">{{
projectInfo.level
}}</span>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>培训体系</span></div>
<div class="setc_main">
<span style="color: #999999">{{ projectInfo.systemId }}</span>
<span style="color: #999999">{{
projectInfo.systemId
}}</span>
</div>
</div>
<div class="set_content">
@@ -569,32 +582,51 @@
<div class="box"></div>
<div class="onetitle">上传共享文档</div>
<div class="oneedi">
<a-switch v-model:checked="docChecked" ></a-switch>
<a-switch v-model:checked="docChecked"></a-switch>
</div>
</div>
<div class="btnbox" style="margin:20px;">
<div class="btnbox" style="margin: 20px">
<a-upload
v-model:file-list="fileList"
name="file"
action="/api/file/upload"
@change="handleChange"
>
<span class="xkbtn" style="cursor: pointer; font-size: 17px" >上传</span>
<img src="@/assets/images/basicinfo/cloud.png" style="cursor: pointer;
width:34px;height:34px;
" alt="">
<span
class="xkbtn"
style="cursor: pointer; font-size: 17px"
>上传</span
>
<img
src="@/assets/images/basicinfo/cloud.png"
style="cursor: pointer; width: 34px; height: 34px"
alt=""
/>
</a-upload>
<div class="btnbox" style="margin:20px;">
<div class="btnbox" style="margin: 20px">
<span style="color: #999999">
支持pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip
</span>
</div>
<div v-for="item in docList" :key="item.src" class="docListStyle">
<img src="@/assets/images/basicinfo/download.png" style="cursor: pointer;
width:40px;height:40px;margin-right:40px;
" alt="">
<span style="font: oblique 16px Sans-serif">{{item.name}}</span>
<span style="color: #4ea6ff;float:right;">删除</span>
<div
v-for="item in docList"
:key="item.src"
class="docListStyle"
>
<img
src="@/assets/images/basicinfo/download.png"
style="
cursor: pointer;
width: 40px;
height: 40px;
margin-right: 40px;
"
alt=""
/>
<span style="font: oblique 16px Sans-serif">{{
item.name
}}</span>
<span style="color: #4ea6ff; float: right">删除</span>
</div>
</div>
</div>
@@ -646,11 +678,18 @@
</template>
<script>
import { ref, reactive, defineComponent, toRefs, onMounted,computed} from "vue";
import {
ref,
reactive,
defineComponent,
toRefs,
onMounted,
computed,
} from "vue";
import { message } from "ant-design-vue";
import * as api from "@/api/indexTemplate"
import * as api from "@/api/indexTemplate";
import { useRouter } from "vue-router";
import {scoreRule,setScoreRule} from "@/api/indexTaskadd"
import { scoreRule, setScoreRule } from "@/api/indexTaskadd";
export default defineComponent({
name: "LibraryAdd",
setup() {
@@ -736,27 +775,27 @@ export default defineComponent({
},
],
// 模板编辑列表
managerOptions:[
{ value: "李俊国"},
{ value: "将小米"},
{ value: "刘孟君"},
managerOptions: [
{ value: "李俊国" },
{ value: "将小米" },
{ value: "刘孟君" },
],
sourceBelongOptions:[
{ value: "项目一"},
{ value: "项目二"},
{ value: "项目三"},
sourceBelongOptions: [
{ value: "项目一" },
{ value: "项目二" },
{ value: "项目三" },
],
levelOptions:[
{ value: "集团级"},
{ value: "组织级"},
{ value: "现地级"},
{ value: "部门级"},
levelOptions: [
{ value: "集团级" },
{ value: "组织级" },
{ value: "现地级" },
{ value: "部门级" },
],
systemOptions:[
{ value: "集团级"},
{ value: "组织级"},
{ value: "现地级"},
{ value: "部门级"},
systemOptions: [
{ value: "集团级" },
{ value: "组织级" },
{ value: "现地级" },
{ value: "部门级" },
],
taskSyllabusActive: 0,
//在线管理等页面传递参数
@@ -768,7 +807,7 @@ export default defineComponent({
checked: true,
checked2: false,
checked3: false,
docChecked:true,
docChecked: true,
value3: false,
value4: false,
hideshow: true,
@@ -787,25 +826,25 @@ export default defineComponent({
seven2: null,
edit: true,
// 共享文档列表
docList:[
docList: [
{
name:'测试文档1.doc',
src:"",
name: "测试文档1.doc",
src: "",
},
{
name:'测试文档2.doc',
src:"",
name: "测试文档2.doc",
src: "",
},
{
name:'测试文档3.doc',
src:"",
}
name: "测试文档3.doc",
src: "",
},
],
isEdit:false, // 是否处于编辑状态
isEdit: false, // 是否处于编辑状态
// 基本信息
projectInfo:{
beginTime:null,
endTime:null,
projectInfo: {
beginTime: null,
endTime: null,
name: null,
manager: null,
notice: null,
@@ -815,10 +854,10 @@ export default defineComponent({
level: null,
systemId: null,
boeFlag: false,
status:null,
status: null,
picUrl: null,
noticeFlag: null,
}
},
});
const value = ref("");
const textnum = "150";
@@ -881,30 +920,38 @@ export default defineComponent({
});
// 获取详情
const getDetail = () => {
api.templateDetail(localStorage.getItem('projectTemplateId')).then(res => {
state.taskSyllabus = []
api
.templateDetail(localStorage.getItem("projectTemplateId"))
.then((res) => {
state.taskSyllabus = [];
console.log(res);
state.projectInfo.name = res.data.data.projectTemplateInfo.name
state.projectInfo.beginTime = res.data.data.projectTemplateInfo.beginTime
state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice
state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId
state.projectInfo.managerId = res.data.data.projectTemplateInfo.managerId
state.projectInfo.remark = res.data.data.stageList.remark
state.projectInfo.courseSyncFlag = res.data.data.projectTemplateInfo.courseSyncFlag
state.projectInfo.level = res.data.data.projectTemplateInfo.level
state.projectInfo.systemId = res.data.data.projectTemplateInfo.systemId
state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag
state.projectInfo.noticeFlag = res.data.data.projectTemplateInfo.noticeFlag
state.projectInfo.remark = res.data.data.projectTemplateInfo.remark
state.projectInfo.status = res.data.data.projectTemplateInfo.status
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl
state.projectInfo.name = res.data.data.projectTemplateInfo.name;
state.projectInfo.beginTime =
res.data.data.projectTemplateInfo.beginTime;
state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime;
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager;
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice;
state.projectInfo.sourceBelongId =
res.data.data.projectTemplateInfo.sourceBelongId;
state.projectInfo.managerId =
res.data.data.projectTemplateInfo.managerId;
state.projectInfo.remark = res.data.data.stageList.remark;
state.projectInfo.courseSyncFlag =
res.data.data.projectTemplateInfo.courseSyncFlag;
state.projectInfo.level = res.data.data.projectTemplateInfo.level;
state.projectInfo.systemId =
res.data.data.projectTemplateInfo.systemId;
state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag;
state.projectInfo.noticeFlag =
res.data.data.projectTemplateInfo.noticeFlag;
state.projectInfo.remark = res.data.data.projectTemplateInfo.remark;
state.projectInfo.status = res.data.data.projectTemplateInfo.status;
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl;
let data = res.data.data.stageList;
console.log("data=====",data);
for(let i in data) {
state.taskSyllabus.push({text: data[i].name,children:[]});
for(let j in data[i].taskList) {
console.log("data=====", data);
for (let i in data) {
state.taskSyllabus.push({ text: data[i].name, children: [] });
for (let j in data[i].taskList) {
state.taskSyllabus[i].children.push({
course: checkType(data[i].taskList[j].type),
name: data[i].taskList[j].name,
@@ -913,65 +960,75 @@ export default defineComponent({
total: 0, //总人数
complete: 0, //完成人数
percent: 0,
});
}
}
})
}
}
}).catch(err => {
message.error("操作失败"+err)
console.log(err)
})
}
.catch((err) => {
message.error("操作失败" + err);
console.log(err);
});
};
// 发布公告
const addNotice = () => {
let obj = {
"name": state.projectInfo.name,
"category": state.projectInfo.category,
"picUrl": state.projectInfo.picUrl,
"beginTime": new Date(state.projectInfo.beginTime).getTime(),
"endTime": new Date(state.projectInfo.endTime).getTime(),
"manager": state.projectInfo.manager,
"managerId": state.projectInfo.managerId || 0,
"sourceBelongId": state.projectInfo.sourceBelongId,
"level": state.projectInfo.level,
"systemId": state.projectInfo.systemId,
"boeFlag": state.projectInfo.boeFlag ? 1:0,
"courseSyncFlag": state.projectInfo.courseSyncFlag? 1:0,
"notice": state.projectInfo.notice,
"noticeFlag": 0,
"projectTemplateId": localStorage.getItem('projectTemplateId'),
"remark": state.projectInfo.remark,
"status": state.projectInfo.status,
name: state.projectInfo.name,
category: state.projectInfo.category,
picUrl: state.projectInfo.picUrl,
beginTime: new Date(state.projectInfo.beginTime).getTime(),
endTime: new Date(state.projectInfo.endTime).getTime(),
manager: state.projectInfo.manager,
managerId: state.projectInfo.managerId || 0,
sourceBelongId: state.projectInfo.sourceBelongId,
level: state.projectInfo.level,
systemId: state.projectInfo.systemId,
boeFlag: state.projectInfo.boeFlag ? 1 : 0,
courseSyncFlag: state.projectInfo.courseSyncFlag ? 1 : 0,
notice: state.projectInfo.notice,
noticeFlag: 0,
projectTemplateId: localStorage.getItem("projectTemplateId"),
remark: state.projectInfo.remark,
status: state.projectInfo.status,
};
api.templateEdit(obj).then(res => {
message.success("公告发布成功")
console.log(res)
}).catch(err => {
message.error("公告发布失败"+err)
console.log(err)
api
.templateEdit(obj)
.then((res) => {
message.success("公告发布成功");
console.log(res);
})
}
.catch((err) => {
message.error("公告发布失败" + err);
console.log(err);
});
};
// 删除阶段
const stateDel = (id) => {
api.deleteStage(id).then(res => {
message.success("删除阶段成功")
console.log(res)
}).catch(err => {
message.error("删除阶段失败"+err)
console.log(err)
api
.deleteStage(id)
.then((res) => {
message.success("删除阶段成功");
console.log(res);
})
}
.catch((err) => {
message.error("删除阶段失败" + err);
console.log(err);
});
};
// 删除任务
const taskDel = (id) => {
api.deleteTask(id).then(res => {
message.success("删除任务成功")
console.log(res)
}).catch(err => {
message.error("删除任务失败"+err)
console.log(err)
api
.deleteTask(id)
.then((res) => {
message.success("删除任务成功");
console.log(res);
})
}
.catch((err) => {
message.error("删除任务失败" + err);
console.log(err);
});
};
const toEdit = () => {
routered.push({
path: "/templateAdd",
@@ -980,47 +1037,53 @@ export default defineComponent({
name: state.name,
},
});
}
};
// 新建或编辑阶段
const stateEdit = () => {
let obj={
"name": "",
"projectTemplateId": localStorage.getItem('projectTemplateId'),
"remark": "",
"stageId": 0
}
api.editStagek(obj).then(res => {
message.success("编辑阶段成功")
console.log(res)
}).catch(err => {
message.error("编辑阶段失败"+err)
console.log(err)
let obj = {
name: "",
projectTemplateId: localStorage.getItem("projectTemplateId"),
remark: "",
stageId: 0,
};
api
.editStagek(obj)
.then((res) => {
message.success("编辑阶段成功");
console.log(res);
})
}
.catch((err) => {
message.error("编辑阶段失败" + err);
console.log(err);
});
};
//新建或编辑阶段任务
const taskEdit = () => {
let obj = {
"courseId": 0,
"duration": 0,
"flag": true,
"name": "",
"projectTaskId": 0,
"projectTemplateId": localStorage.getItem('projectTemplateId'),
"stageId": 0,
"type": 0
}
api.editTask(obj).then(res => {
message.success("编辑任务成功")
console.log(res)
}).catch(err => {
message.error("编辑任务失败"+err)
console.log(err)
courseId: 0,
duration: 0,
flag: true,
name: "",
projectTaskId: 0,
projectTemplateId: localStorage.getItem("projectTemplateId"),
stageId: 0,
type: 0,
};
api
.editTask(obj)
.then((res) => {
message.success("编辑任务成功");
console.log(res);
})
}
.catch((err) => {
message.error("编辑任务失败" + err);
console.log(err);
});
};
const getScoreRule = () => {
scoreRule({
projectId: localStorage.getItem('projectTemplateId'),
projectId: localStorage.getItem("projectTemplateId"),
})
.then((res) => {
console.log("获取了项目积分规则", res.data.data);
@@ -1075,7 +1138,7 @@ export default defineComponent({
},
],
leaderScore: state.seven1,
projectId: localStorage.getItem('projectTemplateId'),
projectId: localStorage.getItem("projectTemplateId"),
signScore: state.six1,
topCompleteCourseItem: [
{
@@ -1125,7 +1188,7 @@ export default defineComponent({
editRule,
scoresum,
};
}
},
});
</script>
<style lang="scss">
@@ -1194,13 +1257,13 @@ export default defineComponent({
}
}
}
}
}
.editBtn {
float:right;
float: right;
margin-right: 150px;
color:#4ea6ff;
color: #4ea6ff;
cursor: pointer;
}
}
.clearfix:before,
.clearfix:after {
content: " ";
@@ -1607,14 +1670,12 @@ export default defineComponent({
}
.notice {
.ntc_tit {
padding-top:22px;
padding-top: 22px;
margin-left: 34px;
font-size: 18px;
font-weight: 500;
color: #232425;
}
.ntc_body {
margin-left: 35px;
@@ -1636,7 +1697,6 @@ export default defineComponent({
.btnarea {
display: flex;
justify-content: flex-end;
}
.area_btn {
width: 100px;
@@ -1671,7 +1731,7 @@ export default defineComponent({
}
.projectscore {
padding-top:22px;
padding-top: 22px;
.pjc_tit {
margin-left: 34px;
font-size: 18px;
@@ -1750,7 +1810,7 @@ export default defineComponent({
}
.setting {
padding-top:22px;
padding-top: 22px;
.set_tit {
margin-left: 34px;
font-size: 18px;