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 store = useStore();
const isLogin = ref(false); const isLogin = ref(false);
// console.log("router", router.getRoutes(), route); // console.log("router", router.getRoutes(), route);
console.log("版本0.01------------"); console.log("版本0.02------------");
const routes = computed(() => { const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink); return router.getRoutes().filter((e) => e.meta?.isLink);
}); });

View File

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

View File

@@ -5,11 +5,12 @@
<img class="img" src="../../assets/images/projectadd/picture.png" /> <img class="img" src="../../assets/images/projectadd/picture.png" />
</div> </div>
<div class="imgfor"> <div class="imgfor">
<div class="forz">{{projectInfo.name || '-'}}</div> <div class="forz">{{ projectInfo.name || "-" }}</div>
<div class="fort"> <div class="fort">
<div class="fort1">项目经理{{projectInfo.manager || '-'}}</div> <div class="fort1">项目经理{{ projectInfo.manager || "-" }}</div>
<div class="fort2"> <div class="fort2">
起止时间{{projectInfo.beginTime || '-'}} {{projectInfo.endTime || '-'}} 起止时间{{ projectInfo.beginTime || "-" }}
{{ projectInfo.endTime || "-" }}
</div> </div>
</div> </div>
</div> </div>
@@ -54,7 +55,7 @@
<div class="split"></div> <div class="split"></div>
<div class="onerow"> <div class="onerow">
<div class="taskmain">任务大纲</div> <div class="taskmain">任务大纲</div>
<button class="btn" @click="showFaceIn">批量面授报名</button> <!-- <button class="btn" @click="showFaceIn">批量面授报名</button> -->
<router-link to="/temTask" class="edit"> <router-link to="/temTask" class="edit">
<img <img
class="editimg" class="editimg"
@@ -272,14 +273,17 @@
</div> </div>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="2" tab="公告" force-render> <a-tab-pane key="2" tab="公告" force-render>
<div class="split"></div> <div class="split"></div>
<a-tabs v-model:activeKey="activeKeyNotice"> <a-tabs v-model:activeKey="activeKeyNotice">
<a-tab-pane key="11" tab="公告"> <a-tab-pane key="11" tab="公告">
<div class="notice"> <div class="notice">
<div class="ntc_body"> <div class="ntc_body">
<div class="ntc_switch"> <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 <div
class="opclo" class="opclo"
:style="{ display: hideshow ? 'block' : 'none' }" :style="{ display: hideshow ? 'block' : 'none' }"
@@ -317,9 +321,7 @@
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="3" tab="项目积分"> <a-tab-pane key="3" tab="项目积分">
<div class="split"></div> <div class="split"></div>
@@ -505,26 +507,33 @@
<div class="setc_name"><span>项目时间</span></div> <div class="setc_name"><span>项目时间</span></div>
<div class="setc_main"> <div class="setc_main">
<span style="color: #999999" <span style="color: #999999"
>{{ projectInfo.beginTime }} {{ projectInfo.endTime }}</span >{{ projectInfo.beginTime }}
{{ projectInfo.endTime }}</span
> >
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>项目经理</span></div> <div class="setc_name"><span>项目经理</span></div>
<div class="setc_main"> <div class="setc_main">
<span style="color: #999999">{{ projectInfo.manager }}</span> <span style="color: #999999">{{
projectInfo.manager
}}</span>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>资源归属</span></div> <div class="setc_name"><span>资源归属</span></div>
<div class="setc_main"> <div class="setc_main">
<span style="color: #999999">{{ projectInfo.sourceBelong }}</span> <span style="color: #999999">{{
projectInfo.sourceBelong
}}</span>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>项目说明</span></div> <div class="setc_name"><span>项目说明</span></div>
<div class="setc_main"> <div class="setc_main">
<span style="color: #999999">{{ projectInfo.remark }}</span> <span style="color: #999999">{{
projectInfo.remark
}}</span>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
@@ -540,13 +549,17 @@
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>项目级别</span></div> <div class="setc_name"><span>项目级别</span></div>
<div class="setc_main"> <div class="setc_main">
<span style="color: #999999">{{ projectInfo.level }}</span> <span style="color: #999999">{{
projectInfo.level
}}</span>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>培训体系</span></div> <div class="setc_name"><span>培训体系</span></div>
<div class="setc_main"> <div class="setc_main">
<span style="color: #999999">{{ projectInfo.systemId }}</span> <span style="color: #999999">{{
projectInfo.systemId
}}</span>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
@@ -572,29 +585,48 @@
<a-switch v-model:checked="docChecked"></a-switch> <a-switch v-model:checked="docChecked"></a-switch>
</div> </div>
</div> </div>
<div class="btnbox" style="margin:20px;"> <div class="btnbox" style="margin: 20px">
<a-upload <a-upload
v-model:file-list="fileList" v-model:file-list="fileList"
name="file" name="file"
action="/api/file/upload" action="/api/file/upload"
@change="handleChange" @change="handleChange"
> >
<span class="xkbtn" style="cursor: pointer; font-size: 17px" >上传</span> <span
<img src="@/assets/images/basicinfo/cloud.png" style="cursor: pointer; class="xkbtn"
width:34px;height:34px; style="cursor: pointer; font-size: 17px"
" alt=""> >上传</span
>
<img
src="@/assets/images/basicinfo/cloud.png"
style="cursor: pointer; width: 34px; height: 34px"
alt=""
/>
</a-upload> </a-upload>
<div class="btnbox" style="margin:20px;"> <div class="btnbox" style="margin: 20px">
<span style="color: #999999"> <span style="color: #999999">
支持pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip 支持pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip
</span> </span>
</div> </div>
<div v-for="item in docList" :key="item.src" class="docListStyle"> <div
<img src="@/assets/images/basicinfo/download.png" style="cursor: pointer; v-for="item in docList"
width:40px;height:40px;margin-right:40px; :key="item.src"
" alt=""> class="docListStyle"
<span style="font: oblique 16px Sans-serif">{{item.name}}</span> >
<span style="color: #4ea6ff;float:right;">删除</span> <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> </div>
</div> </div>
@@ -646,11 +678,18 @@
</template> </template>
<script> <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 { message } from "ant-design-vue";
import * as api from "@/api/indexTemplate" import * as api from "@/api/indexTemplate";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import {scoreRule,setScoreRule} from "@/api/indexTaskadd" import { scoreRule, setScoreRule } from "@/api/indexTaskadd";
export default defineComponent({ export default defineComponent({
name: "LibraryAdd", name: "LibraryAdd",
setup() { setup() {
@@ -789,17 +828,17 @@ export default defineComponent({
// 共享文档列表 // 共享文档列表
docList: [ docList: [
{ {
name:'测试文档1.doc', name: "测试文档1.doc",
src: "", src: "",
}, },
{ {
name:'测试文档2.doc', name: "测试文档2.doc",
src: "", src: "",
}, },
{ {
name:'测试文档3.doc', name: "测试文档3.doc",
src: "", src: "",
} },
], ],
isEdit: false, // 是否处于编辑状态 isEdit: false, // 是否处于编辑状态
// 基本信息 // 基本信息
@@ -818,7 +857,7 @@ export default defineComponent({
status: null, status: null,
picUrl: null, picUrl: null,
noticeFlag: null, noticeFlag: null,
} },
}); });
const value = ref(""); const value = ref("");
const textnum = "150"; const textnum = "150";
@@ -881,25 +920,33 @@ export default defineComponent({
}); });
// 获取详情 // 获取详情
const getDetail = () => { const getDetail = () => {
api.templateDetail(localStorage.getItem('projectTemplateId')).then(res => { api
state.taskSyllabus = [] .templateDetail(localStorage.getItem("projectTemplateId"))
.then((res) => {
state.taskSyllabus = [];
console.log(res); console.log(res);
state.projectInfo.name = res.data.data.projectTemplateInfo.name state.projectInfo.name = res.data.data.projectTemplateInfo.name;
state.projectInfo.beginTime = res.data.data.projectTemplateInfo.beginTime state.projectInfo.beginTime =
state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime res.data.data.projectTemplateInfo.beginTime;
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime;
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice state.projectInfo.manager = res.data.data.projectTemplateInfo.manager;
state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId state.projectInfo.notice = res.data.data.projectTemplateInfo.notice;
state.projectInfo.managerId = res.data.data.projectTemplateInfo.managerId state.projectInfo.sourceBelongId =
state.projectInfo.remark = res.data.data.stageList.remark res.data.data.projectTemplateInfo.sourceBelongId;
state.projectInfo.courseSyncFlag = res.data.data.projectTemplateInfo.courseSyncFlag state.projectInfo.managerId =
state.projectInfo.level = res.data.data.projectTemplateInfo.level res.data.data.projectTemplateInfo.managerId;
state.projectInfo.systemId = res.data.data.projectTemplateInfo.systemId state.projectInfo.remark = res.data.data.stageList.remark;
state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag state.projectInfo.courseSyncFlag =
state.projectInfo.noticeFlag = res.data.data.projectTemplateInfo.noticeFlag res.data.data.projectTemplateInfo.courseSyncFlag;
state.projectInfo.remark = res.data.data.projectTemplateInfo.remark state.projectInfo.level = res.data.data.projectTemplateInfo.level;
state.projectInfo.status = res.data.data.projectTemplateInfo.status state.projectInfo.systemId =
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl 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; let data = res.data.data.stageList;
console.log("data=====", data); console.log("data=====", data);
for (let i in data) { for (let i in data) {
@@ -913,65 +960,75 @@ export default defineComponent({
total: 0, //总人数 total: 0, //总人数
complete: 0, //完成人数 complete: 0, //完成人数
percent: 0, percent: 0,
});
}
}
}) })
} .catch((err) => {
} message.error("操作失败" + err);
}).catch(err => { console.log(err);
message.error("操作失败"+err) });
console.log(err) };
})
}
// 发布公告 // 发布公告
const addNotice = () => { const addNotice = () => {
let obj = { let obj = {
"name": state.projectInfo.name, name: state.projectInfo.name,
"category": state.projectInfo.category, category: state.projectInfo.category,
"picUrl": state.projectInfo.picUrl, picUrl: state.projectInfo.picUrl,
"beginTime": new Date(state.projectInfo.beginTime).getTime(), beginTime: new Date(state.projectInfo.beginTime).getTime(),
"endTime": new Date(state.projectInfo.endTime).getTime(), endTime: new Date(state.projectInfo.endTime).getTime(),
"manager": state.projectInfo.manager, manager: state.projectInfo.manager,
"managerId": state.projectInfo.managerId || 0, managerId: state.projectInfo.managerId || 0,
"sourceBelongId": state.projectInfo.sourceBelongId, sourceBelongId: state.projectInfo.sourceBelongId,
"level": state.projectInfo.level, level: state.projectInfo.level,
"systemId": state.projectInfo.systemId, systemId: state.projectInfo.systemId,
"boeFlag": state.projectInfo.boeFlag ? 1:0, boeFlag: state.projectInfo.boeFlag ? 1 : 0,
"courseSyncFlag": state.projectInfo.courseSyncFlag? 1:0, courseSyncFlag: state.projectInfo.courseSyncFlag ? 1 : 0,
"notice": state.projectInfo.notice, notice: state.projectInfo.notice,
"noticeFlag": 0, noticeFlag: 0,
"projectTemplateId": localStorage.getItem('projectTemplateId'), projectTemplateId: localStorage.getItem("projectTemplateId"),
"remark": state.projectInfo.remark, remark: state.projectInfo.remark,
"status": state.projectInfo.status, status: state.projectInfo.status,
}; };
api.templateEdit(obj).then(res => { api
message.success("公告发布成功") .templateEdit(obj)
console.log(res) .then((res) => {
}).catch(err => { message.success("公告发布成功");
message.error("公告发布失败"+err) console.log(res);
console.log(err)
}) })
} .catch((err) => {
message.error("公告发布失败" + err);
console.log(err);
});
};
// 删除阶段 // 删除阶段
const stateDel = (id) => { const stateDel = (id) => {
api.deleteStage(id).then(res => { api
message.success("删除阶段成功") .deleteStage(id)
console.log(res) .then((res) => {
}).catch(err => { message.success("删除阶段成功");
message.error("删除阶段失败"+err) console.log(res);
console.log(err)
}) })
} .catch((err) => {
message.error("删除阶段失败" + err);
console.log(err);
});
};
// 删除任务 // 删除任务
const taskDel = (id) => { const taskDel = (id) => {
api.deleteTask(id).then(res => { api
message.success("删除任务成功") .deleteTask(id)
console.log(res) .then((res) => {
}).catch(err => { message.success("删除任务成功");
message.error("删除任务失败"+err) console.log(res);
console.log(err)
}) })
} .catch((err) => {
message.error("删除任务失败" + err);
console.log(err);
});
};
const toEdit = () => { const toEdit = () => {
routered.push({ routered.push({
path: "/templateAdd", path: "/templateAdd",
@@ -980,47 +1037,53 @@ export default defineComponent({
name: state.name, name: state.name,
}, },
}); });
} };
// 新建或编辑阶段 // 新建或编辑阶段
const stateEdit = () => { const stateEdit = () => {
let obj = { let obj = {
"name": "", name: "",
"projectTemplateId": localStorage.getItem('projectTemplateId'), projectTemplateId: localStorage.getItem("projectTemplateId"),
"remark": "", remark: "",
"stageId": 0 stageId: 0,
} };
api.editStagek(obj).then(res => { api
message.success("编辑阶段成功") .editStagek(obj)
console.log(res) .then((res) => {
}).catch(err => { message.success("编辑阶段成功");
message.error("编辑阶段失败"+err) console.log(res);
console.log(err)
}) })
} .catch((err) => {
message.error("编辑阶段失败" + err);
console.log(err);
});
};
//新建或编辑阶段任务 //新建或编辑阶段任务
const taskEdit = () => { const taskEdit = () => {
let obj = { let obj = {
"courseId": 0, courseId: 0,
"duration": 0, duration: 0,
"flag": true, flag: true,
"name": "", name: "",
"projectTaskId": 0, projectTaskId: 0,
"projectTemplateId": localStorage.getItem('projectTemplateId'), projectTemplateId: localStorage.getItem("projectTemplateId"),
"stageId": 0, stageId: 0,
"type": 0 type: 0,
} };
api.editTask(obj).then(res => { api
message.success("编辑任务成功") .editTask(obj)
console.log(res) .then((res) => {
}).catch(err => { message.success("编辑任务成功");
message.error("编辑任务失败"+err) console.log(res);
console.log(err)
}) })
} .catch((err) => {
message.error("编辑任务失败" + err);
console.log(err);
});
};
const getScoreRule = () => { const getScoreRule = () => {
scoreRule({ scoreRule({
projectId: localStorage.getItem('projectTemplateId'), projectId: localStorage.getItem("projectTemplateId"),
}) })
.then((res) => { .then((res) => {
console.log("获取了项目积分规则", res.data.data); console.log("获取了项目积分规则", res.data.data);
@@ -1075,7 +1138,7 @@ export default defineComponent({
}, },
], ],
leaderScore: state.seven1, leaderScore: state.seven1,
projectId: localStorage.getItem('projectTemplateId'), projectId: localStorage.getItem("projectTemplateId"),
signScore: state.six1, signScore: state.six1,
topCompleteCourseItem: [ topCompleteCourseItem: [
{ {
@@ -1125,7 +1188,7 @@ export default defineComponent({
editRule, editRule,
scoresum, scoresum,
}; };
} },
}); });
</script> </script>
<style lang="scss"> <style lang="scss">
@@ -1607,14 +1670,12 @@ export default defineComponent({
} }
.notice { .notice {
.ntc_tit { .ntc_tit {
padding-top: 22px; padding-top: 22px;
margin-left: 34px; margin-left: 34px;
font-size: 18px; font-size: 18px;
font-weight: 500; font-weight: 500;
color: #232425; color: #232425;
} }
.ntc_body { .ntc_body {
margin-left: 35px; margin-left: 35px;
@@ -1636,7 +1697,6 @@ export default defineComponent({
.btnarea { .btnarea {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
} }
.area_btn { .area_btn {
width: 100px; width: 100px;