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:
yuping
2022-12-22 19:05:26 +08:00
24 changed files with 5578 additions and 5740 deletions

View File

@@ -19,7 +19,7 @@
</div> </div>
</template> </template>
<script> <script>
import { computed, defineComponent, ref, watch } from "vue"; import { computed, defineComponent, ref } from "vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import { useStore } from "vuex"; import { useStore } from "vuex";
import NavLeft from "@/components/NavLeft"; import NavLeft from "@/components/NavLeft";
@@ -44,16 +44,16 @@ 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.9.14------------"); console.log("版本1.01------------");
const routes = computed(() => { const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink); return router.getRoutes().filter((e) => e.meta?.isLink);
}); });
watch( // watch(
() => route.path, // () => route.path,
() => { // () => {
route.path === "/login" && (isLogin.value = true); // route.path === "/login" && (isLogin.value = true);
} // }
); // );
const currentRouteName = computed(() => route.name); const currentRouteName = computed(() => route.name);
function init() { function init() {
@@ -186,6 +186,34 @@ export default defineComponent({
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07); 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) { // @media screen and (max-width: 1366px) {
// .cmMain { // .cmMain {
// width: 750px; // width: 750px;

View File

@@ -46,7 +46,7 @@
</div> </div>
<div class="main_table"> <div class="main_table">
<!-- <!--
<a-table <a-table
v-if="edit" v-if="edit"
class="ant-table-striped" class="ant-table-striped"
@@ -64,7 +64,6 @@
:pagination="false" :pagination="false"
/>--> />-->
<a-table <a-table
class="ant-table-striped" class="ant-table-striped"
:row-class-name=" :row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null) (_record, index) => (index % 2 === 1 ? 'table-striped' : null)
@@ -80,19 +79,20 @@
:pagination="false" :pagination="false"
/> />
<div class="tableBox"> <div class="tableBox">
<div class="pa"> <div class="pa">
<a-pagination <a-pagination
v-if="tableDataTotal > 10" v-if="tableDataTotal > 10"
:showSizeChanger="false" :showSizeChanger="false"
showQuickJumper="true" showQuickJumper="true"
hideOnSinglePage="true" hideOnSinglePage="true"
:pageSize="pageSize" :pageSize="pageSize"
:current="currentPage" :current="currentPage"
:total="tableDataTotal" :total="tableDataTotal"
class="pagination" class="pagination"
@change="handelChangePage" @change="handelChangePage"
/> />
</div></div> </div>
</div>
</div> </div>
</div> </div>
<div class="main_btns"> <div class="main_btns">
@@ -171,7 +171,7 @@ export default {
time: undefined, time: undefined,
caseId: null, caseId: null,
caseName: "", caseName: "",
isClick: false isClick: false,
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addcaseVisible", false); ctx.emit("update:addcaseVisible", false);
@@ -202,13 +202,13 @@ export default {
width: "200px", width: "200px",
align: "center", align: "center",
}, },
// { // {
// title: "导入时间", // title: "导入时间",
// dataIndex: "time", // dataIndex: "time",
// key: "time", // key: "time",
// width: "400px", // width: "400px",
// align: "center", // align: "center",
// }, // },
]; ];
return columns; return columns;
}; };
@@ -218,6 +218,7 @@ export default {
} }
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = selectedRowKeys;
state.apiTaskList = selectedRows; state.apiTaskList = selectedRows;
console.log("selectedRows", selectedRows);
}; };
const handelChangePage = (page, pageSize) => { const handelChangePage = (page, pageSize) => {
state.selectedRowKeys = []; state.selectedRowKeys = [];
@@ -276,16 +277,16 @@ export default {
}; };
const updateTask = () => { const updateTask = () => {
if (props.isLevel == 1) { if (props.isLevel == 1) {
if(!props.isactive){ if (!props.isactive) {
message.destroy(); message.destroy();
return message.warning("请先选中关卡"); return message.warning("请先选中关卡");
} }
if(state.isClick){ if (state.isClick) {
message.destroy(); message.destroy();
message.error('请勿频繁点击') message.error("请勿频繁点击");
return return;
} }
state.isClick = true; state.isClick = true;
for (let i = 0; i < state.apiTaskList.length; i++) { for (let i = 0; i < state.apiTaskList.length; i++) {
RouterEditTask({ RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
@@ -308,12 +309,12 @@ export default {
}); });
} }
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
if(state.isClick){ if (state.isClick) {
message.destroy(); message.destroy();
message.error('请勿频繁点击') message.error("请勿频繁点击");
return return;
} }
state.isClick = true; state.isClick = true;
for (let i = 0; i < state.apiTaskList.length; i++) { for (let i = 0; i < state.apiTaskList.length; i++) {
apiTask apiTask
.addTask({ .addTask({
@@ -338,19 +339,21 @@ export default {
}); });
} }
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
if(state.isClick){ if (state.isClick) {
message.destroy(); message.destroy();
message.error('请勿频繁点击') message.error("请勿频繁点击");
return return;
} }
state.isClick = true; state.isClick = true;
for (let i = 0; i < state.apiTaskList.length; i++) { for (let i = 0; i < state.apiTaskList.length; i++) {
apiTask apiTask
.addTaskTemplate({ .addTaskTemplate({
courseId: Number(state.apiTaskList[i].casesId), courseId: Number(state.apiTaskList[i].casesId),
name: state.apiTaskList[i].title, name: state.apiTaskList[i].title,
projectTaskId: props.projectTaskId, projectTaskId: props.projectTaskId,
projectTemplateId: Number(localStorage.getItem("projectTemplateId")), projectTemplateId: Number(
localStorage.getItem("projectTemplateId")
),
stageId: Number(props.chooseStageId) || 0, stageId: Number(props.chooseStageId) || 0,
type: 3, type: 3,
}) })
@@ -371,6 +374,7 @@ export default {
}; };
//搜索案例列表 //搜索案例列表
const searchList = () => { const searchList = () => {
state.selectedRowKeys = [];
if (state.inputV1 !== "") { if (state.inputV1 !== "") {
getAllCaseText(); getAllCaseText();
} else { } else {
@@ -432,7 +436,7 @@ export default {
.main_items { .main_items {
margin-top: 32px; margin-top: 32px;
display: flex; display: flex;
margin-bottom: 12px; margin-bottom: 12px;
flex-wrap: wrap; flex-wrap: wrap;
.mi_ipts { .mi_ipts {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -374,9 +374,11 @@ export default {
// this.selectedRows = selectedRows; // this.selectedRows = selectedRows;
// }; // };
const searchProjectList = () => { const searchProjectList = () => {
state.selectedRowKeys = [];
getAllProjText(); getAllProjText();
}; };
const resetProjectList = () => { const resetProjectList = () => {
state.selectedRowKeys = [];
state.inputV1 = ""; state.inputV1 = "";
state.inputV2 = ""; state.inputV2 = "";
state.inputV3 = ""; state.inputV3 = "";

File diff suppressed because it is too large Load Diff

View File

@@ -9,7 +9,7 @@
maxlength="20" maxlength="20"
/> />
</div> </div>
<div class="btns" @click="getAllInvistText"> <div class="btns" @click="searchList">
<div class="search"></div> <div class="search"></div>
<div class="btnText">搜索</div> <div class="btnText">搜索</div>
</div> </div>
@@ -43,10 +43,11 @@
>创建人 >创建人
<span class="data">{{ assessment.creator }}</span> <span class="data">{{ assessment.creator }}</span>
</span> </span>
<!--
<span class="title" <span class="title"
>创建时间 >创建时间
<span class="data">{{ assessment.time }}</span> <span class="data">{{ assessment.time }}</span>
</span> </span>-->
</div> </div>
<!-- <!--
<div v-else> <div v-else>
@@ -144,14 +145,19 @@ export default {
assessmentId: null, assessmentId: null,
assessmentName: null, assessmentName: null,
}); });
const afterVisibleChange=()=>{
}
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:assessmentVisible", false); ctx.emit("update:assessmentVisible", false);
}; };
//清空所选 //清空所选
const clearLine = () => { const clearLine = () => {
console.log("state.selectedRowKeys", state.selectedRowKeys); console.log("state.selectedRowKeys", state.selectedRowKeys);
state.selectedRowKeys = []; state.selectedRowKeys = [];
state.addOnlineList = []; state.addOnlineList = [];
state.inputV1 = "";
}; };
const queryInfo = () => { const queryInfo = () => {
//if (props.edit) { //if (props.edit) {
@@ -185,8 +191,8 @@ export default {
assessmentId: info.assessmentId, assessmentId: info.assessmentId,
name: info.assessmentName, name: info.assessmentName,
num: num, num: num,
creator: info.createUser ? info.createUser : "-", creator: info.createUserName ? info.createUserName : "-",
time: dayjs(info.createTime).format("YYYY-MM-DD"), time: dayjs(info.createTime).format("YYYY-MM-DD HH:mm"),
}; };
//更新讨论信息 //更新讨论信息
state.assessment = obj; state.assessment = obj;
@@ -277,8 +283,8 @@ export default {
assessmentId: value.assessmentId, assessmentId: value.assessmentId,
num: num, num: num,
name: value.assessmentName ? value.assessmentName : "-", name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-", creator: value.createUserName ? value.createUserName : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"), time: dayjs(value.createTime).format("YYYY-MM-DD HH:mm"),
}; };
array.push(obj); array.push(obj);
}); });
@@ -287,6 +293,7 @@ export default {
}; };
//获取全部评估信息接口 //获取全部评估信息接口
const getAllInvistText = () => { const getAllInvistText = () => {
api api
.queryAssessmentDetailList({ .queryAssessmentDetailList({
assessmentName: state.inputV1, assessmentName: state.inputV1,
@@ -308,9 +315,15 @@ export default {
// state.createLoading = false; // state.createLoading = false;
}); });
}; };
//重置评估信息
const searchList = () => {
state.selectedRowKeys = [];
getAllInvistText();
};
//重置评估信息 //重置评估信息
const resetInvist = () => { const resetInvist = () => {
state.selectedRowKeys = [];
state.inputV1 = ""; state.inputV1 = "";
getAllInvistText(); getAllInvistText();
}; };
@@ -321,10 +334,7 @@ export default {
state.selectedRowKeys, state.selectedRowKeys,
state.assessmentId state.assessmentId
); );
if (!state.assessmentId) { state.inputV1 = "";
clearLine();
}
queryInfo(); queryInfo();
getAllInvistText(); getAllInvistText();
}); });
@@ -332,10 +342,11 @@ export default {
() => props.assessmentId, () => props.assessmentId,
() => { () => {
if (!props.assessmentId) { if (!props.assessmentId) {
clearLine(); clearLine();
state.assessment = null; state.assessment = null;
} else { } else {
queryInfo(); queryInfo();
console.log("dd");
} }
console.log("props.assessmentId", props.assessmentId); console.log("props.assessmentId", props.assessmentId);
}, },
@@ -353,6 +364,8 @@ export default {
resetInvist, resetInvist,
handelChangePage, handelChangePage,
queryInfo, queryInfo,
searchList,
afterVisibleChange,
}; };
}, },
}; };

