|
|
|
@ -222,28 +222,11 @@ |
|
|
|
|
<div class="item system"> |
|
|
|
|
<h6 class="p-title" style="margin-bottom: 0;">课程系统列表</h6> |
|
|
|
|
|
|
|
|
|
<ul class="systems"> |
|
|
|
|
<li v-for="(item, i) in systems" :key="i" :title="item.systemName"> |
|
|
|
|
<div class="line"> |
|
|
|
|
<!-- <el-checkbox v-model="item.check" @change="val => courseChange(val, item)"></el-checkbox> --> |
|
|
|
|
<div :class="['name', { active: curCourse == item.cid }]" @click="getProject(item)"> |
|
|
|
|
<span>{{ item.label }}</span> |
|
|
|
|
<i class="el-icon-arrow-right"></i> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div v-if="item.systemInfo" class="children"> |
|
|
|
|
<div v-for="(system, j) in item.systemInfo" :key="j" :title="system.label" class="line"> |
|
|
|
|
<!-- <el-checkbox v-model="system.check" @change="val => systemChange(val, system, item)"></el-checkbox> --> |
|
|
|
|
<div :class="['name', { active: curCourse == item.cid && curSystem == system.systemId }]" |
|
|
|
|
@click="getProject(item, system)"> |
|
|
|
|
<span>{{ system.systemName }}</span> |
|
|
|
|
<i class="el-icon-arrow-right"></i> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</li> |
|
|
|
|
</ul> |
|
|
|
|
<div class="systems"> |
|
|
|
|
<el-tree ref="systems" :data="systems" :props="{ |
|
|
|
|
children: 'systemInfo', |
|
|
|
|
}" :expand-on-click-node="false" @node-click="getProject"></el-tree> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div class="item project"> |
|
|
|
@ -464,6 +447,10 @@ export default { |
|
|
|
|
e.label = e.curriculumName |
|
|
|
|
e.check = false |
|
|
|
|
e.systemInfo && e.systemInfo.map(n => { |
|
|
|
|
n.cid = e.cid || '' |
|
|
|
|
n.mallId = e.mallId || '' |
|
|
|
|
n.id = +n.systemId |
|
|
|
|
n.label = n.systemName |
|
|
|
|
n.check = false |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
@ -560,58 +547,17 @@ export default { |
|
|
|
|
this.form.coverUrl = this.defaultCover |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// 课程选择回调 |
|
|
|
|
courseChange (val, item) { |
|
|
|
|
item.systemInfo && item.systemInfo.map(e => e.check = val) |
|
|
|
|
this.systemChange(val, { |
|
|
|
|
systemId: item.systemInfo ? item.systemInfo.map(e => e.systemId).join() : '' |
|
|
|
|
}, item) |
|
|
|
|
}, |
|
|
|
|
// 系统选择回调 |
|
|
|
|
async systemChange (val, system, course) { |
|
|
|
|
// 项目列表选中状态同步 |
|
|
|
|
const { projects, checkeds } = this |
|
|
|
|
if (projects.length && projects[0].systemId == system.systemId) { |
|
|
|
|
projects.map(e => { |
|
|
|
|
e.check = val |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
this.projectKeyword = '' |
|
|
|
|
const res = await this.$post(this.api.configureCourseProjectBySchool, { |
|
|
|
|
projectName: this.projectKeyword, |
|
|
|
|
permissions: this.permissions, |
|
|
|
|
cid: course.cid, |
|
|
|
|
systemId: system.systemId |
|
|
|
|
}) |
|
|
|
|
const list = res.projectManages |
|
|
|
|
list.forEach(e => { |
|
|
|
|
const i = checkeds.findIndex(n => (e.projectId && n.projectId == e.projectId && n.systemId == e.systemId) || (e.paperId && e.paperId == n.paperId)) |
|
|
|
|
if (val) { |
|
|
|
|
i === -1 && checkeds.push(e) |
|
|
|
|
} else if (i !== -1) { |
|
|
|
|
checkeds.splice(i, 1) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
this.checkedAll = _.cloneDeep(checkeds) // 全部已选项目,另外保存 |
|
|
|
|
}, |
|
|
|
|
// 获取项目列表 |
|
|
|
|
async getProject (item, system) { |
|
|
|
|
async getProject (row) { |
|
|
|
|
const checked = this.checkeds |
|
|
|
|
if (system) { |
|
|
|
|
this.curCourse = item.cid |
|
|
|
|
this.curSystem = +system.systemId |
|
|
|
|
this.curSystemIds = '' |
|
|
|
|
} else if (item) { |
|
|
|
|
this.curCourse = item.cid |
|
|
|
|
this.curSystem = '' |
|
|
|
|
this.curSystemIds = item.systemInfo ? item.systemInfo.map(e => e.systemId).join() : '' |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let systemId = row.systemId || '' |
|
|
|
|
if (row.systemInfo) systemId = row.systemInfo.map(e => e.systemId).join() |
|
|
|
|
const res = await this.$post(this.api.configureCourseProjectBySchool, { |
|
|
|
|
projectName: this.projectKeyword, |
|
|
|
|
permissions: this.permissions, |
|
|
|
|
cid: this.curCourse, |
|
|
|
|
systemId: this.curSystem || this.curSystemIds, |
|
|
|
|
cid: row.cid || '', |
|
|
|
|
systemId, |
|
|
|
|
mallId: row.mallId || '', |
|
|
|
|
}) |
|
|
|
|
const list = res.projectManages |
|
|
|
|
list.map(e => { |
|
|
|
@ -1120,7 +1066,6 @@ export default { |
|
|
|
|
|
|
|
|
|
.system { |
|
|
|
|
width: 350px; |
|
|
|
|
background-color: #f9f9f9; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.systems { |
|
|
|
|