This commit is contained in:
dongwug
2022-11-07 18:32:24 +08:00
11 changed files with 496 additions and 481 deletions

56
package-lock.json generated
View File

@@ -1414,11 +1414,6 @@
"integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
"dev": true "dev": true
}, },
"@popperjs/core": {
"version": "npm:@sxzz/popperjs-es@2.11.7",
"resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
},
"@sideway/address": { "@sideway/address": {
"version": "4.1.4", "version": "4.1.4",
"resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz", "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz",
@@ -2029,6 +2024,29 @@
"webpack-merge": "^5.7.3", "webpack-merge": "^5.7.3",
"webpack-virtual-modules": "^0.4.2", "webpack-virtual-modules": "^0.4.2",
"whatwg-fetch": "^3.6.2" "whatwg-fetch": "^3.6.2"
},
"dependencies": {
"@vue/vue-loader-v15": {
"version": "npm:vue-loader@15.10.0",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.0.tgz",
"integrity": "sha512-VU6tuO8eKajrFeBzMssFUP9SvakEeeSi1BxdTH5o3+1yUyrldp8IERkSdXlMI2t4kxF2sqYUDsQY+WJBxzBmZg==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^3.1.0",
"hash-sum": "^1.0.2",
"loader-utils": "^1.1.0",
"vue-hot-reload-api": "^2.3.0",
"vue-style-loader": "^4.1.0"
},
"dependencies": {
"hash-sum": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
"integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
"dev": true
}
}
}
} }
}, },
"@vue/cli-shared-utils": { "@vue/cli-shared-utils": {
@@ -2272,27 +2290,6 @@
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.39.tgz", "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.39.tgz",
"integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==" "integrity": "sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw=="
}, },
"@vue/vue-loader-v15": {
"version": "npm:vue-loader@15.10.0",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.0.tgz",
"integrity": "sha512-VU6tuO8eKajrFeBzMssFUP9SvakEeeSi1BxdTH5o3+1yUyrldp8IERkSdXlMI2t4kxF2sqYUDsQY+WJBxzBmZg==",
"dev": true,
"requires": {
"@vue/component-compiler-utils": "^3.1.0",
"hash-sum": "^1.0.2",
"loader-utils": "^1.1.0",
"vue-hot-reload-api": "^2.3.0",
"vue-style-loader": "^4.1.0"
},
"dependencies": {
"hash-sum": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
"integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
"dev": true
}
}
},
"@vue/web-component-wrapper": { "@vue/web-component-wrapper": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",
@@ -3958,6 +3955,13 @@
"lodash-unified": "^1.0.2", "lodash-unified": "^1.0.2",
"memoize-one": "^6.0.0", "memoize-one": "^6.0.0",
"normalize-wheel-es": "^1.2.0" "normalize-wheel-es": "^1.2.0"
},
"dependencies": {
"@popperjs/core": {
"version": "npm:@sxzz/popperjs-es@2.11.7",
"resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
}
} }
}, },
"emoji-regex": { "emoji-regex": {

3
src/api/indexStudy.js Normal file
View File

@@ -0,0 +1,3 @@
import http from "./config";
//路径图删除任务
export const deleteStudyTask = (obj) => http.delete('/admin/router/deleteTask', { params: obj })

View File

@@ -1,3 +1,4 @@
function formatNumber(n) { function formatNumber(n) {
n = n.toString(); n = n.toString();
return n[1] ? n : "0" + n; return n[1] ? n : "0" + n;
@@ -161,8 +162,12 @@ function autoComma(number) {
return 0; return 0;
} }
} }
const commonData={
timeout:50
}
export { export {
toDate, toDate,
getWeek, getWeek,
autoComma, autoComma,
commonData,
} }

View File

@@ -438,3 +438,17 @@ textarea {
} }
//弹窗-------------------------------------------------------- //弹窗--------------------------------------------------------
//loading--------------------------------------------------------
.aeLoading {
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.2);
display: flex;
align-items: center;
justify-content: center;
position: absolute;
left: 0;
top:0,
}
//loading--------------------------------------------------------

View File

