puzhibing
2024-02-05 640ff18d2d7f4be02ddb7f8f75e899f05545eb98
cloud-server-management/src/main/webapp/static/modular/system/course/course.js
@@ -8,105 +8,37 @@
    layerIndex: -1,
    deptid:0
};
var language =$("#language").val()
let language =$("#language").val()
/**
 * 初始化表格的列
 */
Course.initColumn = function () {
    var columns = [
        {field: 'selectItem', radio: true,
            formatter: function (value, row) {
                if (row.id == 1)
                    return {
                        disabled : true,//设置是否可用
                    };
                return "";
            }
        },
        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
        {title:  language==1?'账号':(language==2?'Account number':'Nomor akun'), field: 'account', align: 'center', valign: 'middle', sortable: true},
        {title:  language==1?'姓名':(language==2?'name':'Nama Lengkap'), field: 'name', align: 'center', valign: 'middle', sortable: true},
        {title: language==1?'性别':(language==2?'Gender':'Jenis kelamin'), field: 'sexName', align: 'center', valign: 'middle', sortable: true,
            formatter:function (data) {
                if(language==1){
                    if(data==1){
                        return '男'
                    }else {
                        return '女'
                    }
                }else if(language==2){
                    if(data==1){
                        return 'man'
                    }else {
                        return 'woman'
                    }
                }else {
                    if(data==1){
                        return 'laki-laki'
                    }else {
                        return 'wanita'
                    }
    let columns = [
        {field: 'selectItem', radio: true},
        {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'},
        {title: '视频类型', field: 'type', align: 'center', valign: 'middle',
            formatter: function (v) {
                switch (v) {
                    case 1:
                        return '课后练习';
                    case 2:
                        return '运动教学视频';
                    case 3:
                        return '器材教学视频';
                }
            }
        },
        {title: language==1?'角色':(language==2?'role':'peran'), field: 'roleName', visible: true, align: 'center', valign: 'middle', sortable: true,
            formatter: function (value, row) {
                var btn = "";
                if(row.roleName != '' && row.roleName != null) {
                    var labelStr = "";
                    var labelStrs = "";
                    var labelArray = row.roleName.split(",");
                    for(var i=0;i<labelArray.length;i++){
                        labelStr += labelArray[i] +"<br>";
                        labelStrs += labelArray[i] + "&#10;";
                    }
                    labelStr = labelStr.substring(0,labelStr.length-4);
                    labelStrs = labelStrs.substring(0,labelStrs.length-5);
                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + labelStrs + '" onfocus="AppCar.tooltip()">' + labelStr + '</p>']
                }
                return btn;
        {title: '课程封面', field: 'coverDrawing', align: 'center', valign: 'middle',
            formatter: function (v) {
                return '<img src="' + v + '" height="100px" onclick="lookBigImg(' + v + ')"/>'
            }
        },
        {title: language==1?'部门':(language==2?'department':'departemen'), field: 'deptName', align: 'center', valign: 'middle', sortable: true},
        {title: language==1?'邮箱':(language==2?'email':'email'), field: 'email', align: 'center', valign: 'middle', sortable: true},
        {title: language==1?'电话':(language==2?'phone':'Telepon'), field: 'phone', align: 'center', valign: 'middle', sortable: true},
        {title:language==1?'创建时间':(language==2?'Creation time':'Waktu penciptaan'), field: 'createtime', visible: true, align: 'center', valign: 'middle', sortable: true,
            formatter: function (value, row) {
                var btn = "";
                if(row.createtime1 != '' && row.createtime1 != null) {
                    var time = row.createtime1.replace(" ",'<br>');
                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.createtime1 + '" onfocus="AppCar.tooltip()">' + time + '</p>']
                }
                return btn;
            }
        },
        {title: language==1?'状态':(language==2?'State':'Status'), field: 'statusName', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                var btn = "";
                if(row.statusName != '' && row.statusName != null) {
                    if(language==1){
                        if (row.statusName == "2"){
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="' + `冻结` + '" onfocus="AppUserInfo.tooltip()">' + 冻结 + '</p>']
                        }else{
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + `启用` + '" onfocus="AppUserInfo.tooltip()">' + 启用 + '</p>']
                        }
                    }else if(language==2){
                        if (row.statusName == "2"){
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="' + `freeze` + '" onfocus="AppUserInfo.tooltip()">' + `freeze` + '</p>']
                        }else{
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + `enable` + '" onfocus="AppUserInfo.tooltip()">' + `enable` + '</p>']
                        }
                    }else {
                        if (row.statusName == "2"){
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="' + `Membekukan` + '" onfocus="AppUserInfo.tooltip()">' + 'Membekukan' + '</p>']
                        }else{
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + `aktifkan` + '" onfocus="AppUserInfo.tooltip()">' + 'aktifkan' + '</p>']
                        }
                    }
                }
                return btn;
        {title: '课程名称', field: 'name', align: 'center', valign: 'middle'},
        {title: '课程简介', field: 'introduce', align: 'center', valign: 'middle'},
        {title: '状态', field: 'state', align: 'center', valign: 'middle',
            formatter: function (v) {
                return v == 1 ? '上架' : '下架';
            }
        }
    ];
@@ -117,15 +49,9 @@
 * 检查是否选中
 */
Course.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    let selected = $('#' + this.id).bootstrapTable('getSelections');
    if (selected.length == 0) {
        if(language==1){
            Feng.info("请先选中表格中的某一记录!");
        }else if(language==2){
            Feng.info("Please select a record in the table first!");
        }else {
            Feng.info("Pilih catatan di tabel terlebih dahulu!");
        }
        Feng.info("请先选中表格中的某一记录!");
        return false;
    } else {
        Course.seItem = selected[0];
@@ -137,10 +63,10 @@
 * 点击添加管理员
 */
Course.addCourse = function () {
    var index = layer.open({
    let index = layer.open({
        type: 2,
        title: '添加',
        area: ['800px', '560px'], //宽高
        area: ['100%', '100%'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/course/showAddCourse'
@@ -152,232 +78,104 @@
 * 点击修改按钮时
 * @param userId 管理员id
 */
Course.openChangeUser = function () {
Course.editCourse = function () {
    if (this.check()) {
        var index = layer.open({
        let index = layer.open({
            type: 2,
            title: language==1?'编辑':(language==2?'Edit':'Edit'),
            area: ['800px', '450px'], //宽高
            title: '编辑',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/mgr/user_edit/' + this.seItem.id
            content: Feng.ctxPath + '/course/showEditCourse?id=' + this.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 点击角色分配
 * @param
 */
Course.roleAssign = function () {
    if (this.check()) {
        var index = layer.open({
            type: 2,
            title: language==1?'角色分配':(language==2?'role assignment':'tugas peran'),
            area: ['300px', '400px'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/mgr/role_assign/' + this.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 删除用户
 */
Course.delCourse = function () {
    if (this.check()) {
        var operation = function(){
            var userId = Course.seItem.id;
            var ajax = new $ax(Feng.ctxPath + "/mgr/delete", function () {
                if(language==1){
                    Feng.success("删除成功!");
                }else if(language==2){
                    Feng.success("Delete succeeded!");
                }else {
                    Feng.success("Hapus berhasil!");
                }
        console.log()
        if (Course.seItem.state == 1){
            Feng.error("只能删除已下架的视频课");
            return;
        }
        let operation = function(){
            let ajax = new $ax(Feng.ctxPath + "/course/delCourse", function () {
                Feng.success("删除成功!");
                Course.table.refresh();
            }, function (data) {
                if(language==1){
                    Feng.error("删除失败!" + data.responseJSON.message + "!");
                }else if(language==2){
                    Feng.error("Delete failed!" + data.responseJSON.message + "!");
                }else {
                    Feng.error("Hapus gagal!" + data.responseJSON.message + "!");
                }
                Feng.error("删除失败!" + data.responseJSON.message + "!");
            });
            ajax.set("userId", userId);
            ajax.set("id", Course.seItem.id);
            ajax.start();
        };
        if(language==1){
            Feng.confirm("是否删除用户" + Course.seItem.account + "?",operation);
        }else if(language==2){
            Feng.confirm("Whether to delete a user" + Course.seItem.account + "?",operation);
        }else {
            Feng.confirm("Apakah menghapus pengguna" + Course.seItem.account + "?",operation);
        }
        Feng.confirm("是否删除课程",operation);
    }
};
/**
 * 冻结用户账户
 * 上下架
 * @param userId
 */
Course.freezeAccount = function () {
Course.editCourseState = function (state) {
    if (this.check()) {
        var userId = this.seItem.id;
        var ajax = new $ax(Feng.ctxPath + "/mgr/freeze", function (data) {
            if(language==1){
                Feng.success("冻结成功!");
            }else if(language==2){
                Feng.success("Success!");
            }else {
                Feng.success("Success!");
            }
        if(Course.seItem.state == state){
            Feng.error("不能重复操作");
            return
        }
        let ajax = new $ax(Feng.ctxPath + "/course/editCourseState", function (data) {
            Feng.success("下架成功!");
            Course.table.refresh();
        }, function (data) {
            if(language==1){
                Feng.error("冻结失败!" + data.responseJSON.message + "!");
            }else if(language==2){
                Feng.error("Fail!" + data.responseJSON.message + "!");
            }else {
                Feng.error("Gagal!" + data.responseJSON.message + "!");
            }
            Feng.error("下架失败!" + data.responseJSON.message + "!");
        });
        ajax.set("userId", userId);
        ajax.set("id", Course.seItem.id);
        ajax.set("state", state);
        ajax.start();
    }
};
/**
 * 解除冻结用户账户
 * @param userId
 */
Course.unfreeze = function () {
    if (this.check()) {
        var userId = this.seItem.id;
        var ajax = new $ax(Feng.ctxPath + "/mgr/unfreeze", function (data) {
            if(language==1){
                Feng.success("解除冻结成功!");
            }else if(language==2){
                Feng.success("Success!");
            }else {
                Feng.success("Success!");
            }
            Course.table.refresh();
        }, function (data) {
            if(language==1){
                Feng.error("解除冻结失败!");
            }else if(language==2){
                Feng.error("Fail!");
            }else {
                Feng.error("Gagal!");
            }
Course.detailsCourse = function () {
    if (this.check()) {
        let index = layer.open({
            type: 2,
            title: '详情',
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/course/showCourseDetails?id=' + this.seItem.id
        });
        ajax.set("userId", userId);
        ajax.start();
    }
}
/**
 * 重置密码
 */
Course.resetPwd = function () {
    if (this.check()) {
        var userId = this.seItem.id;
        if(language==1){
            parent.layer.confirm('是否重置密码为111111?', {
                btn: ['确定', '取消'],
                shade: false //不显示遮罩
            }, function () {
                var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
                    Feng.success("重置密码成功!");
                }, function (data) {
                    Feng.error("重置密码失败!");
                });
                ajax.set("userId", userId);
                ajax.start();
            });
        }else if(language==2){
            parent.layer.confirm('Whether to reset the password to 111111?', {
                btn: ['Yes', 'No'],
                shade: false //不显示遮罩
            }, function () {
                var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
                    Feng.success("Success!");
                }, function (data) {
                    Feng.error("Fail!");
                });
                ajax.set("userId", userId);
                ajax.start();
            });
        }else {
            parent.layer.confirm('Apakah untuk reset kata sandi ke 111111?', {
                btn: ['Ya', 'batalkan'],
                shade: false //不显示遮罩
            }, function () {
                var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
                    Feng.success("Success!");
                }, function (data) {
                    Feng.error("Gagal!");
                });
                ajax.set("userId", userId);
                ajax.start();
            });
        }
        this.layerIndex = index;
    }
};
Course.resetSearch = function () {
    $("#name").val("");
    $("#createTime").val("");
    $("#type").val("");
    Course.search();
}
Course.search = function () {
    var queryData = {};
    queryData['deptid'] = Course.deptid;
    let queryData = {};
    queryData['name'] = $("#name").val();
    queryData['createTime'] = $("#createTime").val();
    queryData['courseType'] = $("#type").val();
    Course.table.refresh({query: queryData});
}
Course.onClickDept = function (e, treeId, treeNode) {
    Course.deptid = treeNode.id;
    Course.search();
};
$(function () {
    var defaultColunms = Course.initColumn();
    var table = new BSTable(Course.id, "/mgr/list", defaultColunms);
    let defaultColunms = Course.initColumn();
    let table = new BSTable(Course.id, "/course/queryCourseList", defaultColunms);
    // 设置物理分页server(逻辑分页client)
    table.setPaginationType("server");
    // 表单提交参数
    var queryData = {};
    queryData['deptid'] = Course.deptid;
    queryData['name'] = $("#name").val();
    queryData['createTime'] = $("#createTime").val();
    table.setQueryParams(queryData);
    Course.table = table.init();
    /*var defaultColunms = Course.initColumn();
    var table = new BSTable("managerTable", "/mgr/list", defaultColunms);
    table.setPaginationType("client");
    Course.table = table.init();*/
    var ztree = new $ZTree("deptTree", "/dept/tree");
    ztree.bindOnClick(Course.onClickDept);
    ztree.init();
});