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

This commit is contained in:
zhangyc
2022-12-08 14:57:56 +08:00
9 changed files with 210 additions and 107 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";
@@ -30,6 +30,7 @@ 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,
@@ -48,12 +49,13 @@ export default defineComponent({
return router.getRoutes().filter((e) => e.meta?.isLink);
});
watch(
() => route.path,
() => {
route.path === "/login" && (isLogin.value = true);
}
() => route.path,
() => {
route.path === "/login" && (isLogin.value = true);
}
);
const currentRouteName = computed(() => route.name);
function init() {
console.log(store);
getUserInfo();
@@ -68,6 +70,7 @@ export default defineComponent({
getMemberInfo();
getOrgTree();
}
async function getMemberInfo() {
const list = localStorage.getItem("memberInitInfo");
if (list) {
@@ -75,33 +78,39 @@ export default defineComponent({
return;
}
const memberInitInfo = await api1
.getMemberInfo({ keyWord: "", pageNo: 1, pageSize: 10 })
.then((res) => res.data.data.rows);
.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) {
store.commit("SET_DICT", { key, data: JSON.parse(list) });
return;
async function initDict(key, localStory = false) {
let list;
if (localStory) {
list = localStorage.getItem(key);
if (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 });
localStory && localStorage.setItem(key, JSON.stringify(list));
store.commit("SET_DICT", {key, data: list});
}
const getDictList = (param) =>
api1
.getDict({
pageNo: 1,
pageSize: 20,
setCode: param,
})
.then((res) => res.data.data.rows);
api1
.getDict({
pageNo: 1,
pageSize: 20,
setCode: param,
})
.then((res) => res.data.data.rows);
//获取组织树
const getOrgTree = () => {
const orgtreeList = localStorage.getItem("orgtreeList");
@@ -109,25 +118,16 @@ export default defineComponent({
store.commit("getOrgtreeList", JSON.parse(orgtreeList));
return;
}
let obj = {
api.getOrgInfo({
keyWord: "",
id: -1,
pageNo: 1,
pageSize: 20,
};
api
.getOrgInfo(obj)
.then((res) => {
console.log("组织树获取成功", res);
if (res.data.code === 200) {
// state.treeData = res.data.data;
})
.then((res) => {
localStorage.setItem("orgtreeList", JSON.stringify(res.data.data));
store.commit("getOrgtreeList", res.data.data);
}
})
.catch((err) => {
console.log("组织树获取失败", err);
});
})
};
init();
return {
@@ -144,12 +144,13 @@ export default defineComponent({
// font-family: MicrosoftYaHei, Microsoft YaHei, Avenir, Helvetica, Arial,
// sans-serif;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB,
Microsoft YaHei, Arial, sans-serif;
Microsoft YaHei, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #2c3e50;
height: 100%;
}
#container {
margin: 0;
display: flex;
@@ -158,6 +159,7 @@ export default defineComponent({
min-width: 1000px;
min-height: 100%;
background-color: rgba(245, 247, 250, 1);
main {
height: 0;
flex: 1 1 auto;
@@ -173,6 +175,7 @@ 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;

View File

@@ -316,13 +316,11 @@ export default {
for (let i = 0; i < state.apiTaskList.length; i++) {
apiTask
.addTask({
courseId: state.apiTaskList[i].caseid,
duration: 0,
flag: true,
name: state.apiTaskList[i].caseName,
courseId: Number(state.apiTaskList[i].casesId),
name: state.apiTaskList[i].title,
projectTaskId: props.projectTaskId,
projectTemplateId: props.projectTemplateId,
stageId: props.chooseStageId || 0,
projectTemplateId: Number(localStorage.getItem("projectTemplateId")),
stageId: Number(props.chooseStageId) || 0,
type: 3,
})
.then(() => {

View File

@@ -499,7 +499,7 @@ export default {
.catch((err) => {
console.log(err);
});
} else if (props.isLevel === 2) {
} else if (props.isLevel == 2) {
console.log("我是要便利的数据2", state.addOnlineList);
let p_data = state.addOnlineList;
let p_data_id = [];
@@ -556,24 +556,28 @@ export default {
console.log(err);
});
} else if (props.isLevel == 3) {
addTempTask({
courseId: state.onlineClassesId,
name: state.onlineName,
projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 1,
})
.then(() => {
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}模板库任务成功`);
ctx.emit("changeData", false);
closeDrawer();
state.addOnlineList.map((value) => {
console.log( props, props.projectTemplateId,props.projectTaskId)
addTempTask({
courseId: value.num,
name: value.name,
projectTemplateId: localStorage.getItem("projectTemplateId"),
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 1,
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}模板库任务失败`);
});
.then((res) => {
console.log('新增或者编辑在线课',res)
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}模板库任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}模板库任务失败`);
});
})
}
//if(state.addOnlineList.Target==undefined){
// closeDrawer();

View File

@@ -110,7 +110,7 @@
/>
</div>
</div>
<div class="main_item">
<div class="main_item" style="margin-bottom: 24px; margin-left: 29px">
<div class="signbox">
<div class="sign">
<img
@@ -118,17 +118,11 @@
alt=""
/>
</div>
<span style="margin-right: 3px">基础投票数</span>
<span style="margin-right: 3px">基础投票数设置</span>
</div>
<div class="btnbox">
<!-- <a-upload
@change="handleChange"
:before-upload="beforeUpload"
:multiple="true"
:max-count="1"
action="/manageApi/vote/baseVoteupload"
v-model:file-list="fileList"
> -->
<!-- <div class="btnbox">
<a-upload :before-upload="beforeUpload" :max-count="1">
<button class="xkbtn">点击上传</button>
<template #itemRender="{ file, actions }">
@@ -155,14 +149,75 @@
</div>
<button class="xkbtn" @click="downloadTemplate">下载模板
</button>
</div> -->
</div>
<div
style="
display: flex;
align-items: center;
margin-left: 64px;
margin-bottom: 24px;
"
>
<div>参与数</div>
<div style="width: 159px">
<a-input-number
style="width: 159px"
id="inputNumber"
v-model:value="partakeNum"
:min="0"
:max="99999"
:precision="0"
/>
</div>
</div>
<div class="main_item" style="margin-top: -25px">
<div
style="
display: flex;
align-items: center;
margin-left: 64px;
margin-bottom: 24px;
"
>
<div>总票数</div>
<div style="width: 159px">
<a-input-number
style="width: 159px"
id="inputNumber"
v-model:value="totalVoteNum"
:min="0"
:max="99999"
:precision="0"
/>
</div>
</div>
<div
style="
display: flex;
align-items: center;
margin-left: 64px;
margin-bottom: 24px;
"
>
<div>浏览数</div>
<div style="width: 159px">
<a-input-number
style="width: 159px"
id="inputNumber"
v-model:value="browseNum"
:min="0"
:max="99999"
:precision="0"
/>
</div>
</div>
<!-- <div class="main_item" style="margin-top: -25px">
<div class="signbox"></div>
<div class="btnbox">
<span style="color: #999999">支持xls.xlsx</span>
</div>
</div>
</div> -->
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">投票说明</span>
@@ -272,15 +327,23 @@ export default {
fileList: [],
voteCount: null,
projectTemplateId: null,
partakeNum: 0, //参与数
totalVoteNum: 0, //总票数
browseNum: 0, //浏览数
});
const closeDrawer = () => {
(state.inputV1 = ""),
(state.textV1 = ""),
(state.time = undefined),
(state.basevote = ""),
(state.ballotId = ""),
ctx.emit("update:addvoteVisible", false);
state.inputV1 = "";
state.textV1 = "";
state.time = undefined;
state.basevote = "";
state.ballotId = "";
ctx.emit("update:addvoteVisible", false);
ctx.emit("update:edit", false);
state.partakeNum = 0; //参与数
state.totalVoteNum = 0; //总票数
state.browseNum = 0; //浏览数
};
const afterVisibleChange = (bool) => {
if (props.edit && bool) {
@@ -337,6 +400,9 @@ export default {
dayjs(res.data.data.voteStartTime, "YYYY-MM-DD"),
dayjs(res.data.data.voteEndTime, "YYYY-MM-DD"),
];
state.totalVoteNum = res.data.data.votesTotal; //总票数
state.partakeNum = res.data.data.numberOfInvolved; //参与数
state.browseNum = res.data.data.numberOfBrowse; //浏览数
})
.catch((err) => {
console.log("获取投票信息失败", err);
@@ -411,9 +477,9 @@ export default {
message.destroy();
return message.warning("请输入直播时间");
}
if (!state.basevote) {
return message.warning("请上传投票基数");
}
// if (!state.basevote) {
// return message.warning("请上传投票基数");
// }
if (state.time != undefined) {
state.startTime = dayjs(state.time[0]).format("YYYY-MM-DD");
state.endTime = dayjs(state.time[1]).format("YYYY-MM-DD");
@@ -427,6 +493,9 @@ export default {
ballotId: state.ballotId,
baseVote: state.basevote,
voteExplain: state.textV1,
votesTotal: state.totalVoteNum, //总票数
numberOfInvolved: state.partakeNum, //参与数
numberOfBrowse: state.browseNum, //浏览数
};
if (props.edit) {
api
@@ -469,7 +538,7 @@ export default {
};
function downloadTemplate() {
window.open('/manageApi/投票基础数据模版.xlsx')
window.open("/manageApi/投票基础数据模版.xlsx");
}
return {

View File

@@ -217,7 +217,7 @@ export default {
key: "status",
align: "center",
customRender: ({ record: { status } }) => (
<div>{status == -2 ? "未通过" : "已通过"}</div>
<div>{{ '2': "审核通过", "-5": "未通过" }[status + ""] || '审核通过'}</div>
),
},
{
@@ -286,7 +286,7 @@ export default {
key: "status",
align: "center",
customRender: ({ record: { status } }) => (
<div>{{ 2: "审核通过", "-2": "审核拒绝" }[status + ""]}</div>
<div>{{ '2': "审核通过", "-5": "审核拒绝" }[status + ""] || '审核通过'}</div>
),
},

View File

@@ -56,7 +56,7 @@
<div class="onerow">
<div class="taskmain">任务大纲</div>
<!-- <button class="btn" @click="showFaceIn">批量面授报名</button> -->
<router-link to="/temTask" class="edit">
<router-link class="edit" :to="{ path: `/temTask`, query: { projectId: projectId } }">
<img
class="editimg"
src="../../assets/images/projectadd/edit.png"

View File

@@ -801,7 +801,7 @@
</template>
<script>
import {reactive, toRefs, ref, watch} from "vue";
import {message} from "ant-design-vue";
import {message, Modal} from "ant-design-vue";
import {useRouter} from "vue-router";
import ProjOwnerShip from "../../components/drawers/ProjectOwn";
import ProjPowerList from "../../components/drawers/ProjPowerList";
@@ -1178,11 +1178,13 @@ export default {
type: 1,
};
api.handleProject(obj).then((res) => {
console.log("模版保存成功", res);
message.destroy();
message.success("模版保存成功");
state.startModal = false;
getTableDate();
if (res.data.code === 200) {
message.destroy();
message.success("模版保存成功");
return;
}
Modal.error({title: res.data.msg})
});
};
//关闭存为模版弹窗

View File

@@ -16,7 +16,16 @@
src="../../assets/images/leveladd/ma.png"
@click="showCodeModel2()"
/>
<div class="line" v-if="action == 1 || action == 0"></div>
<div
class="line"
v-if="
action == 1 ||
action == 2 ||
action == 0 ||
action == 3 ||
action == -2
"
></div>
<!-- 显示发布图标 -->
<img
v-if="action == 2"
@@ -27,11 +36,11 @@
<img
v-if="action == 3"
class="img2"
src="../../assets/images/leveladd/pub.png"
src="../../assets/images/project/finish.png"
/>
<!-- 显示审核图标 -->
<img
v-if="action == 0"
v-if="action == 0 || action == -2"
class="img2"
src="../../assets/images/project/reviewsubmit.png"
/>
@@ -46,8 +55,8 @@
<!-- 显示提交审核 -->
<div
class="pub"
style="width: 56px"
v-if="action == 0"
style="width: 56px; color: #a497ff"
v-if="action == 0 || action == -2"
@click="submitExamine"
>
{{ act }}
@@ -55,7 +64,7 @@
<!-- 显示撤回审核 -->
<div
class="pub"
style="width: 56px"
style="width: 56px; color: #a497ff"
v-if="action == 1"
@click="showRecallReviewModal"
>
@@ -73,7 +82,7 @@
<!-- 显示撤回发布 -->
<div
class="pub"
style="width: 56px"
style="width: 56px; color: #57c887"
v-if="action == 3"
@click="showBackModal"
>
@@ -5170,7 +5179,7 @@ export default {
.img2 {
width: 42px;
height: 42px;
margin-right: 22px;
margin-right: 10px;
}
.pub {

View File

@@ -175,6 +175,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -198,6 +199,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -221,6 +223,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -244,6 +247,7 @@
@changeData="updateTableData"
v-model:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:EditWorkId="EditWorkId"
@@ -267,6 +271,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:EditTestId="EditTestId"
@@ -289,6 +294,7 @@
v-model:addliveVisible="addlivevisible"
:isLevel="isLevel"
@changeData="updateTableData"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:edit="edit"
@@ -312,6 +318,7 @@
v-model:addrefVisible="addrefvisible"
:isLevel="isLevel"
@changeData="updateTableData"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:edit="edit"
@@ -335,6 +342,7 @@
v-model:adddiscussVisible="adddiscussvisible"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:EditDiscussId="EditDiscussId"
@@ -357,6 +365,7 @@
<add-active
v-model:addactiveVisible="addactivevisible"
v-model:projectTemplateId="projectTemplateId"
v-model:projectId="projectId"
v-model:EditActiveId="EditActiveId"
v-model:projectTaskId="projectTaskId"
v-model:edit="edit"
@@ -382,6 +391,7 @@
@changeData="updateTableData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -405,6 +415,7 @@
@changeData="updateTableData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -428,6 +439,7 @@
@getData="changeVData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -1059,7 +1071,7 @@ import draggable from "vuedraggable";
import { storage } from "../../api/storage";
// import UnlockMode from "../../components/drawers/UnlockMode.vue";
// import * as api1 from "../../api/index1";
import { useRouter } from "vue-router";
import { useRouter, useRoute } from "vue-router";
const drawercolumns = [
{
title: "项目名称",
@@ -1118,8 +1130,10 @@ export default {
// UnlockMode,
},
setup() {
const route = useRoute();
const router = useRouter();
const state = reactive({
projectId: route.query.projectId,
projectTemplateId: storage.get("projectTemplateId")
? JSON.parse(storage.get("projectTemplateId"))
: null,
@@ -1391,6 +1405,9 @@ export default {
console.log(array)
if(array[0].id=='0'){
state.level = [];
// state.tableData = array[0]
// 当无阶段任务出现时 显示当前数据
getTableData(array[0].taskList)
}else{
state.level = array;
}
@@ -1790,6 +1807,7 @@ export default {
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
});
const showDrawerOnline = (id, eleId) => {
console.log(id, eleId)
state.addonlinevisible = true;
state.EditOnlineId = id;
state.projectTaskId = eleId;