@@ -9,7 +9,8 @@
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle" >添加活动</div> <div v-if="edit" 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"
@@ -272,6 +273,10 @@ export default {
chooseStageId: { chooseStageId: {
type: Number, type: Number,
default: null, default: null,
},
edit: {
type: Boolean,
default: false,
} }
}, },
setup(props, ctx) { setup(props, ctx) {
@@ -290,6 +295,7 @@ export default {
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addactiveVisible", false); ctx.emit("update:addactiveVisible", false);
ctx.emit("update:edit", false);
state.radioV1 = ""; state.radioV1 = "";
state.inputV1 = ""; state.inputV1 = "";
state.inputV2 = ""; state.inputV2 = "";

View File

@@ -66,6 +66,9 @@
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="createDiscuss">确定</button> <button class="btn2" @click="createDiscuss">确定</button>
</div> </div>
</div>
<div class="aeLoading" :style="{display:addLoading?'flex':'none'}">
<a-spin :spinning="addLoading" tip="添加中..." />
</div> </div>
</a-drawer> </a-drawer>
</template> </template>
@@ -123,6 +126,10 @@ export default {
chooseStageId: { chooseStageId: {
type: Number, type: Number,
default: null, default: null,
},
editDiscussId: {
type: Number,
default: null,
} }
}, },
setup(props, ctx) { setup(props, ctx) {
@@ -132,6 +139,7 @@ export default {
inputV2: "", inputV2: "",
textV1: "", textV1: "",
checkedC1: "", checkedC1: "",
addLoading:false,
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:adddiscussVisible", false); ctx.emit("update:adddiscussVisible", false);
@@ -149,6 +157,7 @@ export default {
message.destroy(); message.destroy();
return message.warning("请输入讨论名称"); return message.warning("请输入讨论名称");
} }
state.addLoading=true
let obj = { let obj = {
discussName: state.inputV1, //讨论名称 discussName: state.inputV1, //讨论名称
discussExplain: state.textV1, //讨论说明 discussExplain: state.textV1, //讨论说明
@@ -156,26 +165,36 @@ export default {
createTime: "", //创建时间 createTime: "", //创建时间
createUser: 0, //创建人 createUser: 0, //创建人
discussFlag: "", //活动逻辑删除标识 discussFlag: "", //活动逻辑删除标识
discussId: 0, //讨论Id discussId: props.editDiscussId == null ? 0 : props.editDiscussId, //讨论Id
discussTag: "", //是否必修的标识 discussTag: "", //是否必修的标识
updateTime: "", //更新时间 updateTime: "", //更新时间
updateUser: 0, //更新人 updateUser: 0, //更新人
projectId: 0, //项目id projectId: 0, //项目id
}; };
if(props.edit){
//console.log("编辑");
api
.updateDiscuss(obj)
.then((res) => {
console.log("编辑成功", res);
message.success("编辑成功");
closeDrawer();
})
.catch((err) => console.log(err));
}else{
api api
.createDiscuss(obj) .createDiscuss(obj)
.then((res) => { .then((res) => {
console.log("创建成功", res); console.log("创建成功", res);
state.inputV1 = ""; state.inputV1 = "";
state.textV1 = ""; state.textV1 = "";
message.success("创建成功");
ctx.emit("update:adddiscussVisible", false);
//console.log("discussName",obj.discussName); //console.log("discussName",obj.discussName);
console.log("学习路径",props.isStudiscuss); console.log("学习路径",props.isStudiscuss);
if(props.isStudiscuss){ if(props.isStudiscuss){
let editObj1 = { let editObj1 = {
chapterId:props.isactive, chapterId:props.isactive,
courseId: 0, courseId: res.data.data.discussId,
duration: 0, duration: 0,
flag: true, flag: true,
name: obj.discussName, name: obj.discussName,
@@ -185,7 +204,12 @@ export default {
} }
RouterEditTask(editObj1).then(res => { RouterEditTask(editObj1).then(res => {
console.log("新增关卡任务成功",res); console.log("新增关卡任务成功",res);
setTimeout(()=>{
message.success("创建成功");
ctx.emit("update:adddiscussVisible", false);
closeDrawer(); closeDrawer();
state.addLoading=false
},1000)
}).catch(err => { }).catch(err => {
console.log("新增关卡任务失败",err); console.log("新增关卡任务失败",err);
}) })
@@ -193,7 +217,7 @@ export default {
console.log("项目添加讨论"); console.log("项目添加讨论");
apiTask apiTask
.addTask({ .addTask({
courseId: 0, courseId: res.data.data.discussId,
duration: 0, duration: 0,
flag: true, flag: true,
name: obj.discussName, name: obj.discussName,
@@ -208,6 +232,7 @@ export default {
//重新获取任务列表 //重新获取任务列表
// apiTask.getTask({ projectId: 28 }); // apiTask.getTask({ projectId: 28 });
// router.push("/taskadd"); // router.push("/taskadd");
state.addLoading=false
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
@@ -217,6 +242,8 @@ export default {
.catch((err) => { .catch((err) => {
console.log("创建失败", err); console.log("创建失败", err);
}); });
}
}; };
return { return {
...toRefs(state), ...toRefs(state),
@@ -351,5 +378,6 @@ export default {
} }
} }
} }
} }
</style> </style>

View File

@@ -226,23 +226,11 @@
<button class="samtn btn2" @click="createLearnPath">确定</button> <button class="samtn btn2" @click="createLearnPath">确定</button>
</div> </div>
</div> </div>
<div class="aeLoading" :style="{display:lpLoading?'flex':'none'}">
<a-spin :spinning="lpLoading" tip="添加中..." />
</div> </div>
<!-- <div </div>
style="
width: 300px;
height: 200px;
display: flex;
align-items: center;
justify-content: center;
background:pink;
flex-shrink: 0;
position:absolute,
z-index: 100;
"
v-if="true"
>
<a-spin :spinning="true" />
</div> -->
</a-modal> </a-modal>
<!-- 编辑路径弹窗 --> <!-- 编辑路径弹窗 -->
@@ -602,7 +590,7 @@ import QueryRight from "../../components/drawers/QueryRight";
import ManageRight from "../../components/drawers/ManageRight"; import ManageRight from "../../components/drawers/ManageRight";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { toDate } from "../../api/method"; import { toDate,commonData } from "../../api/method";
import { storage } from "../../api/storage"; import { storage } from "../../api/storage";
export default { export default {
name: "learningPath", name: "learningPath",
@@ -732,6 +720,8 @@ export default {
routeStudentsNum: 0, routeStudentsNum: 0,
recallPathId: null, //撤回路径id recallPathId: null, //撤回路径id
stopPathId: null, //停用路径id stopPathId: null, //停用路径id
lpLoading:false,
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
@@ -1298,7 +1288,7 @@ export default {
// message.destroy(); // message.destroy();
// return message.warning("请选择归属组织"); // return message.warning("请选择归属组织");
// } // }
// state.createLoading = true; state.lpLoading = true;
let obj = { let obj = {
name: state.pathName, name: state.pathName,
picUrl: "", picUrl: "",
@@ -1308,19 +1298,19 @@ export default {
api api
.createLearnPath(obj) .createLearnPath(obj)
.then((res) => { .then((res) => {
console.log("创建成功", res);
message.destroy();
message.success("创建成功");
router.push("/leveladd");
// setTimeout(() => {
// console.log("创建成功", res); // console.log("创建成功", res);
// message.destroy(); // message.destroy();
// message.success("创建成功"); // message.success("创建成功");
// // state.createLoading = false;
// state.currentPage = 1;
// router.push("/leveladd"); // router.push("/leveladd");
// // getLearnPath(); setTimeout(() => {
// }, 1000); console.log("创建成功", res);
message.destroy();
message.success("创建成功");
state.lpLoading = false;
state.currentPage = 1;
router.push("/leveladd");
// getLearnPath();
}, commonData.timeout);
}) })
.catch((err) => { .catch((err) => {
console.log("创建失败", err); console.log("创建失败", err);

View File

@@ -501,12 +501,13 @@
margin-right: 25px; margin-right: 25px;
cursor: pointer; cursor: pointer;
" "
@click="decideType(element.lei, element.courseId)"
> >
编辑 编辑
</span> </span>
<span <span
style="color: #4ea6ff; cursor: pointer" style="color: #4ea6ff; cursor: pointer"
@click="showDelete(element.id)" @click="showDeleteModal(element.id)"
> >
删除 删除
</span> </span>
@@ -516,22 +517,6 @@
</div> </div>
</template> </template>
</draggable> </draggable>
<!-- <a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:customRow="handleClickRow"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/> -->
</div> </div>
<!-- 无数据样式 --> <!-- 无数据样式 -->
<div class="notable" :style="{ display: stm_hs ? 'block' : 'none' }"> <div class="notable" :style="{ display: stm_hs ? 'block' : 'none' }">
@@ -780,9 +765,16 @@
<add-live <add-live
v-model:addliveVisible="addlivevisible" v-model:addliveVisible="addlivevisible"
v-model:isStudy="isStudy" v-model:isStudy="isStudy"
v-model:isactive="isactive"
v-model:routerId="routerId"
/> />
<!-- 添加外链抽屉 --> <!-- 添加外链抽屉 -->
<add-ref v-model:addrefVisible="addrefvisible" v-model:isStudy="isStudy" /> <add-ref
v-model:addrefVisible="addrefvisible"
v-model:isStudy="isStudy"
v-model:isactive="isactive"
v-model:routerId="routerId"
/>
<!-- 是否确认删除任务弹窗 --> <!-- 是否确认删除任务弹窗 -->
<!-- 确认删除阶段弹窗 --> <!-- 确认删除阶段弹窗 -->
<a-modal <a-modal
@@ -831,9 +823,10 @@ import AddVote from "../../components/drawers/AddVote.vue";
import AddLive from "../../components/drawers/AddLive.vue"; import AddLive from "../../components/drawers/AddLive.vue";
import AddRef from "../../components/drawers/AddRef.vue"; import AddRef from "../../components/drawers/AddRef.vue";
import * as api from "../../api/indexLevel"; import * as api from "../../api/indexLevel";
import { GetRouterDetail, RouterDeleteTask } from "../../api/indexTask"; import { GetRouterDetail } from "../../api/indexTask";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { storage } from "../../api/storage"; import { storage } from "../../api/storage";
import { deleteStudyTask } from "../../api/indexStudy";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
export default { export default {
name: "LevelAddDetail", name: "LevelAddDetail",
@@ -863,6 +856,10 @@ export default {
name: "默认关卡", name: "默认关卡",
}, },
], ],
isRefEdit: 1, //外链编辑
isLiveEdit: 1, //直播编辑
EditRefId: null, //要编辑的外链的id
EditLiveId: null, //要编辑的直播的id
tableData: [ tableData: [
{ {
key: 1, key: 1,
@@ -1178,6 +1175,7 @@ export default {
cretime: element.duration, cretime: element.duration,
checked1: element.flag, checked1: element.flag,
routerTaskId: element.routerTaskId, routerTaskId: element.routerTaskId,
courseId: element.courseId,
}; };
array.push(obj); array.push(obj);
}); });
@@ -1220,135 +1218,128 @@ export default {
const showImpStu = () => { const showImpStu = () => {
state.AddImpStuvisible = true; state.AddImpStuvisible = true;
}; };
const tableDataFunc = () => { // const tableDataFunc = () => {
const columns = [ // const columns = [
{ // {
title: "类型", // title: "类型",
dataIndex: "state", // dataIndex: "state",
// width: "30%", // // width: "30%",
key: "state", // key: "state",
width: 60, // width: 60,
align: "left", // align: "left",
className: "classify", // className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽 // scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => { // customRender: (text) => {
// console.log(text.record.checked1); // // console.log(text.record.checked1);
return ( // return (
<div class="racona"> // <div class="racona">
<div // <div
class="img" // class="img"
style={{ cursor: "pointer" }} // style={{ cursor: "pointer" }}
onClick={() => { // onClick={() => {
console.log("点击了"); // console.log("点击了");
}} // }}
></div> // ></div>
<span> {text.record.lei}</span> // <span> {text.record.lei}</span>
// </div>
{/** // );
<div class="img"></div> // },
<a-checkbox class="ch" checked={text.record.checkedd}> // },
{text.record.lei} // {
</a-checkbox> // title: "任务名称",
*/} // dataIndex: "creater",
</div> // // width: "30%",
); // key: "creater",
}, // width: 200,
}, // align: "center",
{ // className: "h",
title: "任务名称", // },
dataIndex: "creater", // {
// width: "30%", // title: "必修/选修",
key: "creater", // dataIndex: "pubtime",
width: 200, // key: "pubtime",
align: "center", // // width: 100,
className: "h", // align: "center",
}, // className: "h",
{ // scopedSlots: { customRender: "action" }, //引入的插槽
title: "必修/选修", // customRender: (text) => {
dataIndex: "pubtime", // // console.log(text.record.checked1);
key: "pubtime", // return (
// width: 100, // <div class="opat">
align: "center", // <div class="opacationt clearfix">
className: "h", // <a-switch
scopedSlots: { customRender: "action" }, //引入的插槽 // style="margin-left:-50px;margin-top:3px"
customRender: (text) => { // checked={text.record.checked1}
// console.log(text.record.checked1); // size="small"
return ( // active-color="red"
<div class="opat"> // onClick={() => {
<div class="opacationt clearfix"> // console.log("点击了");
<a-switch // text.record.checked1 = !text.record.checked1;
style="margin-left:-50px;margin-top:3px" // }}
checked={text.record.checked1} // />
size="small" // <div class="showt clearfix">
active-color="red" // <div
onClick={() => { // class="bi"
console.log("点击了"); // style={
text.record.checked1 = !text.record.checked1; // text.record.checked1 ? "z-index:999" : "z-index:998"
}} // }
/> // >
<div class="showt clearfix"> // 必修
<div // </div>
class="bi" // <div class="xuan">选修</div>
style={ // </div>
text.record.checked1 ? "z-index:999" : "z-index:998" // </div>
} // </div>
> // );
必修 // },
</div> // },
<div class="xuan">选修</div> // {
</div> // title: "时长",
</div> // dataIndex: "cretime",
</div> // key: "cretime",
); // // width: 100,
}, // align: "center",
}, // className: "h",
{ // },
title: "时长", // {
dataIndex: "cretime", // title: "操作",
key: "cretime", // className: "h",
// width: 100, // dataIndex: "opacation",
align: "center", // key: "opacation",
className: "h", // // width: 100,
}, // align: "center",
{ // scopedSlots: { customRender: "action" }, //引入的插槽
title: "操作", // customRender: (e) => {
className: "h", // return (
dataIndex: "opacation", // <div class="opa">
key: "opacation", // <div class="opacation">
// width: 100, // <span
align: "center", // style="color:#4EA6FF;margin-right:25px;cursor:pointer"
scopedSlots: { customRender: "action" }, //引入的插槽 // onClick={() => {
customRender: (e) => { // console.log("编辑id", e.record.routerTaskId);
return ( // console.log("编辑类型", e.record.lei);
<div class="opa"> // state.editID = e.record.routerTaskId;
<div class="opacation"> // //state.addhomeworkvisible = true;
<span // }}
style="color:#4EA6FF;margin-right:25px;cursor:pointer" // >
onClick={() => { // 编辑
console.log("编辑id", e.record.routerTaskId); // </span>
console.log("编辑类型", e.record.lei); // <span
state.editID = e.record.routerTaskId; // style="color:#4EA6FF;cursor:pointer"
//state.addhomeworkvisible = true; // onClick={() => {
}} // showDeleteModal(e.record.routerTaskId);
> // }}
编辑 // >
</span> // 删除
<span // </span>
style="color:#4EA6FF;cursor:pointer" // </div>
onClick={() => { // </div>
showDeleteModal(e.record.routerTaskId); // );
}} // },
> // },
删除 // ];
</span> // return columns;
</div> // };
</div>
);
},
},
];
return columns;
};
const checkType = (index) => { const checkType = (index) => {
let typeRules = [ let typeRules = [
"", "",
@@ -1383,13 +1374,6 @@ export default {
return ( return (
<div class="racona"> <div class="racona">
<span> {text.record.name}</span> <span> {text.record.name}</span>
{/**
<div class="img"></div>
<a-checkbox class="ch" checked={text.record.checkedd}>
{text.record.lei}
</a-checkbox>
*/}
</div> </div>
); );
}, },
@@ -1560,8 +1544,8 @@ export default {
}); });
const changebgc = (chapterId) => { const changebgc = (chapterId) => {
state.isactive = chapterId; state.isactive = chapterId;
state.selectRow = [] //选择行 state.selectRow = []; //选择行
state.selectAll = 0 //0未选择1全选2部分选择 state.selectAll = 0; //0未选择1全选2部分选择
dataAssignment(chapterId); dataAssignment(chapterId);
}; };
const gqxy_hShow = () => { const gqxy_hShow = () => {
@@ -1576,6 +1560,7 @@ export default {
}; };
const showDeleteModal = (id) => { const showDeleteModal = (id) => {
state.deleteID = id; state.deleteID = id;
console.log(id);
state.deleteModal = true; state.deleteModal = true;
}; };
const closeConfirm = () => { const closeConfirm = () => {
@@ -1584,14 +1569,17 @@ export default {
state.editID = ""; state.editID = "";
}; };
const deleteLevelTask = () => { const deleteLevelTask = () => {
RouterDeleteTask(state.listChoosedId) deleteStudyTask({ routerTaskIds: state.deleteID }).then((res) =>
.then((res) => { console.log("删除成功", res)
console.log(`删除成功${res}`); );
message.success("删除成功"); // RouterDeleteTask(state.listChoosedId)
}) // .then((res) => {
.catch((err) => { // console.log(`删除成功${res}`);
console.log(`删除失败${err}`); // message.success("删除成功");
}); // })
// .catch((err) => {
// console.log(`删除失败${err}`);
// });
}; };
const showDrawerAddLive = () => { const showDrawerAddLive = () => {
@@ -1666,10 +1654,10 @@ export default {
const deletecTaskAll = () => { const deletecTaskAll = () => {
let arr = state.selectRow; let arr = state.selectRow;
console.log("选择的行信息", arr); console.log("选择的行信息", arr);
arr.map( value => { arr.map((value) => {
let obj = { let obj = {
routerTaskIds: value, routerTaskIds: value,
} };
console.log("value", value); console.log("value", value);
api api
.deleteTask(obj) .deleteTask(obj)
@@ -1681,14 +1669,14 @@ export default {
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
}); });
}) });
} };
//移动任务到关卡 //移动任务到关卡
const moveTask = () => { const moveTask = () => {
let obj = { let obj = {
chapterId: state.isactive, chapterId: state.isactive,
routerTaskIdList: state.selectRow, routerTaskIdList: state.selectRow,
} };
api api
.moveTask(obj) .moveTask(obj)
.then((res) => { .then((res) => {
@@ -1698,11 +1686,32 @@ export default {
}) })
.catch((err) => { .catch((err) => {
console.log("移动失败", err); console.log("移动失败", err);
}) });
};
//打开编辑外链的弹窗
const showEditRefDrawer = (id) => {
state.addrefvisible = true;
state.isRefEdit = 2;
state.EditRefId = id;
};
//打开编辑直播的弹窗
const showEditLiveDrawer = (id) => {
state.addlivevisible = true;
state.isLiveEdit = 2;
state.EditLiveId = id;
};
//编辑的按钮
const decideType = (type, id) => {
console.log(type, id);
if (type == "外链") {
showEditRefDrawer(id);
} else if (type == "直播") {
showEditLiveDrawer(id);
} }
};
return { return {
...toRefs(state), ...toRefs(state),
tableDataFunc, // tableDataFunc,
tableDataFunc2, tableDataFunc2,
showDrawer, showDrawer,
closeDrawer, closeDrawer,
@@ -1737,6 +1746,10 @@ export default {
changeRow, changeRow,
deletecTaskAll, deletecTaskAll,
moveTask, moveTask,
showDeleteModal,
showEditRefDrawer,
showEditLiveDrawer,
decideType,
}; };
}, },
}; };

View File

@@ -172,6 +172,8 @@
@changeData="updateTableData" @changeData="updateTableData"
v-model:projectId="projectId" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:isLiveEdit="isLiveEdit"
v-model:EditLiveId="EditLiveId"
/> />
</div> </div>
<!-- 添加直播侧弹窗 --> <!-- 添加直播侧弹窗 -->
@@ -212,6 +214,7 @@
v-model:edit="edit" v-model:edit="edit"
v-model:projectId="projectId" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:editDiscussId="editDiscussId"
@changeData="updateTableData" @changeData="updateTableData"
/> />
</div> </div>
@@ -230,6 +233,7 @@
<add-active <add-active
v-model:addactiveVisible="addactivevisible" v-model:addactiveVisible="addactivevisible"
v-model:projectId="projectId" v-model:projectId="projectId"
v-model:edit="edit"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
@changeData="updateTableData" @changeData="updateTableData"
/> />
@@ -843,7 +847,9 @@ export default {
? JSON.parse(storage.get("projectId")) ? JSON.parse(storage.get("projectId"))
: null, : null,
chooseStageId: null, chooseStageId: null,
edit: false,
isRefEdit: 1, //外链编辑 isRefEdit: 1, //外链编辑
isLiveEdit: 1, //直播编辑
EditRefId: null, //要编辑的外链的id EditRefId: null, //要编辑的外链的id
EditEvalId:null, EditEvalId:null,
projectNameList: [ projectNameList: [
@@ -985,7 +991,6 @@ export default {
selectedRowKeys: [], selectedRowKeys: [],
valuesname: "", valuesname: "",
valuesnotice: "", valuesnotice: "",
edit: false,
confirmModal: false, //确认添加阶段弹窗 confirmModal: false, //确认添加阶段弹窗
cC: false, cC: false,
cancelModal: false, //确认取消阶段弹窗 cancelModal: false, //确认取消阶段弹窗
@@ -1026,10 +1031,10 @@ export default {
.editStage(obj) .editStage(obj)
.then((res) => { .then((res) => {
console.log("添加阶段成功", res); console.log("添加阶段成功", res);
state.valuesname = "", (state.valuesname = ""),
state.valuesnotice = "", (state.valuesnotice = ""),
state.stage = false; (state.stage = false);
message.destroy(); message.default();
message.success("添加阶段成功"); message.success("添加阶段成功");
}) })
.catch((err) => { .catch((err) => {
@@ -1086,7 +1091,6 @@ export default {
const getStageData = (tableData) => { const getStageData = (tableData) => {
let data = tableData; let data = tableData;
let array = []; let array = [];
console.log("tableData", data);
data.map((value) => { data.map((value) => {
let obj = { let obj = {
id: value.stageId, id: value.stageId,
@@ -1099,128 +1103,135 @@ export default {
state.level = array; state.level = array;
}; };
// const tableDataFunc = () => { const tableDataFunc = () => {
// const columns = [ const columns = [
// { {
// title: "类型", title: "类型",
// dataIndex: "state", dataIndex: "state",
// // width: "30%", // width: "30%",
// key: "state", key: "state",
// width: 60, width: 60,
// align: "left", align: "left",
// className: "classify", className: "classify",
// scopedSlots: { customRender: "action" }, scopedSlots: { customRender: "action" },
// customRender: (text) => { customRender: (text) => {
// // console.log(text.record.checked1); // console.log(text.record.checked1);
// return ( return (
// <div class="racona"> <div class="racona">
// <div <div
// class="img" class="img"
// style={{ cursor: "pointer" }} style={{ cursor: "pointer" }}
// onClick={() => { onClick={() => {
// console.log("点击了"); console.log("点击了");
// }} }}
// ></div> ></div>
// <span> {text.record.lei}</span> <span> {text.record.lei}</span>
// </div>
// ); {/**
// }, <div class="img"></div>
// }, <a-checkbox class="ch" checked={text.record.checkedd}>
// { {text.record.lei}
// title: "任务名称", </a-checkbox>
// dataIndex: "creater", */}
// // width: "30%", </div>
// key: "creater", );
// width: 200, },
// align: "center", },
// className: "h", {
// }, title: "任务名称",
// { dataIndex: "creater",
// title: "必修/选修", // width: "30%",
// dataIndex: "pubtime", key: "creater",
// key: "pubtime", width: 200,
// // width: 100, align: "center",
// align: "center", className: "h",
// className: "h", },
// scopedSlots: { customRender: "action" }, {
// customRender: (text) => { title: "必修/选修",
// // console.log(text.record.checked1); dataIndex: "pubtime",
// return ( key: "pubtime",
// <div class="opat"> // width: 100,
// <div class="opacationt clearfix"> align: "center",
// <a-switch className: "h",
// style="margin-left:-50px;margin-top:3px" scopedSlots: { customRender: "action" },
// checked={text.record.checked1} customRender: (text) => {
// size="small" // console.log(text.record.checked1);
// active-color="red" return (
// onClick={() => { <div class="opat">
// console.log("点击了"); <div class="opacationt clearfix">
// text.record.checked1 = !text.record.checked1; <a-switch
// }} style="margin-left:-50px;margin-top:3px"
// /> checked={text.record.checked1}
// <div class="showt clearfix"> size="small"
// <div active-color="red"
// class="bi" onClick={() => {
// style={ console.log("点击了");
// text.record.checked1 ? "z-index:999" : "z-index:998" text.record.checked1 = !text.record.checked1;
// } }}
// > />
// 必修 <div class="showt clearfix">
// </div> <div
// <div class="xuan">选修</div> class="bi"
// </div> style={
// </div> text.record.checked1 ? "z-index:999" : "z-index:998"
// </div> }
// ); >
// }, 必修
// }, </div>
// { <div class="xuan">选修</div>
// title: "时长", </div>
// dataIndex: "cretime", </div>
// key: "cretime", </div>
// // width: 100, );
// align: "center", },
// className: "h", },
// }, {
// { title: "时长",
// title: "操作", dataIndex: "cretime",
// className: "h", key: "cretime",
// dataIndex: "opacation", // width: 100,
// key: "opacation", align: "center",
// // width: 100, className: "h",
// align: "center", },
// scopedSlots: { customRender: "action" }, {
// customRender: (text) => { title: "操作",
// return ( className: "h",
// <div class="opa"> dataIndex: "opacation",
// <div class="opacation"> key: "opacation",
// <span // width: 100,
// onClick={() => { align: "center",
// state.editonlinevisible = true; scopedSlots: { customRender: "action" },
// console.log(text, "编辑text"); customRender: (text) => {
// editInvistPath(); return (
// }} <div class="opa">
// style="color:#4EA6FF;margin-right:25px;cursor:pointer" <div class="opacation">
// > <span
// 编辑 onClick={() => {
// </span> state.editonlinevisible = true;
// <span console.log(text, "编辑text");
// style="color:#4EA6FF;cursor:pointer" editInvistPath();
// onClick={() => { }}
// showDelete(); style="color:#4EA6FF;margin-right:25px;cursor:pointer"
// state.deleteID = text.record.id; >
// }} 编辑
// > </span>
// 删除 <span
// </span> style="color:#4EA6FF;cursor:pointer"
// </div> onClick={() => {
// </div> showDelete();
// ); state.deleteID = text.record.id;
// }, }}
// }, >
// ]; 删除
// return columns; </span>
// }; </div>
</div>
);
},
},
];
return columns;
};
//获取任务列表 //获取任务列表
const getTask = () => { const getTask = () => {
@@ -1509,70 +1520,6 @@ export default {
}; };
//编辑直播信息
const editLiveBroadcast = () => {
let obj = {
afterSignIn: "",
beforeSignIn: "",
createTime: "",
createUser: 0,
liveCover: "",
liveDuration: 0,
liveEndTime: "",
liveExplain: "",
liveFlag: "",
liveId: 0,
liveLink: "",
liveName: "",
livePlayback: "",
livePlaybackLink: "",
liveStartTime: "",
liveTag: "",
liveTeacherId: 0,
otherSettings: "",
signOutTime: "",
standardSettings: "",
updateTime: "",
updateUser: 0,
};
apilive
.updateLiveBroadcastMessage(obj)
.then((res) => {
console.log(res);
message.success("修改成功");
})
.catch((err) => {
console.log(err);
message.warn("修改失败");
});
};
//编辑外链信息
const editExternal = () => {
let obj = {
createTime: "",
createUser: 0,
linkAddress: "",
linkDescription: "",
linkFlag: "",
linkId: 0,
linkName: "",
linkTag: "",
updateTime: "",
updateUser: 0,
};
apiExternal
.updateLinks(obj)
.then((res) => {
console.log(res);
message.success("修改成功");
})
.catch((err) => {
console.log(err);
message.warn("修改失败");
});
};
//删除评估测试 //删除评估测试
const deleteInvistText = () => { const deleteInvistText = () => {
let obj = { let obj = {
@@ -1694,7 +1641,7 @@ export default {
let obj = { let obj = {
stageId: state.chooseStageId, stageId: state.chooseStageId,
projectTaskId: state.selectRow, projectTaskId: state.selectRow,
} };
apimove apimove
.moveTask(obj) .moveTask(obj)
.then((res) => { .then((res) => {
@@ -1705,8 +1652,8 @@ export default {
}) })
.catch((err) => { .catch((err) => {
console.log("移动失败", err); console.log("移动失败", err);
}) });
} };
//批量删除 //批量删除
const deleteTaskAll = () => { const deleteTaskAll = () => {
let arr = state.selectRow; let arr = state.selectRow;
@@ -1726,8 +1673,8 @@ export default {
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
}); });
}) });
} };
const onSelectChange = (selectedRowKeys) => { const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys); console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = selectedRowKeys;
@@ -1899,6 +1846,12 @@ export default {
state.isRefEdit = 2; state.isRefEdit = 2;
state.EditRefId = id; state.EditRefId = id;
}; };
//打开编辑直播的弹窗
const showEditLiveDrawer = (id) => {
state.addlivevisible = true;
state.isLiveEdit = 2;
state.EditLiveId = id;
};
//打开测评外链的弹窗 //打开测评外链的弹窗
const showEditEvalDrawer = (id) => { const showEditEvalDrawer = (id) => {
console.log('222222222222222222222',id); console.log('222222222222222222222',id);
@@ -1907,13 +1860,16 @@ export default {
}; };
//编辑的按钮 //编辑的按钮
const decideType = (type, id) => { const decideType = (type, id) => {
state.edit = true, state.edit = true;
console.log(type, id); console.log(type, id);
if (type == "外链") { if (type == "外链") {
showEditRefDrawer(id); showEditRefDrawer(id);
} }
else if (type == "直播") {
showEditLiveDrawer(id);
}
else if (type == "测评") { else if (type == "测评") {
showEditEvalDrawer(id) showDrawerAddEval(id)
} }
else if (type == "评估") { else if (type == "评估") {
showDrawerAddInvist(id) showDrawerAddInvist(id)
@@ -1929,7 +1885,7 @@ export default {
...toRefs(state), ...toRefs(state),
selectProjectName, selectProjectName,
selectProjectName2, selectProjectName2,
// tableDataFunc, tableDataFunc,
showModal, showModal,
closeModal, closeModal,
// showDrawer, // showDrawer,
@@ -1967,8 +1923,6 @@ export default {
deleteVoteText, deleteVoteText,
editActivity, editActivity,
deleteInvistText, deleteInvistText,
editLiveBroadcast,
editExternal,
editInvistPath, editInvistPath,
editVotePath, editVotePath,
getTableData, getTableData,
@@ -1985,9 +1939,9 @@ export default {
updateWork, updateWork,
deleteTest, deleteTest,
deleteWork, deleteWork,
// showDrawerEditRef,
decideType, decideType,
showEditRefDrawer, showEditRefDrawer,
showEditLiveDrawer,
}; };
}, },
}; };
@@ -2378,9 +2332,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; // background-color: #bfa; align-items: center; // background-color: #bfa;
.chosen {
// background-color: pink;
}
.ghost { .ghost {
// background-color: red; // background-color: red;
opacity: 0 !important; opacity: 0 !important;