diff --git a/src/api/indexProjStu.js b/src/api/indexProjStu.js
index 392664b7..b8dfc793 100644
--- a/src/api/indexProjStu.js
+++ b/src/api/indexProjStu.js
@@ -22,4 +22,7 @@ export const studentProcess = (obj) => http.get('/admin/project/studentProcess',
export const topStudent = (obj) => http.post('/admin/project/topStudent', obj)
//项目概览
-export const overview = (obj) => http.get('/admin/project/overview', { params: obj })
\ No newline at end of file
+export const overview = (obj) => http.get('/admin/project/overview', { params: obj })
+
+//设置项目积分规则
+export const setScoreRule = (obj) => http.post('/admin/project/setScoreRule', obj)
\ No newline at end of file
diff --git a/src/components/drawers/AddVote.vue b/src/components/drawers/AddVote.vue
index 63b38ae1..9986004b 100644
--- a/src/components/drawers/AddVote.vue
+++ b/src/components/drawers/AddVote.vue
@@ -65,7 +65,7 @@
-
{{voteStemName}}
+
{{ballotName}}
@@ -76,6 +76,7 @@
v-model:crevoteVisible="crevotevisible"
@getData="getStemId"
v-model:voteStemId="voteStemId"
+ v-model:editStem="editStem"
/>
@@ -122,7 +123,7 @@
-
+
@@ -184,6 +185,14 @@ export default {
type: Number,
default: null,
},
+ voteId: {
+ type: Number,
+ default: null,
+ },
+ ballotId: {
+ type: Number,
+ default: null,
+ }
},
setup(props, ctx) {
const state = reactive({
@@ -199,34 +208,52 @@ export default {
voteStemId: null,
voteId:"",
voteStemName:"",
+ ballotName: "",
+ editStem: false, //编辑状态
+ ballotId: "", //题干id
+ optionId: "", //删除,修改选项id
});
const closeDrawer = () => {
+ state.inputV1 = "",
+ state.textV1 = "",
+ state.startTimes = "",
+ state.time = undefined,
+ state.endTimes = "",
+ state.basevote = "",
ctx.emit("update:addvoteVisible", false);
ctx.emit("update:edit", false);
};
const afterVisibleChange = (bool) => {
console.log("state", bool);
+ // if (props.edit == true) {
+ // queryVoteText()
+ // }
};
const showDrawerCreVote = () => {
state.crevotevisible = true;
+ if (state.creVote == true) {
+ state.editStem = true
+ }
};
const getStemId = (data) => {
+ state.ballotName = data.ballotName;
state.voteStemName = data.voteStemName;
state.voteStemId = Number(data.voteStemId);
+ state.ballotId = Number(data.ballotId)
state.creVote = data.creVote;
console.log('state.voteStemId', state.voteStemId);
console.log('state.voteStemId', state.creVote);
}
//暂时没用 之前给子用传参来着
- const changeVData = (data) => {
- console.log("111", data);
- state.creVote = data.creVote;
- state.ascriptionId = data.ascriptionId;
- state.voteStemId = data.voteStemId;
- state.voteStemName = data.voteStemName;
- console.log("222", state.creVote);
- console.log("333", state.ascriptionId);
- };
+ // const changeVData = (data) => {
+ // console.log("111", data);
+ // state.creVote = data.creVote;
+ // state.ascriptionId = data.ascriptionId;
+ // state.voteStemId = data.voteStemId;
+ // state.voteStemName = data.voteStemName;
+ // console.log("222", state.creVote);
+ // console.log("333", state.ascriptionId);
+ // };
const delBox = () => {
state.creVote = false;
};
@@ -247,6 +274,16 @@ export default {
delBox()
})
}
+
+ //新建还是编辑方法
+ const creoredi = () => {
+ if (props.eidt == false) {
+ createVoteText()
+ }
+ else {
+ changeVoteText()
+ }
+ }
//创建投票信息
const createVoteText = () => {
if (!state.inputV1) {
@@ -271,25 +308,34 @@ export default {
let obj = {
- ascriptionId: state.ascriptionId,
+ ballotId: state.ballotId,
baseVote: state.basevote,
+ createTime: "",
createUser: 0,
+ updateTime: "",
updateUser: 0,
voteEndTime: state.endTimes,
voteExplain: state.textV1,
voteFlag: "",
+ voteId: 0,
voteName: state.inputV1,
voteStartTime: state.startTimes,
- voteTag: "",
+ voteTag: ""
+
};
api
.createVote(obj)
.then((res) => {
console.log("创建成功123", res);
message.success("创建成功");
- ctx.emit("getData", res.data.data.voteId);
+ let changeVoteId = {
+ voteId: res.data.data.voteId,
+ ballotId: state.ballotId,
+ }
+ ctx.emit("getData", changeVoteId);
closeDrawer();
if (props.learn == 0)
+ //添加到项目任务列表
apitaskadd
.addTask({
courseId: 0,
@@ -330,18 +376,71 @@ export default {
console.log("创建失败", err);
});
};
+
+ //根据投票id获取投票信息
+ // const queryVoteText = ()=>{
+ // let objqurvt = {
+ // voteStemId:state.voteStemId
+ // //没有接口 个人认为应该是这个id
+ // }
+ // api
+ // //目前没接口 大概写的
+ // .queryVoteText(objqurvt)
+ // .then((res)=>{
+ // console.log('获取投票信息成功',res);
+ // state.inputV1 = res.data.data.voteName
+ // state.endTimes = res.data.data.voteEndTime
+ // state.startTimes = res.data.data.voteStartTime
+ // state.textV1 = res.data.data.voteExplain
+ // state.baseVote = res.data.data.baseVote
+ // state.ascriptionId = res.data.data.ascriptionId
+ // state.ballotId = res.data.data.ballotId
+ // })
+ // .catch((err)=>{
+ // console.log('获取投票信息失败',err);
+ // })
+ // }
+ //修改投票信息接口
+ const changeVoteText = () => {
+ let objcvt = {
+ ballotId: state.ballotId,
+ baseVote: state.basevote,
+ createTime: "",
+ createUser: 0,
+ updateTime: "",
+ updateUser: 0,
+ voteEndTime: state.endTimes,
+ voteExplain: state.textV1,
+ voteFlag: "",
+ voteId: state.voteId,
+ voteName: state.inputV1,
+ voteStartTime: state.startTimes,
+ voteTag: ""
+ }
+ api
+ .editVote(objcvt)
+ .then((res) => {
+ console.log('修改投票信息成功', res);
+ })
+ .catch((err) => {
+ console.log('修改投票信息失败', err);
+ })
+ }
return {
...toRefs(state),
showDrawerCreVote,
afterVisibleChange,
closeDrawer,
getStemId,
- changeVData,
+ // changeVData,
rowSelection,
options1,
dleVoteStem,
+ creoredi,
createVoteText,
+ changeVoteText,
delBox,
+ // queryVoteText,
updateTableData,
};
},
diff --git a/src/components/drawers/CreVote.vue b/src/components/drawers/CreVote.vue
index eb05cc62..a0e4dbf8 100644
--- a/src/components/drawers/CreVote.vue
+++ b/src/components/drawers/CreVote.vue
@@ -9,7 +9,8 @@
>
@@ -122,6 +123,10 @@ export default {
type: Boolean,
default: false,
},
+ editStem: {
+ type: Boolean,
+ default: false,
+ },
},
setup(props, ctx) {
const state = reactive({
@@ -178,12 +183,40 @@ export default {
value.splice(value[index],1)
}
const closeDrawer = () => {
+ state.inputV1 ="",
+ state.questions=[
+ {
+ stemTit: "题干",
+ inputV: "",
+ options: [
+ {
+ title: "选项",
+ opvalue: "",
+ },
+ {
+ title: "选项",
+ opvalue: "",
+ },
+ ],
+ },
+ ],
ctx.emit("update:crevoteVisible", false);
};
const afterVisibleChange = (bool) => {
console.log("state", bool);
+ if (props.editStem == true) {
+ queryStemText()
+ }
};
-
+ //创建题干还是编辑题干
+ const creoredi = () => {
+ if (props.eidtStem == false) {
+ createQueTit()
+ }
+ else {
+ changeStemText()
+ }
+ }
//创建题干接口
const createQueTit = () => {
if (!state.inputV1) {
@@ -258,8 +291,10 @@ export default {
// console.log('state.questions[0].inputV',state.questions[0].inputV);
message.success("创建成功");
let objstem = {
+ ballotName: state.inputV1,
voteStemName: state.questions[0].inputV,
voteStemId: res.data.data.voteStemVoList[0].voteStemId,
+ ballotId: res.data.data.ballotId,
creVote: true,
};
ctx.emit("getData", objstem);
@@ -269,6 +304,82 @@ export default {
console.log(err);
});
};
+ //删除选项信息
+ const delOptText = () => {
+ let objdelopt = {
+ // optionId: optionId
+ }
+ api
+ .deleteVoteStemOption(objdelopt)
+ .then((res) => {
+ console.log('删除选项信息成功', res);
+ })
+ .catch((err) => {
+ console.log('删除选项信息失败', err);
+ });
+ }
+ //根据id获取题干信息
+ const queryStemText = () => {
+ let objqurst = {
+ stemId: 1,
+ ballotId: "",
+ }
+ api
+ .queryStemByStemId(objqurst)
+ .then((res) => {
+ console.log('获取题干信息成功', res);
+ state.inputV1 = res.data.data.voteName
+ })
+ .catch((err) => {
+ console.log('获取题干信息失败', err);
+ })
+ }
+ //编辑题干信息
+ const changeStemText = () => {
+ let objcst = {
+ "ballotId": 0,
+ "ballotName": "",
+ "createTime": "",
+ "createUser": 0,
+ "updateTime": "",
+ "updateUser": 0,
+ "voteStemDtoList": [
+ {
+ "ballotId": 0,
+ "createTime": "",
+ "createUser": 0,
+ "optionDetailList": [
+ {
+ "createTime": "",
+ "createUser": 0,
+ "optionFlag": "",
+ "optionId": 0,
+ "optionName": "",
+ "optionOrderNum": "",
+ "optionPictureAddress": "",
+ "stem": "",
+ "updateTime": "",
+ "updateUser": 0,
+ "voteStemId": 0
+ }
+ ],
+ "orderNumber": "",
+ "updateTime": "",
+ "updateUser": 0,
+ "voteStemFlag": "",
+ "voteStemId": 0,
+ "voteStemName": ""
+ }
+ ]
+ }
+ api.updateStemMessage(objcst)
+ .then((res) => {
+ console.log('修改题干信息成功', res);
+ })
+ .catch((err) => {
+ console.log('修改题干信息失败', err);
+ })
+ }
return {
...toRefs(state),
afterVisibleChange,
@@ -277,7 +388,9 @@ export default {
delQue,
addOpt,
delOpt,
+ creoredi,
createQueTit,
+ delOptText,
};
},
};
diff --git a/src/components/drawers/FaceManage.vue b/src/components/drawers/FaceManage.vue
index d30f9203..68a3273d 100644
--- a/src/components/drawers/FaceManage.vue
+++ b/src/components/drawers/FaceManage.vue
@@ -362,7 +362,7 @@ export default {
let timer;
onMounted(() => {
setTimeout(() => {
- getManageList();
+ // getManageList();
}, 1000);
timer = setInterval(() => {
state.open = false;
diff --git a/src/components/drawers/ProjectScore.vue b/src/components/drawers/ProjectScore.vue
index 0ba76354..9a590d99 100644
--- a/src/components/drawers/ProjectScore.vue
+++ b/src/components/drawers/ProjectScore.vue
@@ -164,8 +164,50 @@
>{{ score1 }} 积分
- 优秀学员可获得 {{ score2 }}完成在线课程获得 {{ done }}积分
+ 完成面授课程获得 {{ done1 }}积分
+ 完成作业成绩不低于 {{ done2 }}分获得
+ {{ done3 }}积分
+
+
+ 前{{ four1}}名学完在线课程获得
+ {{ four2}}积分
+ 前{{ four3}}名提交作业且成绩不低于
+ {{ four4}}分获得
+ {{ four5}}积分
+
+
+ 考试成绩高于{{ five1 }}分获得
+ {{ five2 }}积分
+
+
+ 考勤正常学员获得 {{ six1}}积分
+
+
+ 成为小组长获得{{ seven1 }}积分
+ 优秀学员可获得
+ {{ seven2 }}积分
@@ -186,11 +228,82 @@
>积分
-
优秀学员可获得 完成在线课程获得
积分
+ >
积分
+
完成面授课程获得
+
积分
+
完成作业成绩不低于 分获得
+
积分
+
+
前名学完在线课程获得
+
积分
+
前名提交作业且成绩不低于
+
分获得
+
积分
+
+
+
+
+
+
成为小组长获得积分
+
优秀学员可获得
+
积分
+
+
{
setTimeout(() => {
- getManageList();
+ // getManageList();
}, 1000);
timer = setInterval(() => {
state.open = false;
diff --git a/src/components/drawers/TimeManage.vue b/src/components/drawers/TimeManage.vue
index eae03011..ef802882 100644
--- a/src/components/drawers/TimeManage.vue
+++ b/src/components/drawers/TimeManage.vue
@@ -291,7 +291,7 @@ export default {
let timer;
onMounted(() => {
setTimeout(() => {
- getManageList();
+ // getManageList();
}, 500);
timer = setInterval(() => {
state.open = false;
diff --git a/src/components/drawers/WorkManage.vue b/src/components/drawers/WorkManage.vue
index 163d0d6a..0962b1f4 100644
--- a/src/components/drawers/WorkManage.vue
+++ b/src/components/drawers/WorkManage.vue
@@ -312,7 +312,7 @@ export default {
onMounted(() => {
setTimeout(() => {
- getManageList();
+ // getManageList();
}, 1000);
});
return {
diff --git a/src/views/learningpath/LevelAdd.vue b/src/views/learningpath/LevelAdd.vue
index b0cef46f..fd563c8a 100644
--- a/src/views/learningpath/LevelAdd.vue
+++ b/src/views/learningpath/LevelAdd.vue
@@ -263,6 +263,7 @@
+
+
@@ -396,7 +398,7 @@
class="operation"
style="cursor: pointer"
:style="{
- display: item.course === '面授' ? 'flex' : 'none',
+ display: item.type === 2 ? 'flex' : 'none',
}"
@click="showFS"
>
@@ -405,10 +407,10 @@
@@ -442,21 +444,21 @@
class="operation"
style="cursor: pointer; margin-right: 35px"
@click="
- item.course === '在线' ||
- item.course === '案例' ||
- item.course === '外链' ||
- item.course === '讨论' ||
- item.course === '直播' ||
- item.course === '评估' ||
- item.course === '投票' ||
- item.course === '活动'
- ? showTime(item.course, item.name)
- : item.course === '考试' || item.course === '测评'
- ? showTest(item.course, item.name)
- : item.course === '面授'
- ? showFace(item.course)
- : item.course === '作业'
- ? showWork(item.course)
+ item.type === 1 ||
+ item.type === 3 ||
+ item.type === 7 ||
+ item.type === 8 ||
+ item.type === 6 ||
+ item.type === 11 ||
+ item.type === 12 ||
+ item.type === 9
+ ? showTime(item.type, item.name)
+ : item.type === 5 || item.type === 10
+ ? showTest(item.type, item.name)
+ : item.type === 2
+ ? showFace(item.type)
+ : item.type === 4
+ ? showWork(item.type)
: null
"
>
@@ -638,81 +640,7 @@
-
-
-
-
-
-
-
启用关卡自动规则加入
-
- 若开启“新建/编辑关卡-添加学员”支持设定自动加入规则,将于每日8点同步数据
-
-
-
-
关卡学习方案展示设置
-
仅支持移动端
-
-
-
-
-
+
@@ -1010,79 +938,6 @@ export default {
],
huodModal: false,
zhibModal: false,
- projectNameListt: [
- {
- id: 1,
- value: "导出信息",
- label: "导出信息",
- },
- {
- id: 2,
- value: "批量调整关卡",
- label: "批量调整关卡",
- },
- {
- id: 3,
- value: "批量删除",
- label: "批量删除",
- },
- ],
- projectNameList: [
- {
- id: 1,
- value: "项目一",
- label: "项目一",
- },
- {
- id: 2,
- value: "项目二",
- label: "项目二",
- },
- {
- id: 3,
- value: "项目三",
- label: "项目三",
- },
- {
- id: 4,
- value: "项目四",
- label: "项目四",
- },
- ],
- projectNameList2: [
- {
- id: 1,
- value: "项目一",
- label: "项目一",
- },
- {
- id: 2,
- value: "项目二",
- label: "项目二",
- },
- {
- id: 3,
- value: "项目三",
- label: "项目三",
- },
- {
- id: 4,
- value: "项目四",
- label: "项目四",
- },
- ],
- projectNameList4: [
- {
- id: 1,
- value: "关卡1",
- label: "关卡1",
- },
- {
- id: 2,
- value: "关卡2",
- label: "关卡2",
- },
- ],
//任务大纲列表
taskSyllabus: [
{
@@ -1109,7 +964,6 @@ export default {
nubvalue3: ref("4"),
nubvalue1: ref("4"),
fileList:ref([]),
- checked2: false,
docChecked:true,
currentPage: 1,
tableDataTotal: 100,
@@ -1263,22 +1117,6 @@ export default {
]
})
- // console.log("store", state.routerId);
- const selectProjectName = (value, index) => {
- console.log("value", value, index);
- if (value === "批量删除") {
- showDeleteALLModal();
- }
- };
- const selectProjectName2 = (value, index) => {
- console.log("value", value, index);
- };
- const selectProjectName3 = (value, index) => {
- console.log("value", value, index);
- };
- const selectProjectName4 = (value, index) => {
- console.log("value", value, index);
- };
const tableDataFunc = () => {
const columns = [
{
@@ -1601,10 +1439,6 @@ export default {
return {
...toRefs(state),
...toRefs(levelList),
- selectProjectName,
- selectProjectName2,
- selectProjectName3,
- selectProjectName4,
showDeleteALLModal,
closeDeleteALLModal,
tableDataFunc,
diff --git a/src/views/learningpath/LevelAddDetail.vue b/src/views/learningpath/LevelAddDetail.vue
index f1112328..81a71774 100644
--- a/src/views/learningpath/LevelAddDetail.vue
+++ b/src/views/learningpath/LevelAddDetail.vue
@@ -1244,18 +1244,21 @@ export default {
};
//测试评估投票抽屉
const showDrawerAddEval = (id, eleId) => {
- state.addevalVisible = true;
+ // state.addevalVisible = true;
+ state.addevalvisible = true;
state.EditEvalId = id;
state.routerTaskId = eleId;
};
const showDrawerAddInvist = (id, eleId) => {
- state.addinvistVisible = true;
+ // state.addinvistVisible = true;
+ state.addinvistvisible = true;
state.routerTaskId = eleId;
state.EditInvistId =id;
};
const showDrawerAddVote = (id, eleId) => {
- state.addhomeworkvisible = true;
+ // state.addhomeworkvisible = true;
+ state.addvotevisible = true;
state.EditVoteId = id;
state.routerTaskId = eleId;
};
diff --git a/src/views/projectcenter/ProjectManage.vue b/src/views/projectcenter/ProjectManage.vue
index 00a53bf2..2f1873f2 100644
--- a/src/views/projectcenter/ProjectManage.vue
+++ b/src/views/projectcenter/ProjectManage.vue
@@ -1161,7 +1161,6 @@ export default {
getTableDate();
};
-
const searchSubmit = () => {
console.log("点击了搜索");
state.currentPage = 1;
@@ -2921,6 +2920,9 @@ export default {
data.subList.map((data2) => {
data2.paraentName = value.name + "/" + data.name;
data2.isbj = "class";
+ storage.set("isbj", data.projectId);
+ // console.log(data2.paraentName, "conme");
+ storage.set("pN", data2.paraentName);
});
// console.log("lalallalaa", data);
} else {
diff --git a/src/views/projectcenter/TaskAdd.vue b/src/views/projectcenter/TaskAdd.vue
index d0768b1d..0a0cf6a0 100644
--- a/src/views/projectcenter/TaskAdd.vue
+++ b/src/views/projectcenter/TaskAdd.vue
@@ -303,7 +303,7 @@
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
- v-model:EditInvistId = "EditInvistId"
+ v-model:EditInvistId="EditInvistId"
/>
@@ -325,7 +325,9 @@
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
- v-model:EditVoteId = "EditVoteId"
+ v-model:EditVoteId="EditVoteId"
+ v-model:voteId = "voteId"
+ v-model:ballotId = "ballotId"
/>
@@ -337,7 +339,7 @@
任务列表
-
+
+
+
+
0) {
-
let arr = res.data.data.stageList[0].taskList;
console.log("任务列表", arr);
getTableData(arr);
@@ -1353,17 +1384,18 @@ export default {
- //获取删除id(投票)
+ //获取修改、删除id(投票)
const changeVData = (data) => {
- console.log("8989", data);
+ console.log("获取修改、删除id投票", data);
state.voteId = data.voteId;
+ state.ballotId = data.ballotId;
};
//数据变化
const updateTableData = (data) => {
console.log("添加数据", data);
getTask(data);
};
-
+
//删除任务
const deleteTask = () => {
let obj = { projectTaskIds: state.deleteID };
@@ -1420,8 +1452,11 @@ export default {
})
.catch((err) => {
console.log(err);
+ message.destroy();
+ message.warning("批量删除失败");
});
});
+ state.deAll = false;
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
@@ -1502,12 +1537,12 @@ export default {
state.projectTaskId = eleId;
state.adddiscussvisible = true;
};
-
+
const showDrawerAddActive = (id, eleId) => {
state.addactivevisible = true;
state.EditActiveId = id;
state.projectTaskId = eleId;
- console.log("active=======",id);
+ console.log("active=======", id);
};
const showDrawerAddEval = (id, eleId) => {
state.addevalvisible = true;
@@ -1519,9 +1554,12 @@ export default {
state.projectTaskId = eleId;
};
const showDrawerAddVote = (id, eleId) => {
+ console.log(id, eleId, '95835325932953295325');
state.addvotevisible = true;
state.EditVoteId = id;
state.projectTaskId = eleId;
+ // voteId = state.voteId;
+ // ballotId = state.ballotId;
};
const showConfirm = () => {
state.confirmModal = true;
@@ -1566,6 +1604,8 @@ export default {
});
}
state.selectRow = arr;
+ console.log(state.selectRow, "xuanzhong");
+ console.log(Object.prototype.toString.call(state.selectRow));
//判断是否是全部选择或者是全部未选择来修改selectAll框的样式
if (arr.length !== 0) {
if (arr.length === state.tableData.length) {
@@ -1607,8 +1647,7 @@ export default {
const changeCourseType = (id) => {
console.log("任务id", id);
};
-
-
+
//打开测评的弹窗
const showEditEvalDrawer = (id, eleId) => {
console.log("222222222222222222222", id);
@@ -1641,6 +1680,17 @@ export default {
showDrawerAddTest(id, eleId);
}
};
+ const showdeAll = () => {
+ if(state.selectRow.length==0){
+ message.destroy()
+ return message.warning("请选择要删除的任务")
+ }else{
+ state.deAll = true;
+ }
+ };
+ const closeDeAll = () => {
+ state.deAll = false;
+ };
return {
...toRefs(state),
selectProjectName,
@@ -1688,8 +1738,8 @@ export default {
moveTask,
deleteTaskAll,
decideType,
-
-
+ showdeAll,
+ closeDeAll,
};
},
};
diff --git a/src/views/projectcenter/TaskPage.vue b/src/views/projectcenter/TaskPage.vue
index 223c22a9..6a7c4608 100644
--- a/src/views/projectcenter/TaskPage.vue
+++ b/src/views/projectcenter/TaskPage.vue
@@ -175,11 +175,17 @@
阶段2
-->
-
- {{item.stage}}
-
+
+ {{ item.stage }}
+
@@ -216,20 +222,35 @@
作业完成率
-
{{stageOverviewList.totalTaskCnt}}
+
+ {{ stageOverviewList.totalTaskCnt }}
+
+
+ {{ stageOverviewList.totalReqCnt }}
-
{{stageOverviewList.totalReqCnt}}
+
+ {{ stageOverviewList.totalOptCnt }}
-
{{stageOverviewList.totalOptCnt}}
@@ -454,7 +475,7 @@
background: linear-gradient(180deg, #ddeaff, #f0f8fe);
display: block;
"
-
+ v-if="taskSyllabus.length == 0"
>

@@ -857,140 +878,159 @@
-
+
-
-
-
-
-
-
-
+
+
-
-
-
项目名称:
-
- {{ name }}
-
-
-
-
封面图:
-
-
![]()
-
-
-
-
项目时间:
-
- {{ startTime }} ~ {{ endTime }}
-
-
-
-
项目经理:
-
- {{ manager }}
-
-
-
-
资源归属:
-
- {{ sourceBelong }}
-
-
-
-
项目说明:
-
- {{ remark }}
-
-
-
-
同步学习记录:
-
-
同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)
-
-
-
-
项目级别:
-
- {{ level }}
-
-
-
-
培训体系:
-
- {{ systemId }}
-
-
-
-
-
-
-
-