164 lines
5.0 KiB
JavaScript
164 lines
5.0 KiB
JavaScript
|
|
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;
|
|||
|
|
});
|
|||
|
|
});
|