mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-09 10:56:46 +08:00
Merge branch 'develop' into manage-release
# Conflicts: # src/App.vue # src/components/drawers/AddHomework.vue # src/components/drawers/AddTest.vue # src/components/student/ChangeLevelModal.vue # src/components/student/TableStudent.vue # src/views/examine/ProjectReviewed.vue
This commit is contained in:
44
src/App.vue
44
src/App.vue
@@ -19,7 +19,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { computed, defineComponent, ref, watch } from "vue";
|
||||
import { computed, defineComponent, ref } from "vue";
|
||||
import { useRouter, useRoute } from "vue-router";
|
||||
import { useStore } from "vuex";
|
||||
import NavLeft from "@/components/NavLeft";
|
||||
@@ -44,16 +44,16 @@ export default defineComponent({
|
||||
const store = useStore();
|
||||
const isLogin = ref(false);
|
||||
// console.log("router", router.getRoutes(), route);
|
||||
console.log("版本0.9.14------------");
|
||||
console.log("版本1.01------------");
|
||||
const routes = computed(() => {
|
||||
return router.getRoutes().filter((e) => e.meta?.isLink);
|
||||
});
|
||||
watch(
|
||||
() => route.path,
|
||||
() => {
|
||||
route.path === "/login" && (isLogin.value = true);
|
||||
}
|
||||
);
|
||||
// watch(
|
||||
// () => route.path,
|
||||
// () => {
|
||||
// route.path === "/login" && (isLogin.value = true);
|
||||
// }
|
||||
// );
|
||||
const currentRouteName = computed(() => route.name);
|
||||
|
||||
function init() {
|
||||
@@ -186,6 +186,34 @@ export default defineComponent({
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
|
||||
}
|
||||
|
||||
.cus-btn {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 16px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
background: #4ea6ff;
|
||||
cursor: pointer;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.white {
|
||||
background: #fff;
|
||||
color: #4ea6ff;
|
||||
}
|
||||
|
||||
.cus-input {
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.cus-select {
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
// @media screen and (max-width: 1366px) {
|
||||
// .cmMain {
|
||||
// width: 750px;
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
</div>
|
||||
|
||||
<div class="main_table">
|
||||
<!--
|
||||
<!--
|
||||
<a-table
|
||||
v-if="edit"
|
||||
class="ant-table-striped"
|
||||
@@ -64,7 +64,6 @@
|
||||
:pagination="false"
|
||||
/>-->
|
||||
<a-table
|
||||
|
||||
class="ant-table-striped"
|
||||
:row-class-name="
|
||||
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
|
||||
@@ -80,19 +79,20 @@
|
||||
:pagination="false"
|
||||
/>
|
||||
<div class="tableBox">
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="tableDataTotal > 10"
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="handelChangePage"
|
||||
/>
|
||||
</div></div>
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="tableDataTotal > 10"
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="handelChangePage"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
@@ -171,7 +171,7 @@ export default {
|
||||
time: undefined,
|
||||
caseId: null,
|
||||
caseName: "",
|
||||
isClick: false
|
||||
isClick: false,
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addcaseVisible", false);
|
||||
@@ -202,13 +202,13 @@ export default {
|
||||
width: "200px",
|
||||
align: "center",
|
||||
},
|
||||
// {
|
||||
// title: "导入时间",
|
||||
// dataIndex: "time",
|
||||
// key: "time",
|
||||
// width: "400px",
|
||||
// align: "center",
|
||||
// },
|
||||
// {
|
||||
// title: "导入时间",
|
||||
// dataIndex: "time",
|
||||
// key: "time",
|
||||
// width: "400px",
|
||||
// align: "center",
|
||||
// },
|
||||
];
|
||||
return columns;
|
||||
};
|
||||
@@ -218,6 +218,7 @@ export default {
|
||||
}
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
state.apiTaskList = selectedRows;
|
||||
console.log("selectedRows", selectedRows);
|
||||
};
|
||||
const handelChangePage = (page, pageSize) => {
|
||||
state.selectedRowKeys = [];
|
||||
@@ -276,16 +277,16 @@ export default {
|
||||
};
|
||||
const updateTask = () => {
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
if (!props.isactive) {
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
if(state.isClick){
|
||||
message.destroy();
|
||||
message.error('请勿频繁点击')
|
||||
return
|
||||
}
|
||||
state.isClick = true;
|
||||
if (state.isClick) {
|
||||
message.destroy();
|
||||
message.error("请勿频繁点击");
|
||||
return;
|
||||
}
|
||||
state.isClick = true;
|
||||
for (let i = 0; i < state.apiTaskList.length; i++) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
@@ -308,12 +309,12 @@ export default {
|
||||
});
|
||||
}
|
||||
} else if (props.isLevel == 2) {
|
||||
if(state.isClick){
|
||||
message.destroy();
|
||||
message.error('请勿频繁点击')
|
||||
return
|
||||
}
|
||||
state.isClick = true;
|
||||
if (state.isClick) {
|
||||
message.destroy();
|
||||
message.error("请勿频繁点击");
|
||||
return;
|
||||
}
|
||||
state.isClick = true;
|
||||
for (let i = 0; i < state.apiTaskList.length; i++) {
|
||||
apiTask
|
||||
.addTask({
|
||||
@@ -338,19 +339,21 @@ export default {
|
||||
});
|
||||
}
|
||||
} else if (props.isLevel == 3) {
|
||||
if(state.isClick){
|
||||
message.destroy();
|
||||
message.error('请勿频繁点击')
|
||||
return
|
||||
}
|
||||
state.isClick = true;
|
||||
if (state.isClick) {
|
||||
message.destroy();
|
||||
message.error("请勿频繁点击");
|
||||
return;
|
||||
}
|
||||
state.isClick = true;
|
||||
for (let i = 0; i < state.apiTaskList.length; i++) {
|
||||
apiTask
|
||||
.addTaskTemplate({
|
||||
courseId: Number(state.apiTaskList[i].casesId),
|
||||
name: state.apiTaskList[i].title,
|
||||
projectTaskId: props.projectTaskId,
|
||||
projectTemplateId: Number(localStorage.getItem("projectTemplateId")),
|
||||
projectTemplateId: Number(
|
||||
localStorage.getItem("projectTemplateId")
|
||||
),
|
||||
stageId: Number(props.chooseStageId) || 0,
|
||||
type: 3,
|
||||
})
|
||||
@@ -371,6 +374,7 @@ export default {
|
||||
};
|
||||
//搜索案例列表
|
||||
const searchList = () => {
|
||||
state.selectedRowKeys = [];
|
||||
if (state.inputV1 !== "") {
|
||||
getAllCaseText();
|
||||
} else {
|
||||
@@ -432,7 +436,7 @@ export default {
|
||||
.main_items {
|
||||
margin-top: 32px;
|
||||
display: flex;
|
||||
|
||||
|
||||
margin-bottom: 12px;
|
||||
flex-wrap: wrap;
|
||||
.mi_ipts {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -374,9 +374,11 @@ export default {
|
||||
// this.selectedRows = selectedRows;
|
||||
// };
|
||||
const searchProjectList = () => {
|
||||
state.selectedRowKeys = [];
|
||||
getAllProjText();
|
||||
};
|
||||
const resetProjectList = () => {
|
||||
state.selectedRowKeys = [];
|
||||
state.inputV1 = "";
|
||||
state.inputV2 = "";
|
||||
state.inputV3 = "";
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@
|
||||
maxlength="20"
|
||||
/>
|
||||
</div>
|
||||
<div class="btns" @click="getAllInvistText">
|
||||
<div class="btns" @click="searchList">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">搜索</div>
|
||||
</div>
|
||||
@@ -43,10 +43,11 @@
|
||||
>创建人:
|
||||
<span class="data">{{ assessment.creator }}</span>
|
||||
</span>
|
||||
<!--
|
||||
<span class="title"
|
||||
>创建时间:
|
||||
<span class="data">{{ assessment.time }}</span>
|
||||
</span>
|
||||
</span>-->
|
||||
</div>
|
||||
<!--
|
||||
<div v-else>
|
||||
@@ -144,14 +145,19 @@ export default {
|
||||
assessmentId: null,
|
||||
assessmentName: null,
|
||||
});
|
||||
const afterVisibleChange=()=>{
|
||||
|
||||
}
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:assessmentVisible", false);
|
||||
|
||||
};
|
||||
//清空所选
|
||||
const clearLine = () => {
|
||||
console.log("state.selectedRowKeys", state.selectedRowKeys);
|
||||
state.selectedRowKeys = [];
|
||||
state.addOnlineList = [];
|
||||
state.inputV1 = "";
|
||||
};
|
||||
const queryInfo = () => {
|
||||
//if (props.edit) {
|
||||
@@ -185,8 +191,8 @@ export default {
|
||||
assessmentId: info.assessmentId,
|
||||
name: info.assessmentName,
|
||||
num: num,
|
||||
creator: info.createUser ? info.createUser : "-",
|
||||
time: dayjs(info.createTime).format("YYYY-MM-DD"),
|
||||
creator: info.createUserName ? info.createUserName : "-",
|
||||
time: dayjs(info.createTime).format("YYYY-MM-DD HH:mm"),
|
||||
};
|
||||
//更新讨论信息
|
||||
state.assessment = obj;
|
||||
@@ -277,8 +283,8 @@ export default {
|
||||
assessmentId: value.assessmentId,
|
||||
num: num,
|
||||
name: value.assessmentName ? value.assessmentName : "-",
|
||||
creator: value.createUser ? value.createUser : "-",
|
||||
time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||
creator: value.createUserName ? value.createUserName : "-",
|
||||
time: dayjs(value.createTime).format("YYYY-MM-DD HH:mm"),
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
@@ -287,6 +293,7 @@ export default {
|
||||
};
|
||||
//获取全部评估信息接口
|
||||
const getAllInvistText = () => {
|
||||
|
||||
api
|
||||
.queryAssessmentDetailList({
|
||||
assessmentName: state.inputV1,
|
||||
@@ -308,9 +315,15 @@ export default {
|
||||
// state.createLoading = false;
|
||||
});
|
||||
};
|
||||
|
||||
//重置评估信息
|
||||
const searchList = () => {
|
||||
state.selectedRowKeys = [];
|
||||
|
||||
getAllInvistText();
|
||||
};
|
||||
//重置评估信息
|
||||
const resetInvist = () => {
|
||||
state.selectedRowKeys = [];
|
||||
state.inputV1 = "";
|
||||
getAllInvistText();
|
||||
};
|
||||
@@ -321,10 +334,7 @@ export default {
|
||||
state.selectedRowKeys,
|
||||
state.assessmentId
|
||||
);
|
||||
if (!state.assessmentId) {
|
||||
clearLine();
|
||||
}
|
||||
|
||||
state.inputV1 = "";
|
||||
queryInfo();
|
||||
getAllInvistText();
|
||||
});
|
||||
@@ -332,10 +342,11 @@ export default {
|
||||
() => props.assessmentId,
|
||||
() => {
|
||||
if (!props.assessmentId) {
|
||||
clearLine();
|
||||
clearLine();
|
||||
state.assessment = null;
|
||||
} else {
|
||||
queryInfo();
|
||||
console.log("dd");
|
||||
}
|
||||
console.log("props.assessmentId", props.assessmentId);
|
||||
},
|
||||
@@ -353,6 +364,8 @@ export default {
|
||||
resetInvist,
|
||||
handelChangePage,
|
||||
queryInfo,
|
||||
searchList,
|
||||
afterVisibleChange,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -202,8 +202,8 @@ export default {
|
||||
assessmentId: value.assessmentId,
|
||||
num: num,
|
||||
name: value.assessmentName ? value.assessmentName : "-",
|
||||
creator: value.createUser ? value.createUser : "-",
|
||||
time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||
creator: value.createUserName ? value.createUserName : "-",
|
||||
time: dayjs(value.createTime).format("YYYY-MM-DD HH:mm"),
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<div class="fi_input">
|
||||
<a-input
|
||||
v-model:value="inputV1"
|
||||
style="width:424px; height: 40px; border-radius: 8px"
|
||||
style="width: 424px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入项目名称"
|
||||
/>
|
||||
</div>
|
||||
@@ -54,20 +54,21 @@
|
||||
onChange: onSelectChange,
|
||||
}"
|
||||
/>
|
||||
<div class="tableBox" style="margin-top:85px;">
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="tableDataTotal > 10"
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="changePagination"
|
||||
/>
|
||||
</div></div>
|
||||
<div class="tableBox" style="margin-top: 85px">
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="tableDataTotal > 10"
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="changePagination"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
@@ -131,20 +132,20 @@ export default {
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
},
|
||||
// {
|
||||
// {
|
||||
// title: "状态",
|
||||
// width: "13%",
|
||||
// dataIndex: "status",
|
||||
// key: "status",
|
||||
// align: "center",
|
||||
// },
|
||||
// {
|
||||
// width: "13%",
|
||||
// dataIndex: "status",
|
||||
// key: "status",
|
||||
// align: "center",
|
||||
// },
|
||||
// {
|
||||
// title: "价格",
|
||||
// width: "13%",
|
||||
// dataIndex: "quiz_price",
|
||||
// key: "price",
|
||||
// align: "center",
|
||||
// },
|
||||
// key: "price",
|
||||
// align: "center",
|
||||
// },
|
||||
{
|
||||
title: "可答题人数",
|
||||
width: "20%",
|
||||
@@ -161,7 +162,7 @@ export default {
|
||||
}
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
state.evListData = selectedRows[0] ? selectedRows[0] : {};
|
||||
console.log("state.evListData",state.evListData);
|
||||
console.log("state.evListData", state.evListData);
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
state.selectedRowKeys = [];
|
||||
@@ -229,19 +230,20 @@ export default {
|
||||
//获取测评列表
|
||||
const getAllEvalText = () => {
|
||||
let objael = {
|
||||
keyword:state.inputV1,
|
||||
|
||||
keyword: state.inputV1,
|
||||
};
|
||||
api
|
||||
.choiceEvaluation(objael)
|
||||
.then((res) => {
|
||||
state.tableDataTotal=9;
|
||||
state.tableDataTotal = 9;
|
||||
// console.log("测评列表", res.data.data);
|
||||
getTableDataList(res.data.data);
|
||||
})
|
||||
.catch(() => {});
|
||||
};
|
||||
//搜索测评列表
|
||||
const searchList = () => {
|
||||
state.selectedRowKeys = [];
|
||||
if (state.inputV1 !== "") {
|
||||
getAllEvalText();
|
||||
} else {
|
||||
@@ -311,7 +313,7 @@ export default {
|
||||
}
|
||||
.mi_btns {
|
||||
display: flex;
|
||||
|
||||
|
||||
cursor: pointer;
|
||||
.btn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
|
||||
@@ -63,16 +63,12 @@
|
||||
:unCheckedValue="0"
|
||||
:disabled="true"
|
||||
><span
|
||||
style="
|
||||
width: 100%;
|
||||
color: rgba(109, 117, 132, 1);
|
||||
font-size: 14px;
|
||||
"
|
||||
style="width: 100%;color: rgba(109, 117, 132, 1);font-size: 14px;"
|
||||
>同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span
|
||||
></a-switch>
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="set_content" v-if="projectInfo.boeFlag">
|
||||
<div class="setc_name"><span>是否BOEU实施:</span></div>
|
||||
<div class="setc_main">
|
||||
<a-switch
|
||||
@@ -83,7 +79,7 @@
|
||||
></a-switch>
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="set_content" v-if="projectInfo.remark ">
|
||||
<div class="setc_name"><span>项目说明:</span></div>
|
||||
<div class="setc_main">
|
||||
<span style="color: #999999">{{ projectInfo.remark }}</span>
|
||||
|
||||
@@ -527,6 +527,7 @@ export default {
|
||||
};
|
||||
//搜索
|
||||
const search = () => {
|
||||
state.selectedRows = [];
|
||||
//重新获取列表
|
||||
getClassList();
|
||||
};
|
||||
|
||||
@@ -245,6 +245,7 @@ export default {
|
||||
// };
|
||||
//获取选择考试列表
|
||||
const getManageList = () => {
|
||||
state.selectedRowKeys = [];
|
||||
let obj = {
|
||||
keyWord: state.inputPname,
|
||||
pageIndex: state.currentPage,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@
|
||||
style="padding-left: 20px; margin-right: 0px"
|
||||
>
|
||||
<a-col>
|
||||
<a-form-item title="姓名:" @click="getStuList">
|
||||
<a-form-item title="姓名:" >
|
||||
<a-input
|
||||
class="cus-input"
|
||||
v-model:value="tableParam.studentName"
|
||||
@@ -15,7 +15,7 @@
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col>
|
||||
<a-button class="cus-btn" style="width: 100px">
|
||||
<a-button class="cus-btn" style="width: 100px" @click="getStuList">
|
||||
<template #icon>
|
||||
<img
|
||||
style="margin-right: 10px"
|
||||
@@ -117,7 +117,7 @@ import { computed, defineProps, onMounted, ref, watch } from "vue";
|
||||
import { delStudentList, getStuPage } from "@/api/index1";
|
||||
import CommonStudent from "@/components/student/CommonStudent";
|
||||
import ChangeLevelModal from "./ChangeLevelModal.vue";
|
||||
import {message} from "ant-design-vue";
|
||||
import { message } from "ant-design-vue";
|
||||
const props = defineProps({
|
||||
type: Number,
|
||||
id: String,
|
||||
@@ -191,7 +191,7 @@ const tableData = ref({
|
||||
});
|
||||
|
||||
const stuRowSelection = computed(() => ({
|
||||
columnWidth: 10,
|
||||
columnWidth: 20,
|
||||
selectedRowKeys: stuSelectKeys.value,
|
||||
onChange: onStuSelectChange,
|
||||
preserveSelectedRowKeys: true,
|
||||
@@ -233,9 +233,16 @@ function getStuList() {
|
||||
});
|
||||
}
|
||||
|
||||
function reset() {}
|
||||
function reset() {
|
||||
tableParam.value.studentName="";
|
||||
}
|
||||
|
||||
function bathDel() {
|
||||
if( stuSelectKeys.value &&
|
||||
stuSelectKeys.value.length === 0){
|
||||
message.destroy();
|
||||
return message.warning("请先选中学员");
|
||||
}
|
||||
stuSelectKeys.value &&
|
||||
stuSelectKeys.value.length &&
|
||||
delStudentList({
|
||||
|
||||
@@ -143,7 +143,6 @@
|
||||
placeholder="请输入课程名称"
|
||||
v-model:value="xzinputV1"
|
||||
v-model:validate="validate"
|
||||
|
||||
:maxlength="20"
|
||||
show-count
|
||||
:type="2"
|
||||
@@ -226,7 +225,8 @@
|
||||
</div>
|
||||
<a-radio-group v-model:value="valueE1">
|
||||
<div class="bc_box">
|
||||
<div class="bc_boxl">
|
||||
<!-- 2022-12-21 隐藏 后面放开 lixiaoge -->
|
||||
<!-- <div class="bc_boxl">
|
||||
<div class="ol_checkbox" @click="expectOnline">
|
||||
<a-radio
|
||||
v-model:checked="checked"
|
||||
@@ -237,7 +237,7 @@
|
||||
线上
|
||||
</a-radio>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="bc_boxr">
|
||||
<div class="ol_checkbox">
|
||||
<a-radio
|
||||
@@ -364,7 +364,6 @@
|
||||
placeholder="请输入课程名称"
|
||||
v-model:value="qdms_inputV1"
|
||||
v-model:validate="validate"
|
||||
|
||||
:maxlength="20"
|
||||
show-count
|
||||
:type="2"
|
||||
@@ -2219,9 +2218,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
||||
<a-spin :spinning="addLoading" tip="" />
|
||||
</div>
|
||||
|
||||
</a-modal>
|
||||
<!--新建开课页面 -->
|
||||
<!--开课学员管理页面 -->
|
||||
@@ -2278,7 +2275,11 @@
|
||||
<span>{{ currentPlanItem.teacher }}</span>
|
||||
</div>
|
||||
<div class="stmm_i5">
|
||||
<TableStudent :type="3" :id="offcoursePlanId" :columns="stuColumns">
|
||||
<TableStudent
|
||||
:type="3"
|
||||
:id="offcoursePlanId"
|
||||
:columns="stuColumns"
|
||||
>
|
||||
<!-- <template #extension = "data">-->
|
||||
<!-- <div style="display: flex">-->
|
||||
<!-- <button @click="handlJoinStu(data)">成绩录入</button>-->
|
||||
@@ -3412,21 +3413,21 @@ export default defineComponent({
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
title: "加入方式",
|
||||
width: "10%",
|
||||
dataIndex: "join",
|
||||
key: "6",
|
||||
align: "center",
|
||||
customRender: ({ record }) => {
|
||||
switch (String(record.source)) {
|
||||
case "1":
|
||||
return "手动加入";
|
||||
case "2":
|
||||
return "报名加入";
|
||||
}
|
||||
},
|
||||
},
|
||||
// {
|
||||
// title: "加入方式",
|
||||
// width: "10%",
|
||||
// dataIndex: "join",
|
||||
// key: "6",
|
||||
// align: "center",
|
||||
// customRender: ({ record }) => {
|
||||
// switch (String(record.source)) {
|
||||
// case "1":
|
||||
// return "手动加入";
|
||||
// case "2":
|
||||
// // return "报名加入";
|
||||
// }
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// title: "签到状态",
|
||||
// width: '10%',
|
||||
@@ -3732,7 +3733,7 @@ export default defineComponent({
|
||||
codevisible: false, //二维码弹窗
|
||||
codeInfo: null, //二维码内容
|
||||
codeUrl: codeUrl,
|
||||
|
||||
|
||||
// 课程三级分类
|
||||
options2222: [
|
||||
{
|
||||
@@ -4658,7 +4659,6 @@ export default defineComponent({
|
||||
}
|
||||
|
||||
console.log("state.validate", state.validate);
|
||||
|
||||
|
||||
if (!state.validate) {
|
||||
message.destroy();
|
||||
@@ -4842,7 +4842,7 @@ export default defineComponent({
|
||||
};
|
||||
//保存开课
|
||||
const handleSureStu = () => {
|
||||
state.addLoading = true;
|
||||
|
||||
let startTime,
|
||||
endTime = 0;
|
||||
if (state.xjkkinputV3) {
|
||||
@@ -4884,17 +4884,19 @@ export default defineComponent({
|
||||
message.destroy();
|
||||
return message.error("请输入必填项");
|
||||
} else {
|
||||
state.addLoading = true;
|
||||
|
||||
console.log("state.addLoading ", state.addLoading);
|
||||
}
|
||||
state.addLoading = true;
|
||||
editPlan(postData).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
getTableDate3();
|
||||
handleCancelStu();
|
||||
rest();
|
||||
}
|
||||
state.addLoading = false;
|
||||
});
|
||||
state.addLoading = false;
|
||||
|
||||
};
|
||||
//编辑开课
|
||||
const handelEditStu = async (itm) => {
|
||||
@@ -8125,183 +8127,9 @@ export default defineComponent({
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.i5_left {
|
||||
display: flex;
|
||||
|
||||
|
||||
.select {
|
||||
margin-right: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.addTimeBox {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.addTime {
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
margin-left: 10px;
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.ant-picker {
|
||||
padding-left: 85px;
|
||||
}
|
||||
|
||||
.ant-picker-range .ant-picker-active-bar {
|
||||
margin-left: 85px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
//border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
|
||||
.search {
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.btnn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
background: #ffffff;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
|
||||
.search {
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #4ea6ff;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("../../assets/images/courseManage/search0.png");
|
||||
}
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
.search {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url("../../assets/images/courseManage/reset1.png");
|
||||
}
|
||||
}
|
||||
|
||||
.btn1:hover {
|
||||
background: rgba(64, 158, 255, 0.76);
|
||||
|
||||
.search {
|
||||
background-image: url("../../assets/images/courseManage/search0.png");
|
||||
}
|
||||
|
||||
.btnText {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1:active {
|
||||
background: #0982ff;
|
||||
}
|
||||
|
||||
.btn2:hover {
|
||||
background: rgba(64, 158, 255, 0.1);
|
||||
}
|
||||
|
||||
.btn2:active {
|
||||
background: rgba(64, 158, 255, 0.2);
|
||||
}
|
||||
}
|
||||
|
||||
.btns {
|
||||
display: flex;
|
||||
// flex-wrap: wrap;
|
||||
.btn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
//border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
|
||||
.search {
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn3 {
|
||||
margin-right: 0px;
|
||||
|
||||
.search {
|
||||
width: 17px;
|
||||
height: 18px;
|
||||
background-image: url("../../assets/images/courseManage/add0.png");
|
||||
}
|
||||
}
|
||||
|
||||
.btn3:hover {
|
||||
background: rgba(64, 158, 255, 0.76);
|
||||
|
||||
.search {
|
||||
background-image: url("../../assets/images/courseManage/add0.png");
|
||||
}
|
||||
|
||||
.btnText {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.btn3:active {
|
||||
background: #0982ff;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.stmm_i6 {
|
||||
@@ -8641,29 +8469,7 @@ export default defineComponent({
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.cus-btn {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 16px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
background: #4ea6ff;
|
||||
cursor: pointer;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.white {
|
||||
background: #fff;
|
||||
color: #4ea6ff;
|
||||
}
|
||||
|
||||
.cus-input {
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
// .tableSelect {
|
||||
// position: relative;
|
||||
|
||||
@@ -49,16 +49,21 @@
|
||||
placeholder="请输入创建人"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="inpbox1">
|
||||
<div class="select addTimeBox">
|
||||
<div class="addTime">审核时间:</div>
|
||||
<a-range-picker
|
||||
v-model:value="valueDate"
|
||||
:show-time="{ format: 'HH:mm' }"
|
||||
style="border-radius: 8px; height: 40px; margin-left: 5px"
|
||||
style="width: 360px"
|
||||
format="YYYY-MM-DD"
|
||||
separator="至"
|
||||
:placeholder="[' 开始时间', ' 结束时间']"
|
||||
format="YYYY/MM/DD HH:mm"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tmplh_btn">
|
||||
<div class="btn btn1" @click="getProjList">
|
||||
@@ -144,6 +149,7 @@
|
||||
import { onMounted, reactive, toRefs } from "vue";
|
||||
import { auditedlist } from "../../api/indexAudit";
|
||||
import * as moment from "moment";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
export default {
|
||||
name: "ProjectViewed",
|
||||
@@ -324,8 +330,8 @@ export default {
|
||||
const getProjList = () => {
|
||||
state.loading=true
|
||||
let objn = {
|
||||
beginTime: state.valueDate ? state.valueDate[0] : "",
|
||||
endTime: state.valueDate ? state.valueDate[1] : "",
|
||||
beginTime: state.valueDate ? dayjs(state.valueDate[0]).format("YYYY-MM-DD") : "",
|
||||
endTime: state.valueDate ? dayjs(state.valueDate[1]).format("YYYY-MM-DD") : "",
|
||||
createName: state.valuecreater,
|
||||
manager: state.valuename,
|
||||
name: state.valueproj,
|
||||
@@ -408,6 +414,7 @@ export default {
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.projAuditModal {
|
||||
|
||||
.ant-modal {
|
||||
width: 816px !important;
|
||||
min-height: 420px !important;
|
||||
@@ -539,7 +546,26 @@ export default {
|
||||
|
||||
.projectviewed {
|
||||
width: 100%;
|
||||
.addTimeBox {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.addTime {
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
margin-left: 10px;
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.ant-picker {
|
||||
padding-left: 85px;
|
||||
}
|
||||
|
||||
.ant-picker-range .ant-picker-active-bar {
|
||||
margin-left: 85px;
|
||||
}
|
||||
}
|
||||
.tmpl {
|
||||
width: 100%;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="left clearfix">
|
||||
<div class="leftmain">
|
||||
<div class="tit" style="margin-left: 18px">关卡</div>
|
||||
<div class="btn btn3" @click="showModal()" style="margin-left: 19px">
|
||||
<div class="btn btn3" @click="showModal()" style="margin-left: 19px">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">添加关卡</div>
|
||||
</div>
|
||||
@@ -206,7 +206,8 @@
|
||||
<router-link to="/leveladd">
|
||||
<div style="display: flex">
|
||||
<img
|
||||
class="img2" style="margin-right:22px;"
|
||||
class="img2"
|
||||
style="margin-right: 22px"
|
||||
src="../../assets/images/leveladd/back.png"
|
||||
/>
|
||||
<div class="return">返回</div>
|
||||
@@ -688,7 +689,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 87px; text-align: center">
|
||||
{{ element.cretime }}分钟
|
||||
{{ element.cretime ? element.cretime + "分钟" : "-" }}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
@@ -1309,22 +1310,21 @@ export default {
|
||||
api
|
||||
.deleteChapter(obj)
|
||||
.then((res) => {
|
||||
if(res.data.code==200){
|
||||
if (res.data.code == 200) {
|
||||
console.log("删除关卡成功", res);
|
||||
message.destroy();
|
||||
message.success("删除关卡成功");
|
||||
let chapter = localStorage.getItem("chapterId")
|
||||
if(state.deleteChapterId == chapter){
|
||||
localStorage.removeItem("chapterId")
|
||||
let chapter = localStorage.getItem("chapterId");
|
||||
if (state.deleteChapterId == chapter) {
|
||||
localStorage.removeItem("chapterId");
|
||||
}
|
||||
closeDeleteChapter();
|
||||
getDetail();
|
||||
}else if(res.data.code==-1){
|
||||
} else if (res.data.code == -1) {
|
||||
message.destroy();
|
||||
message.success("至少保留一个关卡");
|
||||
closeDeleteChapter();
|
||||
}
|
||||
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("删除关卡失败", err);
|
||||
@@ -1418,13 +1418,16 @@ export default {
|
||||
state.chooseProjectList = JSON.stringify(state.level[i].taskList);
|
||||
console.log("state.level[i].taskList", state.level[i].taskList);
|
||||
state.level[i].taskList.forEach((element) => {
|
||||
// console.log("element", element);
|
||||
console.log("element", element);
|
||||
let obj = {
|
||||
id: element.routerTaskId,
|
||||
key: element.routerTaskId,
|
||||
lei: checkType(element.type),
|
||||
creater: element.name,
|
||||
cretime: element.duration,
|
||||
cretime:
|
||||
element.duration || element.duration == 0
|
||||
? element.duration
|
||||
: "-",
|
||||
checked1: element.flag,
|
||||
routerTaskId: element.routerTaskId,
|
||||
courseId: element.courseId,
|
||||
@@ -1466,7 +1469,7 @@ export default {
|
||||
? JSON.parse(localStorage.getItem("chapterId"))
|
||||
: null;
|
||||
console.log("chapter", chapter);
|
||||
if (chapter >0) {
|
||||
if (chapter > 0) {
|
||||
dataAssignment(chapter); //用哪个的任务表
|
||||
state.isactive = chapter; //哪个亮
|
||||
} else {
|
||||
@@ -1513,7 +1516,7 @@ export default {
|
||||
title: "姓名",
|
||||
dataIndex: "name",
|
||||
key: "name",
|
||||
width: 60,
|
||||
width: 160,
|
||||
align: "left",
|
||||
ellipsis: true,
|
||||
className: "classify",
|
||||
@@ -1535,13 +1538,13 @@ export default {
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
// {
|
||||
// title: "岗位",
|
||||
// dataIndex: "gang",
|
||||
// key: "gang",
|
||||
// width: 110,
|
||||
// align: "center",
|
||||
// className: "h",
|
||||
// {
|
||||
// title: "岗位",
|
||||
// dataIndex: "gang",
|
||||
// key: "gang",
|
||||
// width: 110,
|
||||
// align: "center",
|
||||
// className: "h",
|
||||
// },
|
||||
{
|
||||
title: "当前关卡",
|
||||
@@ -1551,14 +1554,14 @@ export default {
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "进度",
|
||||
dataIndex: "jin",
|
||||
key: "jin",
|
||||
width: 110,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "进度",
|
||||
dataIndex: "jin",
|
||||
key: "jin",
|
||||
width: 110,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "开始时间",
|
||||
dataIndex: "time",
|
||||
@@ -1853,7 +1856,7 @@ export default {
|
||||
let obj = {
|
||||
chapterId: ele.chapterId,
|
||||
courseId: ele.courseId,
|
||||
duration: ele.cretime,
|
||||
duration: ele.cretime == "-" ? 0 : ele.cretime,
|
||||
flag: ele.checked1,
|
||||
name: ele.creater,
|
||||
routerId: ele.routerId,
|
||||
@@ -2667,7 +2670,7 @@ export default {
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
min-height:512px;
|
||||
min-height: 512px;
|
||||
.boomcen {
|
||||
width: 95%;
|
||||
// height: 100%;
|
||||
|
||||
@@ -332,7 +332,7 @@
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</a-tab-pane>
|
||||
|
||||
<!--
|
||||
<a-tab-pane key="3" tab="项目积分">
|
||||
<div class="split"></div>
|
||||
<div class="projectscore">
|
||||
@@ -478,6 +478,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</a-tab-pane>
|
||||
-->
|
||||
|
||||
<a-tab-pane key="4" tab="设置">
|
||||
<div class="split"></div>
|
||||
<a-tabs>
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
</a-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
<div class="name name2">
|
||||
<div class="name name2" v-if="courseSyncFlag">
|
||||
<div class="namebox">
|
||||
<div class="inname">同步学习记录</div>
|
||||
</div>
|
||||
@@ -194,7 +194,7 @@
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="name name2">
|
||||
<div class="name name2" v-if="projectInfo.remark">
|
||||
<div class="namebox">
|
||||
<div class="inname" style="margin-top: 13px">项目说明</div>
|
||||
</div>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -851,7 +851,7 @@
|
||||
<div class="img"></div>
|
||||
<div class="ed">编辑</div>
|
||||
</div> -->
|
||||
<div class="edit" @click="toEdit">
|
||||
<div class="edit" v-if="status!=3 && status!=2" @click="toEdit">
|
||||
<div class="img"></div>
|
||||
<div class="ed">编辑</div>
|
||||
</div>
|
||||
@@ -1442,14 +1442,7 @@
|
||||
>
|
||||
<div
|
||||
class="modalHeader"
|
||||
style="
|
||||
width: 100%;
|
||||
height: 68px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
"
|
||||
>
|
||||
style="width: 100%;height: 68px;display: flex;align-items: center; justify-content: space-between; ">
|
||||
<div class="headerLeft" style="margin-left: 32px">
|
||||
<span style="width: 15px; height: 15px"
|
||||
><img src="../../assets/images/taskpage/pub.png"
|
||||
|
||||
@@ -329,7 +329,7 @@
|
||||
<!-- 添加外链侧弹窗 -->
|
||||
<div class="lin"></div>
|
||||
</div>
|
||||
<!--TODO1216
|
||||
<!--TODO1216
|
||||
<div class="item" @click="showDrawerAddDiscuss">
|
||||
<div class="itcon">
|
||||
<div class="img">
|
||||
@@ -427,7 +427,7 @@
|
||||
<div class="lin"></div>
|
||||
</div>
|
||||
|
||||
<!--TODO1216
|
||||
<!--TODO1216
|
||||
<div class="item" @click="showDrawerAddVote">
|
||||
<div class="itcon">
|
||||
<div class="img">
|
||||
@@ -455,7 +455,6 @@
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
</div>
|
||||
<div class="boom">
|
||||
<div class="boomcen">
|
||||
@@ -649,7 +648,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 87px; text-align: center">
|
||||
{{ element.cretime }}分钟
|
||||
{{ element.cretime ? element.cretime + "分钟" : "-" }}
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
@@ -913,10 +912,10 @@
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1">
|
||||
<div class="btnText" @click="delete_exit">取消</div>
|
||||
<div class="btnText" @click="closeCancel">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2">
|
||||
<div class="btnText" @click="showModal">确定</div>
|
||||
<div class="btnText" @click="removeAllLevel">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1389,7 +1388,7 @@ export default {
|
||||
? "投票"
|
||||
: "-",
|
||||
creater: value.name,
|
||||
cretime: Number(value.duration) > 0 ? value.duration : "-",
|
||||
cretime: value.duration || value.duration == 0 ? value.duration : "-",
|
||||
checked1: value.flag ? true : false,
|
||||
checked: false, //是否选中类型
|
||||
courseId: value.courseId,
|
||||
@@ -1402,12 +1401,16 @@ export default {
|
||||
state.tableData = array;
|
||||
console.log("state.tableData", state.tableData);
|
||||
};
|
||||
//把阶段放到level里
|
||||
const getStageData = (tableData) => {
|
||||
//把阶段放到level里
|
||||
const getStageData = (tableData) => {
|
||||
let data = tableData;
|
||||
let array = [];
|
||||
data.map((value) => {
|
||||
console.log("dd",Number(value.templateStageId) ,Number(value.templateStageId) > 0);
|
||||
console.log(
|
||||
"dd",
|
||||
Number(value.templateStageId),
|
||||
Number(value.templateStageId) > 0
|
||||
);
|
||||
if (Number(value.templateStageId) > 0) {
|
||||
let obj = {
|
||||
id: value.templateStageId,
|
||||
@@ -1623,20 +1626,48 @@ export default {
|
||||
console.log("获取任务列表失败", err);
|
||||
});
|
||||
};*/
|
||||
|
||||
//获取任务列表
|
||||
const getTask = async () => {
|
||||
|
||||
await api
|
||||
.templateDetail(localStorage.getItem("projectTemplateId")).then((res) => {
|
||||
console.log("22222", res.data.data.stageList);
|
||||
state.projectTitle = res.data.data.projectTemplateInfo.name;
|
||||
state.picUrl = res.data.data.projectTemplateInfo.picUrl;
|
||||
state.stageList = res.data.data.stageList;
|
||||
getStageData(res.data.data.stageList);
|
||||
updateStageChoosd();
|
||||
|
||||
});
|
||||
// 删除所有阶段
|
||||
const removeAllLevel = () => {
|
||||
// state.cancelModal = false;
|
||||
console.log(state.level);
|
||||
let removeArr = state.level;
|
||||
for (let i = 0; i < removeArr.length; i++) {
|
||||
|
||||
api
|
||||
.deleteStage(removeArr[i].id)
|
||||
.then((res) => {
|
||||
console.log("删除阶段成功", res);
|
||||
if (removeArr.length - 1 == i) {
|
||||
message.destroy();
|
||||
message.success("删除全部阶段成功");
|
||||
closeDeleteStage();
|
||||
localStorage.setItem("stageId", "");
|
||||
getTask();
|
||||
state.cancelModal = false;
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
if (removeArr.length - 1 == i) {
|
||||
console.log("删除阶段失败", err);
|
||||
message.destroy();
|
||||
message.success("删除全部阶段失败");
|
||||
state.cancelModal = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
//获取任务列表
|
||||
const getTask = async () => {
|
||||
await api
|
||||
.templateDetail(localStorage.getItem("projectTemplateId"))
|
||||
.then((res) => {
|
||||
console.log("22222", res.data.data.stageList);
|
||||
state.projectTitle = res.data.data.projectTemplateInfo.name;
|
||||
state.picUrl = res.data.data.projectTemplateInfo.picUrl;
|
||||
state.stageList = res.data.data.stageList;
|
||||
getStageData(res.data.data.stageList);
|
||||
updateStageChoosd();
|
||||
});
|
||||
};
|
||||
|
||||
function updateStageChoosd() {
|
||||
@@ -1659,9 +1690,15 @@ export default {
|
||||
getTableData(state.stageList[0].taskList);
|
||||
return;
|
||||
}
|
||||
console.log(state.chooseStageId,state.stageList.find((e) => e.templateStageId == state.chooseStageId)?.taskList,state.stageList);
|
||||
console.log(
|
||||
state.chooseStageId,
|
||||
state.stageList.find((e) => e.templateStageId == state.chooseStageId)
|
||||
?.taskList,
|
||||
state.stageList
|
||||
);
|
||||
getTableData(
|
||||
state.stageList.find((e) => e.templateStageId == state.chooseStageId)?.taskList
|
||||
state.stageList.find((e) => e.templateStageId == state.chooseStageId)
|
||||
?.taskList
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1956,10 +1993,9 @@ export default {
|
||||
console.log("state.level", id, state.level);
|
||||
state.chooseStageId = id;
|
||||
let final = state.level.find((item) => item.id === id);
|
||||
if(final !=null){
|
||||
if (final != null) {
|
||||
getTableData(final.taskList);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
//选择单个任务
|
||||
@@ -2154,6 +2190,7 @@ export default {
|
||||
getTableData,
|
||||
deleteTask,
|
||||
editStage,
|
||||
removeAllLevel,
|
||||
updateTableData,
|
||||
changeVData,
|
||||
changeRow,
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
|
||||
<div class="in">
|
||||
<a-range-picker
|
||||
show-time
|
||||
separator="至"
|
||||
:placeholder="[' 开始时间', ' 结束时间']"
|
||||
v-model:value="projectInfo.rangeTime"
|
||||
@@ -214,7 +215,7 @@ import TrainClass from "@/components/project/TrainClass";
|
||||
import OrgClass from "@/components/project/OrgClass";
|
||||
import ProjectManager from "@/components/project/ProjectManagerNew";
|
||||
import ProjectLevel from "@/components/project/ProjectLevel";
|
||||
|
||||
import dayjs from "dayjs";
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const store = useStore();
|
||||
@@ -240,9 +241,8 @@ const getDetail = () =>
|
||||
route.query.projectTemplateId &&
|
||||
api.templateDetail(route.query.projectTemplateId).then((res) => {
|
||||
projectInfo.value = res.data.data.projectTemplateInfo;
|
||||
projectInfo.value.rangeTime = [
|
||||
projectInfo.value.beginTime,
|
||||
projectInfo.value.endTime,
|
||||
projectInfo.value.rangeTime = [dayjs(projectInfo.value.beginTime).format("YYYY-MM-DD HH:mm"),
|
||||
dayjs(projectInfo.value.endTime).format("YYYY-MM-DD HH:mm"),
|
||||
];
|
||||
projectInfo.value.courseSyncFlag = !!projectInfo.value.courseSyncFlag
|
||||
});
|
||||
@@ -253,8 +253,8 @@ const backPage = () => {
|
||||
|
||||
function timeChange(e) {
|
||||
if (e && e.length === 2) {
|
||||
projectInfo.value.beginTime = e[0];
|
||||
projectInfo.value.endTime = e[1];
|
||||
projectInfo.value.beginTime = dayjs(e[0]).format("YYYY-MM-DD HH:mm"),
|
||||
projectInfo.value.endTime =dayjs(e[1]).format("YYYY-MM-DD HH:mm")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,6 +281,8 @@ const createProject = () => {
|
||||
}
|
||||
}
|
||||
projectInfo.value.courseSyncFlag = courseSyncFlag.value ? 1 : 0;
|
||||
projectInfo.value.beginTime = dayjs(projectInfo.value.beginTime).format("YYYY-MM-DD HH:mm"),
|
||||
projectInfo.value.endTime =dayjs(projectInfo.value.endTime).format("YYYY-MM-DD HH:mm")
|
||||
api
|
||||
.templateEdit({
|
||||
...projectInfo.value,
|
||||
|
||||
@@ -24,12 +24,17 @@
|
||||
></a-select>
|
||||
</div>
|
||||
<div class="select">
|
||||
<a-range-picker
|
||||
v-model:value="projectTime"
|
||||
separator="至"
|
||||
:placeholder="[' 开始时间', ' 结束时间']"
|
||||
/>
|
||||
</div>
|
||||
<div class="select addTimeBox">
|
||||
<div class="addTime">创建时间:</div>
|
||||
<a-range-picker
|
||||
v-model:value="projectTime"
|
||||
style="width: 420px"
|
||||
format="YYYY-MM-DD"
|
||||
separator="至"
|
||||
:placeholder="[' 开始时间', ' 结束时间']"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex; margin-bottom: 20px">
|
||||
<div class="btn btn1" @click="handleSearch">
|
||||
<div class="search"></div>
|
||||
@@ -166,7 +171,8 @@
|
||||
<div class="btnText" @click="handleCancelModal">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2">
|
||||
<div class="btnText" @click="handleSure">确定</div>
|
||||
<div class="btnText" v-if="!addLoading" @click="handleSure">确定</div>
|
||||
<div class="btnText" v-else>确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -414,7 +420,7 @@ export default {
|
||||
if (state.projectTime) {
|
||||
startTime = toDate(
|
||||
new Date(state.projectTime[0].$d).getTime() / 1000,
|
||||
"Y-M-D"
|
||||
"Y-M-D hh:mm"
|
||||
);
|
||||
endTime = toDate(
|
||||
new Date(state.projectTime[1].$d).getTime() / 1000,
|
||||
@@ -665,6 +671,7 @@ export default {
|
||||
state.copy_hs = true;
|
||||
};
|
||||
const handleSure = () => {
|
||||
|
||||
// 发布
|
||||
if (state.pub_hs) {
|
||||
editReleaseStatus({
|
||||
@@ -710,11 +717,13 @@ export default {
|
||||
}
|
||||
// 复制
|
||||
if (state.copy_hs) {
|
||||
state.addLoading = true;
|
||||
let resultPost = restData(state.copyItem);
|
||||
resultPost.assessmentName = resultPost.assessmentName + "(1)";
|
||||
console.log("resultPost");
|
||||
console.log(resultPost);
|
||||
createResearch(resultPost).then((res) => {
|
||||
state.addLoading =false;
|
||||
console.log(res);
|
||||
handleCancelModal();
|
||||
getTableDate();
|
||||
@@ -865,6 +874,26 @@ export default {
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
.addTimeBox {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.addTime {
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
margin-left: 10px;
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
|
||||
.ant-picker {
|
||||
padding-left: 85px;
|
||||
}
|
||||
|
||||
.ant-picker-range .ant-picker-active-bar {
|
||||
margin-left: 85px;
|
||||
}
|
||||
}
|
||||
.out {
|
||||
//display: flex;
|
||||
display: block;
|
||||
|
||||
Reference in New Issue
Block a user