View File

@@ -202,8 +202,8 @@ export default {
assessmentId: value.assessmentId, assessmentId: value.assessmentId,
num: num, num: num,
name: value.assessmentName ? value.assessmentName : "-", name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-", creator: value.createUserName ? value.createUserName : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"), time: dayjs(value.createTime).format("YYYY-MM-DD HH:mm"),
}; };
array.push(obj); array.push(obj);
}); });

View File

@@ -24,7 +24,7 @@
<div class="fi_input"> <div class="fi_input">
<a-input <a-input
v-model:value="inputV1" v-model:value="inputV1"
style="width:424px; height: 40px; border-radius: 8px" style="width: 424px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称" placeholder="请输入项目名称"
/> />
</div> </div>
@@ -54,20 +54,21 @@
onChange: onSelectChange, onChange: onSelectChange,
}" }"
/> />
<div class="tableBox" style="margin-top:85px;"> <div class="tableBox" style="margin-top: 85px">
<div class="pa"> <div class="pa">
<a-pagination <a-pagination
v-if="tableDataTotal > 10" v-if="tableDataTotal > 10"
:showSizeChanger="false" :showSizeChanger="false"
showQuickJumper="true" showQuickJumper="true"
hideOnSinglePage="true" hideOnSinglePage="true"
:pageSize="pageSize" :pageSize="pageSize"
:current="currentPage" :current="currentPage"
:total="tableDataTotal" :total="tableDataTotal"
class="pagination" class="pagination"
@change="changePagination" @change="changePagination"
/> />
</div></div> </div>
</div>
</div> </div>
</div> </div>
<div class="main_btns"> <div class="main_btns">
@@ -131,20 +132,20 @@ export default {
align: "center", align: "center",
ellipsis: true, ellipsis: true,
}, },
// { // {
// title: "状态", // title: "状态",
// width: "13%", // width: "13%",
// dataIndex: "status", // dataIndex: "status",
// key: "status", // key: "status",
// align: "center", // align: "center",
// }, // },
// { // {
// title: "价格", // title: "价格",
// width: "13%", // width: "13%",
// dataIndex: "quiz_price", // dataIndex: "quiz_price",
// key: "price", // key: "price",
// align: "center", // align: "center",
// }, // },
{ {
title: "可答题人数", title: "可答题人数",
width: "20%", width: "20%",
@@ -161,7 +162,7 @@ export default {
} }
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = selectedRowKeys;
state.evListData = selectedRows[0] ? selectedRows[0] : {}; state.evListData = selectedRows[0] ? selectedRows[0] : {};
console.log("state.evListData",state.evListData); console.log("state.evListData", state.evListData);
}; };
const closeDrawer = () => { const closeDrawer = () => {
state.selectedRowKeys = []; state.selectedRowKeys = [];
@@ -229,19 +230,20 @@ export default {
//获取测评列表 //获取测评列表
const getAllEvalText = () => { const getAllEvalText = () => {
let objael = { let objael = {
keyword:state.inputV1, keyword: state.inputV1,
}; };
api api
.choiceEvaluation(objael) .choiceEvaluation(objael)
.then((res) => { .then((res) => {
state.tableDataTotal=9; state.tableDataTotal = 9;
// console.log("测评列表", res.data.data);
getTableDataList(res.data.data); getTableDataList(res.data.data);
}) })
.catch(() => {}); .catch(() => {});
}; };
//搜索测评列表 //搜索测评列表
const searchList = () => { const searchList = () => {
state.selectedRowKeys = [];
if (state.inputV1 !== "") { if (state.inputV1 !== "") {
getAllEvalText(); getAllEvalText();
} else { } else {
@@ -311,7 +313,7 @@ export default {
} }
.mi_btns { .mi_btns {
display: flex; display: flex;
cursor: pointer; cursor: pointer;
.btn { .btn {
padding: 0px 26px 0px 26px; padding: 0px 26px 0px 26px;

View File

@@ -63,16 +63,12 @@
:unCheckedValue="0" :unCheckedValue="0"
:disabled="true" :disabled="true"
><span ><span
style=" style="width: 100%;color: rgba(109, 117, 132, 1);font-size: 14px;"
width: 100%;
color: rgba(109, 117, 132, 1);
font-size: 14px;
"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span >同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-switch> ></a-switch>
</div> </div>
</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_name"><span>是否BOEU实施</span></div>
<div class="setc_main"> <div class="setc_main">
<a-switch <a-switch
@@ -83,7 +79,7 @@
></a-switch> ></a-switch>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content" v-if="projectInfo.remark ">
<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>

View File

@@ -527,6 +527,7 @@ export default {
}; };
//搜索 //搜索
const search = () => { const search = () => {
state.selectedRows = [];
//重新获取列表 //重新获取列表
getClassList(); getClassList();
}; };

View File

@@ -245,6 +245,7 @@ export default {
// }; // };
//获取选择考试列表 //获取选择考试列表
const getManageList = () => { const getManageList = () => {
state.selectedRowKeys = [];
let obj = { let obj = {
keyWord: state.inputPname, keyWord: state.inputPname,
pageIndex: state.currentPage, pageIndex: state.currentPage,

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@
style="padding-left: 20px; margin-right: 0px" style="padding-left: 20px; margin-right: 0px"
> >
<a-col> <a-col>
<a-form-item title="姓名:" @click="getStuList"> <a-form-item title="姓名:" >
<a-input <a-input
class="cus-input" class="cus-input"
v-model:value="tableParam.studentName" v-model:value="tableParam.studentName"
@@ -15,7 +15,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col> <a-col>
<a-button class="cus-btn" style="width: 100px"> <a-button class="cus-btn" style="width: 100px" @click="getStuList">
<template #icon> <template #icon>
<img <img
style="margin-right: 10px" style="margin-right: 10px"
@@ -117,7 +117,7 @@ import { computed, defineProps, onMounted, ref, watch } from "vue";
import { delStudentList, getStuPage } from "@/api/index1"; import { delStudentList, getStuPage } from "@/api/index1";
import CommonStudent from "@/components/student/CommonStudent"; import CommonStudent from "@/components/student/CommonStudent";
import ChangeLevelModal from "./ChangeLevelModal.vue"; import ChangeLevelModal from "./ChangeLevelModal.vue";
import {message} from "ant-design-vue"; import { message } from "ant-design-vue";
const props = defineProps({ const props = defineProps({
type: Number, type: Number,
id: String, id: String,
@@ -191,7 +191,7 @@ const tableData = ref({
}); });
const stuRowSelection = computed(() => ({ const stuRowSelection = computed(() => ({
columnWidth: 10, columnWidth: 20,
selectedRowKeys: stuSelectKeys.value, selectedRowKeys: stuSelectKeys.value,
onChange: onStuSelectChange, onChange: onStuSelectChange,
preserveSelectedRowKeys: true, preserveSelectedRowKeys: true,
@@ -233,9 +233,16 @@ function getStuList() {
}); });
} }
function reset() {} function reset() {
tableParam.value.studentName="";
}
function bathDel() { function bathDel() {
if( stuSelectKeys.value &&
stuSelectKeys.value.length === 0){
message.destroy();
return message.warning("请先选中学员");
}
stuSelectKeys.value && stuSelectKeys.value &&
stuSelectKeys.value.length && stuSelectKeys.value.length &&
delStudentList({ delStudentList({

View File

@@ -143,7 +143,6 @@
placeholder="请输入课程名称" placeholder="请输入课程名称"
v-model:value="xzinputV1" v-model:value="xzinputV1"
v-model:validate="validate" v-model:validate="validate"
:maxlength="20" :maxlength="20"
show-count show-count
:type="2" :type="2"
@@ -226,7 +225,8 @@
</div> </div>
<a-radio-group v-model:value="valueE1"> <a-radio-group v-model:value="valueE1">
<div class="bc_box"> <div class="bc_box">
<div class="bc_boxl"> <!-- 2022-12-21 隐藏 后面放开 lixiaoge -->
<!-- <div class="bc_boxl">
<div class="ol_checkbox" @click="expectOnline"> <div class="ol_checkbox" @click="expectOnline">
<a-radio <a-radio
v-model:checked="checked" v-model:checked="checked"
@@ -237,7 +237,7 @@
线上 线上
</a-radio> </a-radio>
</div> </div>
</div> </div> -->
<div class="bc_boxr"> <div class="bc_boxr">
<div class="ol_checkbox"> <div class="ol_checkbox">
<a-radio <a-radio
@@ -364,7 +364,6 @@
placeholder="请输入课程名称" placeholder="请输入课程名称"
v-model:value="qdms_inputV1" v-model:value="qdms_inputV1"
v-model:validate="validate" v-model:validate="validate"
:maxlength="20" :maxlength="20"
show-count show-count
:type="2" :type="2"
@@ -2219,9 +2218,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
<a-spin :spinning="addLoading" tip="" />
</div>
</a-modal> </a-modal>
<!--新建开课页面 --> <!--新建开课页面 -->
<!--开课学员管理页面 --> <!--开课学员管理页面 -->
@@ -2278,7 +2275,11 @@
<span>{{ currentPlanItem.teacher }}</span> <span>{{ currentPlanItem.teacher }}</span>
</div> </div>
<div class="stmm_i5"> <div class="stmm_i5">
<TableStudent :type="3" :id="offcoursePlanId" :columns="stuColumns"> <TableStudent
:type="3"
:id="offcoursePlanId"
:columns="stuColumns"
>
<!-- <template #extension = "data">--> <!-- <template #extension = "data">-->
<!-- <div style="display: flex">--> <!-- <div style="display: flex">-->
<!-- <button @click="handlJoinStu(data)">成绩录入</button>--> <!-- <button @click="handlJoinStu(data)">成绩录入</button>-->
@@ -3412,21 +3413,21 @@ export default defineComponent({
} }
}, },
}, },
{ // {
title: "加入方式", // title: "加入方式",
width: "10%", // width: "10%",
dataIndex: "join", // dataIndex: "join",
key: "6", // key: "6",
align: "center", // align: "center",
customRender: ({ record }) => { // customRender: ({ record }) => {
switch (String(record.source)) { // switch (String(record.source)) {
case "1": // case "1":
return "手动加入"; // return "手动加入";
case "2": // case "2":
return "报名加入"; // // return "报名加入";
} // }
}, // },
}, // },
// { // {
// title: "签到状态", // title: "签到状态",
// width: '10%', // width: '10%',
@@ -3732,7 +3733,7 @@ export default defineComponent({
codevisible: false, //二维码弹窗 codevisible: false, //二维码弹窗
codeInfo: null, //二维码内容 codeInfo: null, //二维码内容
codeUrl: codeUrl, codeUrl: codeUrl,
// 课程三级分类 // 课程三级分类
options2222: [ options2222: [
{ {
@@ -4658,7 +4659,6 @@ export default defineComponent({
} }
console.log("state.validate", state.validate); console.log("state.validate", state.validate);
if (!state.validate) { if (!state.validate) {
message.destroy(); message.destroy();
@@ -4842,7 +4842,7 @@ export default defineComponent({
}; };
//保存开课 //保存开课
const handleSureStu = () => { const handleSureStu = () => {
state.addLoading = true;
let startTime, let startTime,
endTime = 0; endTime = 0;
if (state.xjkkinputV3) { if (state.xjkkinputV3) {
@@ -4884,17 +4884,19 @@ export default defineComponent({
message.destroy(); message.destroy();
return message.error("请输入必填项"); return message.error("请输入必填项");
} else { } else {
state.addLoading = true;
console.log("state.addLoading ", state.addLoading); console.log("state.addLoading ", state.addLoading);
} }
state.addLoading = true;
editPlan(postData).then((res) => { editPlan(postData).then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
getTableDate3(); getTableDate3();
handleCancelStu(); handleCancelStu();
rest(); rest();
} }
state.addLoading = false;
}); });
state.addLoading = false;
}; };
//编辑开课 //编辑开课
const handelEditStu = async (itm) => { const handelEditStu = async (itm) => {
@@ -8125,183 +8127,9 @@ export default defineComponent({
display: flex; display: flex;
justify-content: space-between; 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 { .stmm_i6 {
@@ -8641,29 +8469,7 @@ export default defineComponent({
margin-bottom: 20px; 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 { // .tableSelect {
// position: relative; // position: relative;

View File

@@ -49,16 +49,21 @@
placeholder="请输入创建人" placeholder="请输入创建人"
/> />
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<div class="select addTimeBox">
<div class="addTime">审核时间</div>
<a-range-picker <a-range-picker
v-model:value="valueDate" v-model:value="valueDate"
:show-time="{ format: 'HH:mm' }" style="width: 360px"
style="border-radius: 8px; height: 40px; margin-left: 5px" format="YYYY-MM-DD"
separator="至"
:placeholder="[' 开始时间', ' 结束时间']" :placeholder="[' 开始时间', ' 结束时间']"
format="YYYY/MM/DD HH:mm"
/> />
</div> </div>
</div> </div>
</div>
</div> </div>
<div class="tmplh_btn"> <div class="tmplh_btn">
<div class="btn btn1" @click="getProjList"> <div class="btn btn1" @click="getProjList">
@@ -144,6 +149,7 @@
import { onMounted, reactive, toRefs } from "vue"; import { onMounted, reactive, toRefs } from "vue";
import { auditedlist } from "../../api/indexAudit"; import { auditedlist } from "../../api/indexAudit";
import * as moment from "moment"; import * as moment from "moment";
import dayjs from "dayjs";
export default { export default {
name: "ProjectViewed", name: "ProjectViewed",
@@ -324,8 +330,8 @@ export default {
const getProjList = () => { const getProjList = () => {
state.loading=true state.loading=true
let objn = { let objn = {
beginTime: state.valueDate ? state.valueDate[0] : "", beginTime: state.valueDate ? dayjs(state.valueDate[0]).format("YYYY-MM-DD") : "",
endTime: state.valueDate ? state.valueDate[1] : "", endTime: state.valueDate ? dayjs(state.valueDate[1]).format("YYYY-MM-DD") : "",
createName: state.valuecreater, createName: state.valuecreater,
manager: state.valuename, manager: state.valuename,
name: state.valueproj, name: state.valueproj,
@@ -408,6 +414,7 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
.projAuditModal { .projAuditModal {
.ant-modal { .ant-modal {
width: 816px !important; width: 816px !important;
min-height: 420px !important; min-height: 420px !important;
@@ -539,7 +546,26 @@ export default {
.projectviewed { .projectviewed {
width: 100%; 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 { .tmpl {
width: 100%; width: 100%;

View File

@@ -4,7 +4,7 @@
<div class="left clearfix"> <div class="left clearfix">
<div class="leftmain"> <div class="leftmain">
<div class="tit" style="margin-left: 18px">关卡</div> <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="search"></div>
<div class="btnText">添加关卡</div> <div class="btnText">添加关卡</div>
</div> </div>
@@ -206,7 +206,8 @@
<router-link to="/leveladd"> <router-link to="/leveladd">
<div style="display: flex"> <div style="display: flex">
<img <img
class="img2" style="margin-right:22px;" class="img2"
style="margin-right: 22px"
src="../../assets/images/leveladd/back.png" src="../../assets/images/leveladd/back.png"
/> />
<div class="return">返回</div> <div class="return">返回</div>
@@ -688,7 +689,7 @@
</div> </div>
</div> </div>
<div style="width: 87px; text-align: center"> <div style="width: 87px; text-align: center">
{{ element.cretime }}分钟 {{ element.cretime ? element.cretime + "分钟" : "-" }}
</div> </div>
<div <div
style=" style="
@@ -1309,22 +1310,21 @@ export default {
api api
.deleteChapter(obj) .deleteChapter(obj)
.then((res) => { .then((res) => {
if(res.data.code==200){ if (res.data.code == 200) {
console.log("删除关卡成功", res); console.log("删除关卡成功", res);
message.destroy(); message.destroy();
message.success("删除关卡成功"); message.success("删除关卡成功");
let chapter = localStorage.getItem("chapterId") let chapter = localStorage.getItem("chapterId");
if(state.deleteChapterId == chapter){ if (state.deleteChapterId == chapter) {
localStorage.removeItem("chapterId") localStorage.removeItem("chapterId");
} }
closeDeleteChapter(); closeDeleteChapter();
getDetail(); getDetail();
}else if(res.data.code==-1){ } else if (res.data.code == -1) {
message.destroy(); message.destroy();
message.success("至少保留一个关卡"); message.success("至少保留一个关卡");
closeDeleteChapter(); closeDeleteChapter();
} }
}) })
.catch((err) => { .catch((err) => {
console.log("删除关卡失败", err); console.log("删除关卡失败", err);
@@ -1418,13 +1418,16 @@ export default {
state.chooseProjectList = JSON.stringify(state.level[i].taskList); state.chooseProjectList = JSON.stringify(state.level[i].taskList);
console.log("state.level[i].taskList", state.level[i].taskList); console.log("state.level[i].taskList", state.level[i].taskList);
state.level[i].taskList.forEach((element) => { state.level[i].taskList.forEach((element) => {
// console.log("element", element); console.log("element", element);
let obj = { let obj = {
id: element.routerTaskId, id: element.routerTaskId,
key: element.routerTaskId, key: element.routerTaskId,
lei: checkType(element.type), lei: checkType(element.type),
creater: element.name, creater: element.name,
cretime: element.duration, cretime:
element.duration || element.duration == 0
? element.duration
: "-",
checked1: element.flag, checked1: element.flag,
routerTaskId: element.routerTaskId, routerTaskId: element.routerTaskId,
courseId: element.courseId, courseId: element.courseId,
@@ -1466,7 +1469,7 @@ export default {
? JSON.parse(localStorage.getItem("chapterId")) ? JSON.parse(localStorage.getItem("chapterId"))
: null; : null;
console.log("chapter", chapter); console.log("chapter", chapter);
if (chapter >0) { if (chapter > 0) {
dataAssignment(chapter); //用哪个的任务表 dataAssignment(chapter); //用哪个的任务表
state.isactive = chapter; //哪个亮 state.isactive = chapter; //哪个亮
} else { } else {
@@ -1513,7 +1516,7 @@ export default {
title: "姓名", title: "姓名",
dataIndex: "name", dataIndex: "name",
key: "name", key: "name",
width: 60, width: 160,
align: "left", align: "left",
ellipsis: true, ellipsis: true,
className: "classify", className: "classify",
@@ -1535,13 +1538,13 @@ export default {
align: "center", align: "center",
className: "h", className: "h",
}, },
// { // {
// title: "岗位", // title: "岗位",
// dataIndex: "gang", // dataIndex: "gang",
// key: "gang", // key: "gang",
// width: 110, // width: 110,
// align: "center", // align: "center",
// className: "h", // className: "h",
// }, // },
{ {
title: "当前关卡", title: "当前关卡",
@@ -1551,14 +1554,14 @@ export default {
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "进度", title: "进度",
dataIndex: "jin", dataIndex: "jin",
key: "jin", key: "jin",
width: 110, width: 110,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "开始时间", title: "开始时间",
dataIndex: "time", dataIndex: "time",
@@ -1853,7 +1856,7 @@ export default {
let obj = { let obj = {
chapterId: ele.chapterId, chapterId: ele.chapterId,
courseId: ele.courseId, courseId: ele.courseId,
duration: ele.cretime, duration: ele.cretime == "-" ? 0 : ele.cretime,
flag: ele.checked1, flag: ele.checked1,
name: ele.creater, name: ele.creater,
routerId: ele.routerId, routerId: ele.routerId,
@@ -2667,7 +2670,7 @@ export default {
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
display: flex; display: flex;
justify-content: center; justify-content: center;
min-height:512px; min-height: 512px;
.boomcen { .boomcen {
width: 95%; width: 95%;
// height: 100%; // height: 100%;

View File

@@ -332,7 +332,7 @@
</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>
<div class="projectscore"> <div class="projectscore">
@@ -478,6 +478,8 @@
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane>
-->
<a-tab-pane key="4" tab="设置"> <a-tab-pane key="4" tab="设置">
<div class="split"></div> <div class="split"></div>
<a-tabs> <a-tabs>

View File

@@ -175,7 +175,7 @@
</a-radio-group> </a-radio-group>
</div> </div>
</div> </div>
<div class="name name2"> <div class="name name2" v-if="courseSyncFlag">
<div class="namebox"> <div class="namebox">
<div class="inname">同步学习记录</div> <div class="inname">同步学习记录</div>
</div> </div>
@@ -194,7 +194,7 @@
> >
</div> </div>
</div> </div>
<div class="name name2"> <div class="name name2" v-if="projectInfo.remark">
<div class="namebox"> <div class="namebox">
<div class="inname" style="margin-top: 13px">项目说明</div> <div class="inname" style="margin-top: 13px">项目说明</div>
</div> </div>

File diff suppressed because it is too large Load Diff

View File

@@ -851,7 +851,7 @@
<div class="img"></div> <div class="img"></div>
<div class="ed">编辑</div> <div class="ed">编辑</div>
</div> --> </div> -->
<div class="edit" @click="toEdit"> <div class="edit" v-if="status!=3 && status!=2" @click="toEdit">
<div class="img"></div> <div class="img"></div>
<div class="ed">编辑</div> <div class="ed">编辑</div>
</div> </div>
@@ -1442,14 +1442,7 @@
> >
<div <div
class="modalHeader" class="modalHeader"
style=" style="width: 100%;height: 68px;display: flex;align-items: center; justify-content: space-between; ">
width: 100%;
height: 68px;
display: flex;
align-items: center;
justify-content: space-between;
"
>
<div class="headerLeft" style="margin-left: 32px"> <div class="headerLeft" style="margin-left: 32px">
<span style="width: 15px; height: 15px" <span style="width: 15px; height: 15px"
><img src="../../assets/images/taskpage/pub.png" ><img src="../../assets/images/taskpage/pub.png"

View File

@@ -329,7 +329,7 @@
<!-- 添加外链侧弹窗 --> <!-- 添加外链侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<!--TODO1216 <!--TODO1216
<div class="item" @click="showDrawerAddDiscuss"> <div class="item" @click="showDrawerAddDiscuss">
<div class="itcon"> <div class="itcon">
<div class="img"> <div class="img">
@@ -427,7 +427,7 @@
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<!--TODO1216 <!--TODO1216
<div class="item" @click="showDrawerAddVote"> <div class="item" @click="showDrawerAddVote">
<div class="itcon"> <div class="itcon">
<div class="img"> <div class="img">
@@ -455,7 +455,6 @@
</div> </div>
</div> </div>
--> -->
</div> </div>
<div class="boom"> <div class="boom">
<div class="boomcen"> <div class="boomcen">
@@ -649,7 +648,7 @@
</div> </div>
</div> </div>
<div style="width: 87px; text-align: center"> <div style="width: 87px; text-align: center">
{{ element.cretime }}分钟 {{ element.cretime ? element.cretime + "分钟" : "-" }}
</div> </div>
<div <div
style=" style="
@@ -913,10 +912,10 @@
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1"> <div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div> <div class="btnText" @click="closeCancel">取消</div>
</div> </div>
<div class="del_btn btn2"> <div class="del_btn btn2">
<div class="btnText" @click="showModal">确定</div> <div class="btnText" @click="removeAllLevel">确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -1389,7 +1388,7 @@ export default {
? "投票" ? "投票"
: "-", : "-",
creater: value.name, creater: value.name,
cretime: Number(value.duration) > 0 ? value.duration : "-", cretime: value.duration || value.duration == 0 ? value.duration : "-",
checked1: value.flag ? true : false, checked1: value.flag ? true : false,
checked: false, //是否选中类型 checked: false, //是否选中类型
courseId: value.courseId, courseId: value.courseId,
@@ -1402,12 +1401,16 @@ export default {
state.tableData = array; state.tableData = array;
console.log("state.tableData", state.tableData); console.log("state.tableData", state.tableData);
}; };
//把阶段放到level里 //把阶段放到level里
const getStageData = (tableData) => { const getStageData = (tableData) => {
let data = tableData; let data = tableData;
let array = []; let array = [];
data.map((value) => { 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) { if (Number(value.templateStageId) > 0) {
let obj = { let obj = {
id: value.templateStageId, id: value.templateStageId,
@@ -1623,20 +1626,48 @@ export default {
console.log("获取任务列表失败", err); console.log("获取任务列表失败", err);
}); });
};*/ };*/
// 删除所有阶段
//获取任务列表 const removeAllLevel = () => {
const getTask = async () => { // state.cancelModal = false;
console.log(state.level);
await api let removeArr = state.level;
.templateDetail(localStorage.getItem("projectTemplateId")).then((res) => { for (let i = 0; i < removeArr.length; i++) {
console.log("22222", res.data.data.stageList);
state.projectTitle = res.data.data.projectTemplateInfo.name; api
state.picUrl = res.data.data.projectTemplateInfo.picUrl; .deleteStage(removeArr[i].id)
state.stageList = res.data.data.stageList; .then((res) => {
getStageData(res.data.data.stageList); console.log("删除阶段成功", res);
updateStageChoosd(); 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() { function updateStageChoosd() {
@@ -1659,9 +1690,15 @@ export default {
getTableData(state.stageList[0].taskList); getTableData(state.stageList[0].taskList);
return; 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( 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); console.log("state.level", id, state.level);
state.chooseStageId = id; state.chooseStageId = id;
let final = state.level.find((item) => item.id === id); let final = state.level.find((item) => item.id === id);
if(final !=null){ if (final != null) {
getTableData(final.taskList); getTableData(final.taskList);
} }
}; };
//选择单个任务 //选择单个任务
@@ -2154,6 +2190,7 @@ export default {
getTableData, getTableData,
deleteTask, deleteTask,
editStage, editStage,
removeAllLevel,
updateTableData, updateTableData,
changeVData, changeVData,
changeRow, changeRow,

View File

@@ -78,6 +78,7 @@
<div class="in"> <div class="in">
<a-range-picker <a-range-picker
show-time
separator="至" separator="至"
:placeholder="[' 开始时间', ' 结束时间']" :placeholder="[' 开始时间', ' 结束时间']"
v-model:value="projectInfo.rangeTime" v-model:value="projectInfo.rangeTime"
@@ -214,7 +215,7 @@ import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
import ProjectLevel from "@/components/project/ProjectLevel"; import ProjectLevel from "@/components/project/ProjectLevel";
import dayjs from "dayjs";
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const store = useStore(); const store = useStore();
@@ -240,9 +241,8 @@ const getDetail = () =>
route.query.projectTemplateId && route.query.projectTemplateId &&
api.templateDetail(route.query.projectTemplateId).then((res) => { api.templateDetail(route.query.projectTemplateId).then((res) => {
projectInfo.value = res.data.data.projectTemplateInfo; projectInfo.value = res.data.data.projectTemplateInfo;
projectInfo.value.rangeTime = [ projectInfo.value.rangeTime = [dayjs(projectInfo.value.beginTime).format("YYYY-MM-DD HH:mm"),
projectInfo.value.beginTime, dayjs(projectInfo.value.endTime).format("YYYY-MM-DD HH:mm"),
projectInfo.value.endTime,
]; ];
projectInfo.value.courseSyncFlag = !!projectInfo.value.courseSyncFlag projectInfo.value.courseSyncFlag = !!projectInfo.value.courseSyncFlag
}); });
@@ -253,8 +253,8 @@ const backPage = () => {
function timeChange(e) { function timeChange(e) {
if (e && e.length === 2) { if (e && e.length === 2) {
projectInfo.value.beginTime = e[0]; projectInfo.value.beginTime = dayjs(e[0]).format("YYYY-MM-DD HH:mm"),
projectInfo.value.endTime = e[1]; 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.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 api
.templateEdit({ .templateEdit({
...projectInfo.value, ...projectInfo.value,

View File

@@ -24,12 +24,17 @@
></a-select> ></a-select>
</div> </div>
<div class="select"> <div class="select">
<a-range-picker <div class="select addTimeBox">
v-model:value="projectTime" <div class="addTime">创建时间</div>
separator="至" <a-range-picker
:placeholder="[' 开始时间', ' 结束时间']" v-model:value="projectTime"
/> style="width: 420px"
</div> format="YYYY-MM-DD"
separator="至"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div>
</div>
<div style="display: flex; margin-bottom: 20px"> <div style="display: flex; margin-bottom: 20px">
<div class="btn btn1" @click="handleSearch"> <div class="btn btn1" @click="handleSearch">
<div class="search"></div> <div class="search"></div>
@@ -166,7 +171,8 @@
<div class="btnText" @click="handleCancelModal">取消</div> <div class="btnText" @click="handleCancelModal">取消</div>
</div> </div>
<div class="del_btn btn2"> <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> </div>
</div> </div>
@@ -414,7 +420,7 @@ export default {
if (state.projectTime) { if (state.projectTime) {
startTime = toDate( startTime = toDate(
new Date(state.projectTime[0].$d).getTime() / 1000, new Date(state.projectTime[0].$d).getTime() / 1000,
"Y-M-D" "Y-M-D hh:mm"
); );
endTime = toDate( endTime = toDate(
new Date(state.projectTime[1].$d).getTime() / 1000, new Date(state.projectTime[1].$d).getTime() / 1000,
@@ -665,6 +671,7 @@ export default {
state.copy_hs = true; state.copy_hs = true;
}; };
const handleSure = () => { const handleSure = () => {
// 发布 // 发布
if (state.pub_hs) { if (state.pub_hs) {
editReleaseStatus({ editReleaseStatus({
@@ -710,11 +717,13 @@ export default {
} }
// 复制 // 复制
if (state.copy_hs) { if (state.copy_hs) {
state.addLoading = true;
let resultPost = restData(state.copyItem); let resultPost = restData(state.copyItem);
resultPost.assessmentName = resultPost.assessmentName + "(1)"; resultPost.assessmentName = resultPost.assessmentName + "(1)";
console.log("resultPost"); console.log("resultPost");
console.log(resultPost); console.log(resultPost);
createResearch(resultPost).then((res) => { createResearch(resultPost).then((res) => {
state.addLoading =false;
console.log(res); console.log(res);
handleCancelModal(); handleCancelModal();
getTableDate(); getTableDate();
@@ -865,6 +874,26 @@ export default {
display: block; display: block;
clear: both; 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 { .out {
//display: flex; //display: flex;
display: block; display: block;