Files
fe-manage/src/components/drawers/AddRef.vue
2022-11-08 17:05:12 +08:00

589 lines
16 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<a-drawer
:visible="addrefVisible"
class="drawerStyle addrefDrawer"
width="80%"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">{{ title }}外链</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<a-form ref="formRef" name="custom-validation" :model="state" :rules="rules" v-bind="layout"
@finish="handleFinish" @validate="handleValidate" @finishFailed="handleFinishFailed">
<div class="contentMain">
<div class="main_left">
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">外链名称</span>
</div>
<div class="btnbox">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 32px"
placeholder="请输入外链名称"
maxlength="20"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">链接</span>
</div>
<div class="btnbox">
<a-input
v-model:value="inputV2"
style="width: 424px; height: 32px"
placeholder="请输入链接"
/>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">外链说明</span>
</div>
<div class="textarea">
<a-textarea
v-model:value="textV1"
placeholder="请输入外链说明"
allow-clear
/>
</div>
</div>
</div>
</div>
</a-form>
<div class="main_btns">
<button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="createExternalChain">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
import { reactive, toRefs, ref, onMounted } from "vue";
import * as api from "../../api/indexExternalChain";
import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask";
//import { query } from "express";
const rowSelection = ref({
checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => {
console.log(
`selectedRowKeys: ${selectedRowKeys}`,
"selectedRows: ",
selectedRows
);
},
onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows);
},
onSelectAll: (selected, selectedRows, changeRows) => {
console.log(selected, selectedRows, changeRows);
},
});
export default {
name: "AddRef",
// components: {
// },
props: {
addrefVisible: {
type: Boolean,
default: false,
},
isStudy: {
type: Number,
default: null,
},
projectId: {
type: Number,
default: null,
},
chooseStageId: {
type: Number,
default: null,
},
isRefEdit: {
type: Number,
default: null,
},
EditRefId: {
type: Number,
default: null,
},
},
setup(props, ctx) {
const state = reactive({
inputV1: "",
inputV2: "",
textV1: "",
title: null,
});
const closeDrawer = () => {
console.log(props, 1111);
ctx.emit("update:addrefVisible", false);
ctx.emit("update:isRefEdit", 1);
console.log("props", props.routerId);
state.inputV2 = "";
state.inputV1 = "";
state.textV1 = "";
};
const updateRef = () => {
// 如果是关卡页面进入 ---------------------------------
if (props.isLevel) {
if(props.isRefEdit){
createExternalRef();
}else{
updateExternalRef();
}
console.log('关卡创建任务***************');
} else { // 任务页面进入------------------------------
if (props.isRefEdit) { // 编辑任务
console.log('编辑任务***************');
updateExternalChain();
} else { // 创建任务
console.log('创建任务***************');
createExternalChain();
}
}
};
const afterVisibleChange = (bool) => {
console.log("state", bool);
queryRef();
};
const handleFinish = values => {
console.log(values);
updateRef(props.EditRefId)
};
const handleFinishFailed = errors => {
console.log(errors);
// message.error("handleFinishFailed");
};
//创建外链
const createExternalChain = () => {
if (!state.inputV1) return message.warning("请输入外链名称");
if (!state.inputV2) return message.warning("请输入链接");
let obj = {
linkAddress: state.inputV2,
linkDescription: state.textV1,
linkId: props.EditRefId == null ? 0 : props.EditRefId,
linkName: state.inputV1,
};
//编辑外链
api
.createExternalChain(obj)
.then((res) => {
console.log(res.data.data, "外链添加成功了");
message.success("提交成功");
closeDrawer();
//项目的创建
apiTask
.addTask({
courseId: res.data.data.linkId,
duration: 0,
flag: true,
name: obj.linkName,
projectId: props.projectId,
projectTaskId: 0,
stageId: props.chooseStageId,
type: 7,
})
.then((res) => {
console.log("调用项目添加接口后111", res.data, 11111);
ctx.emit("changeData", false);
//重新获取任务列表
// apiTask.getTask({ projectId: 28 });
// router.push("/taskadd");
})
.catch((err) => {
console.log(err, 111111);
});
})
.catch((err) => {
console.log(err);
});
};
const updateExternalChain = () => {
if (!state.inputV1) return message.warning("请输入外链名称");
if (!state.inputV2) return message.warning("请输入链接");
let obj = {
linkAddress: state.inputV2,
linkDescription: state.textV1,
linkId: props.EditRefId == null ? 0 : props.EditRefId,
linkName: state.inputV1,
};
//编辑外链
api
.updateLinks(obj)
.then((res) => {
console.log("编辑成功", res);
message.success("编辑成功");
closeDrawer();
})
.catch((err) => console.log(err));
};
const createExternalRef = () => {
if (!state.inputV1) return message.warning("请输入外链名称");
if (!state.inputV2) return message.warning("请输入链接");
let obj = {
createUser: 0,
createTime: "",
linkAddress: state.inputV2,
linkDescription: state.textV1,
linkFlag: "",
linkId: props.EditRefId == null ? 0 : props.EditRefId,
linkName: state.inputV1,
linkTag: "",
updateTime: "",
updateUser: 0,
};
//编辑外链
if (props.isRefEdit) {
api
.updateLinks(obj)
.then((res) => {
console.log("编辑成功", res);
message.success("编辑成功");
closeDrawer();
})
.catch((err) => console.log(err));
} else {
api
.createExternalChain(obj)
.then((res) => {
console.log(res.data.data, "外链添加成功了");
message.success("提交成功");
closeDrawer();
//学习路径的创建
if (props.isStudy == 1) {
let objj = {
chapterId: 36,
courseId: 0,
duration: 0,
flag: true,
name: obj.linkName,
routerId: 92,
routerTaskId: 0,
type: 7,
};
RouterEditTask(objj)
.then((res) => {
console.log(res, 11111);
})
.catch((err) => {
console.log(err, 1111);
});
} else {
//项目的创建
apiTask
.addTask({
courseId: res.data.data.linkId,
duration: 0,
flag: true,
name: obj.linkName,
projectId: props.projectId,
projectTaskId: 0,
stageId: props.chooseStageId,
type: 7,
})
.then((res) => {
console.log("调用项目添加接口后111", res.data, 11111);
ctx.emit("changeData", false);
//重新获取任务列表
// apiTask.getTask({ projectId: 28 });
// router.push("/taskadd");
})
.catch((err) => {
console.log(err, 111111);
});
}
})
.catch((err) => {
console.log(err);
});
}
};
const updateExternalRef = () => {
if (!state.inputV1) return message.warning("请输入外链名称");
if (!state.inputV2) return message.warning("请输入链接");
let obj = {
createUser: 0,
createTime: "",
linkAddress: state.inputV2,
linkDescription: state.textV1,
linkFlag: "",
linkId: props.EditRefId == null ? 0 : props.EditRefId,
linkName: state.inputV1,
linkTag: "",
updateTime: "",
updateUser: 0,
};
//编辑外链
if (props.isRefEdit) {
api
.updateLinks(obj)
.then((res) => {
console.log("编辑成功", res);
message.success("编辑成功");
closeDrawer();
})
.catch((err) => console.log(err));
} else {
api
.createExternalChain(obj)
.then((res) => {
console.log(res.data.data, "外链添加成功了");
message.success("提交成功");
closeDrawer();
//学习路径的创建
if (props.isStudy == 1) {
let objj = {
chapterId: 36,
courseId: 0,
duration: 0,
flag: true,
name: obj.linkName,
routerId: 92,
routerTaskId: 0,
type: 7,
};
RouterEditTask(objj)
.then((res) => {
console.log(res, 11111);
})
.catch((err) => {
console.log(err, 1111);
});
} else {
//项目的创建
apiTask
.addTask({
courseId: res.data.data.linkId,
duration: 0,
flag: true,
name: obj.linkName,
projectId: props.projectId,
projectTaskId: 0,
stageId: props.chooseStageId,
type: 7,
})
.then((res) => {
console.log("调用项目添加接口后111", res.data, 11111);
ctx.emit("changeData", false);
//重新获取任务列表
// apiTask.getTask({ projectId: 28 });
// router.push("/taskadd");
})
.catch((err) => {
console.log(err, 111111);
});
}
})
.catch((err) => {
console.log(err);
});
}
};
// 查询任务
const queryRef = () => {
let p =new FormData;
p.append('linkId',props.EditRefId);
api
.getLink(p).then((res) => {
// console.log(dayjs(res.data.data.submitStartTime).format("YYYY-MM-DD"));
state.inputV1 = res.data.data.linkName;
state.inputV2 =res.data.data.linkAddress;
state.textV1 =res.data.data.linkDescription;
console.log("查询成功=====inputv1",state.inputV1);
}).catch(() => {
message.error(`查询失败`)
})
};
//不生效
onMounted(() => {
state.title = props.isRefEdit == 2 ? "编辑" : "添加";
});
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
rowSelection,
createExternalChain,
handleFinish,
handleFinishFailed,
updateRef,
};
},
};
</script>
<style lang="scss">
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addrefDrawer {
.drawerMain {
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-left: 24px;
}
}
.contentMain {
display: flex;
justify-content: space-between;
.main_left {
padding-right: 30px;
flex: 1;
border-right: 1px solid #e8e8e8;
.main_item {
display: flex;
align-items: center;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.btnbox {
display: flex;
flex: 1;
align-items: center;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 8px;
color: #fff;
}
}
}
.main_item2 {
display: flex;
align-items: flex-start;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.kqszbox {
.qdqtbox {
margin-left: 56px;
}
.setbox {
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-bottom: 24px;
.timerbox {
margin-top: 6px;
margin-right: 32px;
display: flex;
align-items: center;
flex-wrap: nowrap;
}
}
}
.btnbox2 {
display: flex;
flex-direction: column;
justify-content: flex-start;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;
color: #fff;
margin-top: 16px;
margin-bottom: 60px;
}
}
}
}
}
.main_btns {
height: 72px;
width: 100%;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
}
</style>