ZhiYeJianKang_PeiXun/Song.Site/Manage/Card/Scripts/Learningcard_Courses.js
2025-02-20 15:41:53 +08:00

164 lines
5.0 KiB
JavaScript
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.

var vm = new Vue({
data: {
orgs: {}, //机构列表
sbjs: {}, //专业
courses: [], //专业下的课程
selects: [], //当前选中的课程
sbjids: [], //选中的专业id,为数组
form: {
orgid: '', //当前机构id
sbjids: '', //当前专业id字符串
search: '', //课程检索的输入
size: 10000,
index: 1
},
loading: false
},
watch: {
form: {
handler(val, oldval) {
if (!oldval) return;
vm.orgChange(val.orgid);
vm.searchCourse();
},
immediate: true,
deep: true
},
sbjids: {
handler(val, oldval) {
if (val.length > 0) {
vm.form.sbjids = val[val.length - 1];
}
}
}
},
computed: {
//表格的最大高度
tableHeight: function () {
var area = document.documentElement.clientHeight - 100;
return area;
}
},
methods: {
//当机构选择框变化时
orgChange: function (orgid) {
$api.get('Subject/list', { 'orgid': orgid }).then(function (req) {
if (req.data.success) {
var result = vm.buildSbjtree(req.data.result, 0);
vm.sbjs = result;
} else {
throw req.data.message;
}
}).catch(function (err) {
alert(err);
});
},
//生成专业的树形
buildSbjtree: function (data, pid) {
var list = new Array();
for (var i = 0; i < data.length; i++) {
if (data[i].Sbj_PID == pid)
list.push({
value: data[i].Sbj_ID,
label: data[i].Sbj_Name
});
}
for (var i = 0; i < list.length; i++) {
list[i].children = vm.buildSbjtree(data, list[i].value);
}
return list.length > 0 ? list : null;
},
//检索课程
searchCourse: function () {
$api.get('Course/Pager', vm.form).then(function (req) {
if (req.data.success) {
vm.courses = req.data.result;
} else {
throw req.data.message;
}
}).catch(function (err) {
alert(err);
});
},
//添加选中的课程
handleSelectCourse: function (data) {
if (data) {
var isExist = false;
for (var i = 0; i < vm.selects.length; i++) {
if (vm.selects[i].id == data.Cou_ID) {
isExist = true;
break;
}
}
if (!isExist) vm.selects.push({ id: data.Cou_ID, name: data.Cou_Name });
} else {
for (var i = 0; i < vm.courses.length; i++) {
vm.handleSelectCourse(vm.courses[i]);
}
}
},
//清除选中的课程
handleRemoveourse: function (data) {
if (data) {
for (var i = 0; i < vm.selects.length; i++) {
if (vm.selects[i].id == data.id) {
vm.selects.splice(i, 1);
break;
}
}
} else {
vm.selects = [];
}
},
handleEnter: function (data) {
},
//保存信息
btnEnter: function () {
if (vm.loading) return;
},
},
created: function () {
$api.get('Organ/All').then(function (req) {
if (req.data.success) {
vm.orgs = req.data.result;
window.setTimeout(function () {
if (vm.orgs.length > 0) vm.form.orgid = vm.orgs[0].Org_ID;
vm.searchCourse();
}, 100);
//调用父窗体方法
var win = top.PageBox.parentWindow(window.name);
vm.selects = win.getCourses(); //获取已经选中的课程,来自父窗体
} else {
throw req.data.message;
}
}).catch(function (err) {
alert(err);
});
},
mounted: function () {
}
});
vm.$mount('.pageWinContext');
$api.effect(function () {
vm.loading = true;
}, function (response) {
vm.loading = false;
});
$(function () {
//确定按钮事件
$("input[name$=btnEnter]").click(function () {
//调用父窗体方法
var win = top.PageBox.parentWindow(window.name);
win.setCourse(vm.selects); //设置课程
//关闭窗口
new top.PageBox().Close(window.name);
return false;
});
});