-- 任务

This commit is contained in:
yuping
2022-11-30 23:44:01 +08:00
parent 96bffbaa82
commit d6f3e56de3

View File

@@ -1,20 +1,20 @@
<template> <template>
<a-drawer <a-drawer
:visible="addprojvisible" :visible="addprojvisible"
class="drawerStyle addonlineDrawer" class="drawerStyle addonlineDrawer"
width="80%" width="80%"
title="添加在线" title="添加在线"
placement="right" placement="right"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div v-if="edit" class="headerTitle">编辑项目</div> <div v-if="edit" class="headerTitle">编辑项目</div>
<div v-else class="headerTitle">添加项目</div> <div v-else class="headerTitle">添加项目</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png" src="../../assets/images/basicinfo/close.png"
@click="closeDrawer" @click="closeDrawer"
/> />
</div> </div>
<div class="contentMain"> <div class="contentMain">
@@ -24,9 +24,9 @@
<div class="ipt_name">项目名称</div> <div class="ipt_name">项目名称</div>
<div class="fi_input"> <div class="fi_input">
<a-input <a-input
v-model:value="inputV1" v-model:value="inputV1"
style="width: 240px; height: 40px; border-radius: 8px" style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称" placeholder="请输入项目名称"
/> />
</div> </div>
</div> </div>
@@ -34,9 +34,9 @@
<div class="ipt_name">项目经理</div> <div class="ipt_name">项目经理</div>
<div class="fi_input"> <div class="fi_input">
<a-input <a-input
v-model:value="inputV2" v-model:value="inputV2"
style="width: 240px; height: 40px; border-radius: 8px" style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目经理" placeholder="请输入项目经理"
/> />
</div> </div>
</div> </div>
@@ -44,9 +44,9 @@
<div class="ipt_name">创建人</div> <div class="ipt_name">创建人</div>
<div class="fi_input"> <div class="fi_input">
<a-input <a-input
v-model:value="inputV3" v-model:value="inputV3"
style="width: 240px; height: 40px; border-radius: 8px" style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入创建人" placeholder="请输入创建人"
/> />
</div> </div>
</div> </div>
@@ -67,7 +67,7 @@
<div class="notice_icon"></div> <div class="notice_icon"></div>
<div v-if="selectedRows.length == 0"> <div v-if="selectedRows.length == 0">
<span class="title" <span class="title"
>已选择 >已选择
<span class="data" style="color: #4ea6ff">{{ 0 }}</span> <span class="data" style="color: #4ea6ff">{{ 0 }}</span>
</span </span
> >
@@ -75,41 +75,41 @@
<div v-else> <div v-else>
<div> <div>
<span class="title" <span class="title"
>已选择 >已选择
<span class="data" style="color: #4ea6ff">{{ <span class="data" style="color: #4ea6ff">{{
selectedRows.length selectedRows.length
}}</span> }}</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span
> >
<span class="title" <span class="title"
>名称 >名称
<span <span
class="data" class="data"
style="color: #4ea6ff; margin-right: 15px" style="color: #4ea6ff; margin-right: 15px"
>{{ selectedRows[0].name }}</span >{{ selectedRows[0].name }}</span
> >
</span> </span>
<span class="title" <span class="title"
>项目经理 >项目经理
<span <span
class="data" class="data"
style="color: #4ea6ff; margin-right: 15px" style="color: #4ea6ff; margin-right: 15px"
>{{ selectedRows[0].manager }}</span >{{ selectedRows[0].manager }}</span
> >
</span> </span>
<span class="title" <span class="title"
>创建人 >创建人
<span <span
class="data" class="data"
style="color: #4ea6ff; margin-right: 15px" style="color: #4ea6ff; margin-right: 15px"
>{{ selectedRows[0].creater }}</span >{{ selectedRows[0].creater }}</span
> >
</span> </span>
<span class="title" <span class="title"
>创建时间 >创建时间
<span class="data" style="color: #4ea6ff">{{ <span class="data" style="color: #4ea6ff">{{
selectedRows[0].time selectedRows[0].time
}}</span> }}</span>
</span> </span>
</div> </div>
<!-- <div v-else> <!-- <div v-else>
@@ -142,33 +142,33 @@
<div class="drawerbox"> <div class="drawerbox">
<!-- 添加的时候显示多选的表 --> <!-- 添加的时候显示多选的表 -->
<a-table <a-table
v-if="!edit" v-if="!edit"
:columns="tableDataFunc()" :columns="tableDataFunc()"
:data-source="drawertableData" :data-source="drawertableData"
:row-selection="{ :row-selection="{
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
onChange: onSelectChange, onChange: onSelectChange,
}" }"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 700 }" :scroll="{ x: 700 }"
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
> >
</a-table> </a-table>
<!-- 编辑的时候显示单选的表 --> <!-- 编辑的时候显示单选的表 -->
<a-table <a-table
v-else v-else
:columns="tableDataFunc()" :columns="tableDataFunc()"
:data-source="drawertableData" :data-source="drawertableData"
:row-selection="{ :row-selection="{
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
onChange: onSelectChange, onChange: onSelectChange,
type: 'radio', type: 'radio',
}" }"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 700 }" :scroll="{ x: 700 }"
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
> >
</a-table> </a-table>
</div> </div>
@@ -181,11 +181,11 @@
</div> </div>
<!-- 有重复添加的项目时的弹窗 --> <!-- 有重复添加的项目时的弹窗 -->
<a-modal <a-modal
v-model:visible="sameModal" v-model:visible="sameModal"
:footer="null" :footer="null"
:closable="sameCopy" :closable="sameCopy"
wrapClassName="sameModal" wrapClassName="sameModal"
centered="true" centered="true"
> >
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
@@ -212,11 +212,12 @@
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs } from "vue"; import {reactive, toRefs} from "vue";
import { RouterEditTask } from "@/api/indexTask"; import {RouterEditTask} from "@/api/indexTask";
import { message } from "ant-design-vue"; import {message} from "ant-design-vue";
import * as apiProj from "../../api/index.js"; import * as apiProj from "../../api/index.js";
import dayjs from "dayjs"; import dayjs from "dayjs";
export default { export default {
name: "AddProject", name: "AddProject",
props: { props: {
@@ -328,7 +329,7 @@ export default {
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addprojvisible", false); ctx.emit("update:addprojvisible", false);
ctx.emit("update:edit", false); ctx.emit("update:edit", false);
state.selectedRows = []; state.selectedRows = [];
state.selectedRowKeys = []; state.selectedRowKeys = [];
}; };
@@ -370,27 +371,27 @@ export default {
//获取全部项目信息接口 //获取全部项目信息接口
const getAllProjText = () => { const getAllProjText = () => {
apiProj apiProj
.getProjectList({ .getProjectList({
createName: state.inputV1, createName: state.inputV1,
manager: state.inputV2, manager: state.inputV2,
name: state.inputV3, name: state.inputV3,
pageNo: state.currentPage, pageNo: state.currentPage,
pageSize: state.pageSize, pageSize: state.pageSize,
status: state.status, status: state.status,
}) })
.then((res) => { .then((res) => {
let arr = res.data.data.rows; let arr = res.data.data.rows;
if (res.status === 200) { if (res.status === 200) {
state.drawertableData = getTableDate(arr); state.drawertableData = getTableDate(arr);
} }
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
//message.error("获取全部项目信息接口失败"); //message.error("获取全部项目信息接口失败");
}); });
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
if (bool) { if (bool) {
getAllProjText(); getAllProjText();
} }
@@ -435,12 +436,12 @@ export default {
state.selectedRows.forEach((item) => { state.selectedRows.forEach((item) => {
let origin = JSON.parse(props.chooseProjectList); let origin = JSON.parse(props.chooseProjectList);
console.log("ccxx", origin); console.log("ccxx", origin);
if(origin==null){ if (origin == null) {
closeSameModal(); closeSameModal();
closeDrawer(); closeDrawer();
message.destroy(); message.destroy();
message.info("添加成功"); message.info("添加成功");
return; return;
} }
if (origin.length == 0) { if (origin.length == 0) {
//可以直接添加到任务列表里 //可以直接添加到任务列表里
@@ -464,9 +465,9 @@ export default {
}); });
}; };
const updateTask = (res) => { const updateTask = async (res) => {
if (props.isLevel == 1) { if (props.isLevel == 1) {
RouterEditTask({ await RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
courseId: res.key, courseId: res.key,
name: res.name, name: res.name,
@@ -474,13 +475,13 @@ export default {
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
type: 13, type: 13,
}) })
.then(() => { .then(() => {
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`); message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`); message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
}); });
} }
}; };
const onSelectChange = (selectedRowKeys, selectRow) => { const onSelectChange = (selectedRowKeys, selectRow) => {
@@ -496,11 +497,13 @@ export default {
state.sameProj = null; state.sameProj = null;
state.sameModal = false; state.sameModal = false;
}; };
const sureSameModal = () => { const sureSameModal = async () => {
// updateTask(state.sameProj); // updateTask(state.sameProj);
state.selectedRows.forEach((item) => { if (state.selectedRows && state.selectedRows.length) {
updateTask(item); for (const item in state.selectedRows) {
}); await updateTask(item);
}
}
state.sameProj = null; state.sameProj = null;
state.sameModal = false; state.sameModal = false;
closeDrawer(); closeDrawer();
@@ -530,17 +533,21 @@ export default {
.ant-table-striped :deep(.table-striped) td { .ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important; background-color: #fafafa !important;
} }
.sameModal { .sameModal {
.ant-modal { .ant-modal {
width: 424px !important; width: 424px !important;
height: 258px !important; height: 258px !important;
.ant-modal-content { .ant-modal-content {
width: 424px !important; width: 424px !important;
height: 258px !important; height: 258px !important;
.ant-modal-body { .ant-modal-body {
width: 424px !important; width: 424px !important;
height: 258px !important; height: 258px !important;
padding: 0 !important; padding: 0 !important;
.delete { .delete {
z-index: 999; z-index: 999;
width: 424px; width: 424px;
@@ -557,19 +564,22 @@ export default {
width: calc(100%); width: calc(100%);
height: 68px; height: 68px;
background: linear-gradient( background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%, rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100% rgba(78, 166, 255, 0) 100%
); );
} }
.del_main { .del_main {
width: 100%; width: 100%;
position: relative; position: relative;
.header { .header {
display: flex; display: flex;
align-items: center; align-items: center;
padding-top: 20px; padding-top: 20px;
padding-left: 26px; padding-left: 26px;
font-size: 16px; font-size: 16px;
.icon { .icon {
width: 16px; width: 16px;
height: 16px; height: 16px;
@@ -577,6 +587,7 @@ export default {
background-image: url(@/assets/images/taskpage/gan.png); background-image: url(@/assets/images/taskpage/gan.png);
background-size: 100% 100%; background-size: 100% 100%;
} }
.close_exit { .close_exit {
position: absolute; position: absolute;
right: 42px; right: 42px;
@@ -587,6 +598,7 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
.body { .body {
width: 100%; width: 100%;
margin: 34px auto 56px auto; margin: 34px auto 56px auto;
@@ -596,6 +608,7 @@ export default {
flex-direction: column; flex-direction: column;
// background-color: red; // background-color: red;
position: relative; position: relative;
.back { .back {
position: absolute; position: absolute;
top: 30px; top: 30px;
@@ -604,10 +617,12 @@ export default {
color: #666666; color: #666666;
} }
} }
.del_btnbox { .del_btnbox {
display: flex; display: flex;
margin: 30px auto; margin: 30px auto;
justify-content: center; justify-content: center;
.del_btn { .del_btn {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -619,17 +634,20 @@ export default {
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
line-height: 40px; line-height: 40px;
} }
} }
.btn1 { .btn1 {
border: 1px solid rgba(64, 158, 255, 1); border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff; color: #4ea6ff;
margin-right: 14px; margin-right: 14px;
} }
.btn2 { .btn2 {
background-color: #4ea6ff; background-color: #4ea6ff;
color: #ffffff; color: #ffffff;
@@ -641,6 +659,7 @@ export default {
} }
} }
} }
.addrefDrawer { .addrefDrawer {
.drawerMain { .drawerMain {
// .main_notice { // .main_notice {
@@ -680,6 +699,7 @@ export default {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
flex-shrink: 0; flex-shrink: 0;
.headerTitle { .headerTitle {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
@@ -688,35 +708,43 @@ export default {
margin-left: 24px; margin-left: 24px;
} }
} }
.contentMain { .contentMain {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.main_left { .main_left {
margin-top: 32px; margin-top: 32px;
padding-right: 30px; padding-right: 30px;
flex: 1; flex: 1;
border-right: 1px solid #e8e8e8; border-right: 1px solid #e8e8e8;
.main_item { .main_item {
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 32px; margin-top: 32px;
margin-bottom: 32px; margin-bottom: 32px;
.signbox { .signbox {
width: 120px; width: 120px;
display: flex; display: flex;
justify-content: end; justify-content: end;
align-items: center; align-items: center;
.sign { .sign {
margin-right: 5px; margin-right: 5px;
} }
} }
.btnbox { .btnbox {
display: flex; display: flex;
flex: 1; flex: 1;
align-items: center; align-items: center;
.ant-input { .ant-input {
height: 100%; height: 100%;
} }
.xkbtn { .xkbtn {
cursor: pointer; cursor: pointer;
width: 130px; width: 130px;
@@ -729,32 +757,40 @@ export default {
} }
} }
} }
.main_item2 { .main_item2 {
display: flex; display: flex;
align-items: flex-start; align-items: flex-start;
margin-bottom: 32px; margin-bottom: 32px;
.signbox { .signbox {
width: 120px; width: 120px;
display: flex; display: flex;
justify-content: end; justify-content: end;
align-items: center; align-items: center;
.sign { .sign {
margin-right: 5px; margin-right: 5px;
} }
} }
.textarea { .textarea {
width: 423px; width: 423px;
.ant-input { .ant-input {
width: 100%; width: 100%;
} }
.ant-input-textarea-show-count { .ant-input-textarea-show-count {
position: relative; position: relative;
} }
.ant-input-textarea-show-count::after { .ant-input-textarea-show-count::after {
position: absolute; position: absolute;
right: 10px; right: 10px;
bottom: 0px; bottom: 0px;
} }
.ant-input { .ant-input {
border-radius: 8px; border-radius: 8px;
} }
@@ -762,6 +798,7 @@ export default {
} }
} }
} }
.main_btns { .main_btns {
height: 72px; height: 72px;
width: 100%; width: 100%;
@@ -771,6 +808,7 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 { .btn1 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -780,6 +818,7 @@ export default {
background-color: #fff; background-color: #fff;
cursor: pointer; cursor: pointer;
} }
.btn2 { .btn2 {
cursor: pointer; cursor: pointer;
width: 100px; width: 100px;