var app = angular.module('app', [ 'angularUtils.directives.dirPagination' ]); //定义一个全局的截图插件变量 var cropper; app.controller("indexCtrl", ["$scope", "$http", "$timeout", function ($scope, $http, $timeout) { var self = this; var s4 = new SM4Util(); self.userId = $.cookie("GlWorkPlatform-userid"); self.userName = $.cookie("GlWorkPlatform-chineseName"); self.get_AccessToken = localStorage.getItem("GlWorkPlatform-AccessToken"); self.get_lastReturnPageno = sp.getUrlName("lastReturnPageno"); self.get_type = sp.getUrlName("type"); var postCfg = { headers: { 'Content-Type': 'application/json', 'Authorization': "Bearer " + self.get_AccessToken } } self.info = { "id": "0", "pgcode": "",///插件代码 "cname": "",//插件名称 "kinds": "",//插件来源 "url": "",///插件地址 "imagesmall": "",///缩略图 "ctype": "",///使用方式 "dtype": "",///插件类型 "authman": "",///访问权限 "ctypemodel": "",///桌面插件样式 "remark": "",///备注 } self.search = { "ctype": "",///使用方式 "dtype": ""///插件类型 } ////使用方式 self.useType = []; self.useType_search = []; self.getUseType = function () { var postData = { tablename: "CODE_PLUGINCTYPE", colums: "", order: "ID", sqlwhere: { ID: ""}, sqlinwhere: "", sqllikewhere: "" } $http.post(apiurljs.login + "g2app/dataabase/queryDataByCol", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); //console.log(JSON.stringify(res)); if (res.success) { if (sp.isval(res.data)) { self.useType = res.data; self.info.ctype = self.useType[0].CODE; angular.forEach(res.data, function (item, index) { self.useType_search.push(item); }); var set_all_item = { "CNAME": "--全部--", "CODE": "" }; self.useType_search.unshift(set_all_item); } else { self.rows = []; } } else { sp.dialog(res.message); } }); } ////使用方式 self.getUseType(); ////桌面插件样式 self.ctypemodelArray = []; self.getCtypeModel = function () { var postData = { tablename: "CODE_CTYPEMODEL", colums: "", order: "ID", sqlwhere: { ID: "" }, sqlinwhere: "", sqllikewhere: "" } $http.post(apiurljs.login + "g2app/dataabase/queryDataByCol", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); //console.log(JSON.stringify(res)); if (res.success) { if (sp.isval(res.data)) { self.ctypemodelArray = res.data; self.info.ctypemodel = self.ctypemodelArray[0].CODE; } else { self.rows = []; } } else { sp.dialog(res.message); } }); } ////桌面插件样式 self.getCtypeModel(); //插件类型 self.dTypeData = []; self.dTypeData_search = []; self.getDType = function () { var postData = { tablename: "CODE_PLUGINDTYPE", colums: "", order: "ID", sqlwhere: { ID: "" }, sqlinwhere: "", sqllikewhere: "" } $http.post(apiurljs.login + "g2app/dataabase/queryDataByCol", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); //console.log(JSON.stringify(res)); if (res.success) { if (sp.isval(res.data)) { self.dTypeData = res.data; self.info.dtype = self.dTypeData[0].CODE; angular.forEach(res.data, function (item, index) { self.dTypeData_search.push(item); }); var set_all_item = { "CNAME": "--全部--", "CODE": "" }; self.dTypeData_search.unshift(set_all_item); } else { self.rows = []; } } else { sp.dialog(res.message); } }); } self.getDType(); //权限--2023 self.userAuth = []; self.getUserAuth = function () { var postData = { tablename: "CODE_PLUGINAUTHMAN", colums: "", order: "ID", sqlwhere: { ID: "" }, sqlinwhere: "", sqllikewhere: "" } $http.post(apiurljs.login + "g2app/dataabase/queryDataByCol", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); //console.log(JSON.stringify(res)); if (res.success) { if (sp.isval(res.data)) { self.userAuth = res.data; self.info.authman = self.userAuth[0].CODE; } else { self.rows = []; } } else { sp.dialog(res.message); } }); } self.getUserAuth(); self.loading = true; ///插件来源---加载数据 self.rows = []; self.users = []; self.getQueryDataList = function () { var time1 = sp.getLocalDate(); self.activeRole = -1; self.activeKind = { id: "", cname: "", code:"" } var postData = { } $http.post(apiurljs.login + "g2app/pluginkinds/queryDataList", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); //console.log(JSON.stringify(res)); if (res.success) { if (sp.isval(res.data)) { self.rows = res.data; self.activeRole = 0; self.activeKind = { id: self.rows[0].ID, cname: self.rows[0].CNAME, code: self.rows[0].CODE } self.getPluginData(self.rows[0].CODE); } else { self.rows = []; } } else { sp.dialog(res.message); } }); } $timeout(function () { self.getQueryDataList(); },500) ///来源信息--新增、编辑 self.laiyuan = { "id": "0", "cname": "" }; self.btnAddLaiYuan = function () { self.laiyuan = { "id": "0", "cname": "" }; sp.layer("#layer_laiyuan"); }; self.btnEditLaiYuan = function (itemdata) { self.laiyuan = { "id": itemdata.ID, "cname": itemdata.CNAME }; sp.layer("#layer_laiyuan"); }; self.submit_laiYuan = function () { if (spngvld.submit("#layer_laiyuan")) { var postData = { "id": self.laiyuan.id, "cname": self.laiyuan.cname } //console.log(postData); $http.post(apiurljs.login + "g2app/pluginkinds/saveData", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); self.loading = false; //console.log(JSON.stringify(res)); if (res.success) { self.getQueryDataList(); sp.layerhide(); } else { sp.layerhide(); sp.dialog(res.message); } }) .error(function (XMLHttpRequest, textStatus, errorThrown) { if (textStatus != 200) { self.loading = false; } }) } }; self.cancel_laiYuan = function () { sp.layerhide(); spngvld.clear("#layer_laiyuan"); } ////加载右侧插件列表 self.pluginArray = [];///声明用户列表数组 self.getPluginData = function (kindsstr) { self.loading = true; var postData = { kinds: kindsstr, ctype: self.search.ctype, dtype: self.search.dtype } //console.log(postData);s4.encryptData_CBC(JSON.stringify(postData)) $http.post(apiurljs.login + "g2app/plugin/queryDataList", JSON.stringify(postData), postCfg) .success(function (obj) { //var res = strToJson(s4.decryptData_CBC(obj.data)); var res = obj; self.loading = false; //console.log(JSON.stringify(res)); if (res.success) { if (sp.isval(res.data)) { self.pluginArray = res.data; angular.forEach(self.pluginArray, function (item, index) { item.indexnum = index + 1; //console.log(item.ID); angular.forEach(self.userAuth, function (item2,index2) { if (item2.CODE == item.AUTHMAN) { item.AUTHMAN_set = item2.CNAME; } }); }); } else { self.pluginArray = []; } self.loading = false; } else { self.loading = false; sp.dialog(res.message); } }) .error(function (XMLHttpRequest, textStatus, errorThrown) { if (textStatus != 200) { self.loading = false; } }) }; ////下拉框change事件 self.selectChange = function () { self.getPluginData(self.activeKind.code); }; // 点击选中角色管理事件 self.activeRole = -1; self.chooseRole = function (index, $item) { var time1 = sp.getLocalDate1(); self.activeRole = index; self.activeKind = { id: $item.ID, cname: $item.CNAME, code: $item.CODE } //console.log($item.CODE); self.getPluginData($item.CODE); //self.journalRecord(time1, sp.getLocalDate1(), "查询", "查询日志", "/g2work/datazu/queryDataUser") } ///新增---插件 self.btnAdd = function () { //var set_ctypemodel = ""; //var set_ctypemodel = ""; //if (self.info.ctype == 'C01') { // set_ctypemodel = self.ctypemodelArray[0].CODE; //} else { // set_ctypemodel = "" //} self.info = { "id": "0", "pgcode": "",///插件代码 "cname": "",//插件名称 "kinds": "",//插件来源 "url": "",///插件地址 "imagesmall": "",///缩略图 "imageurl": "", "ctype": self.useType[0].CODE,///使用方式 "dtype": self.dTypeData[0].CODE,///插件类型 "authman": self.userAuth[0].CODE,///访问权限 "ctypemodel": self.ctypemodelArray[0].CODE,///桌面插件样式 "remark": "",///备注 } self.pluginUpload_view = false; sp.layer("#layer_addplgn", 1); }; ///编辑--插件 self.btnEditPlugin = function ($item) { var set_ctypemodel = ""; if (self.info.ctype == 'C01') { set_ctypemodel = self.info.ctypemodel; } else { set_ctypemodel = "" } self.info = { "id": $item.ID, "pgcode": $item.PGCODE,///插件代码 "cname": $item.CNAME,//插件名称 "kinds": $item.KINDS,//插件来源 "url": $item.URL,///插件地址 "imagesmall": $item.IMAGESMALL,///缩略图 "imageurl": $item.IMAGEURL,///缩略图 "ctype": $item.CTYPE,///使用方式 "dtype": $item.DTYPE,///插件类型 "authman": $item.AUTHMAN,///访问权限 "ctypemodel": set_ctypemodel,///桌面插件样式 "remark": $item.REMARK,///备注 } sp.layer("#layer_addplgn", 1) }; self.btnSubmitPlnDsabled = false; self.btnSubmitPln_text = "提 交"; self.submit_plguin = function () { if (spngvld.submit("#layer_addplgn")) { //console.log(self.info.imagesmall); if (sp.isval(self.info.imagesmall)) { self.btnSubmitPlnDsabled = true; self.btnSubmitPln_text = "正在提交,请稍等.."; var set_ctypemodel = ""; if (self.info.ctype == 'C01') { set_ctypemodel = self.info.ctypemodel; } else { set_ctypemodel = "" } var postData = { "id": self.info.id, "pgcode": self.info.pgcode,///插件代码 "cname": self.info.cname,//插件名称 "kinds": self.activeKind.code,//插件来源 "url": self.info.url,///插件地址 "imagesmall": self.info.imagesmall,///缩略图 "ctype": self.info.ctype,///使用方式 "dtype": self.info.dtype,///插件类型 "authman": self.info.authman,///访问权限 "ctypemodel": set_ctypemodel,///桌面插件样式 "remark": self.info.remark///备注 } //console.log(postData); s4.encryptData_CBC(JSON.stringify(postData)) $http.post(apiurljs.login + "g2app/plugin/saveData", JSON.stringify(postData), postCfg) .success(function (obj) { //var res = strToJson(s4.decryptData_CBC(obj.data)); var res = obj; //console.log(JSON.stringify(res)); if (res.success) { sp.closeCenter('.sp-layer'); $timeout(function () { self.getPluginData(self.activeKind.code); },210); } else { sp.closeCenter('.sp-layer'); sp.dialog(res.message); } self.btnSubmitPlnDsabled = false; self.btnSubmitPln_text = "提 交"; }) .error(function (XMLHttpRequest, textStatus, errorThrown) { if (textStatus != 200) { self.loading = false; } }) } else { alert("您好,图片不能为空!"); } } } self.cancel_plguin = function () { sp.closeCenter('.sp-layer'); } //删除插件来源 self.removeKinds = function ($item) { var time1 = sp.getLocalDate1(); //self.journalRecord(time1, sp.getLocalDate1(), "删除", "修改日志", window.location.pathname) var getDelID = $item.ID; var dialogHead = "温馨提示×"; var dialogBody = "
删除后不可恢复,您确认要删除吗?
"; var dialogFoot = "
"; $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot); sp.openCenter(".sp-dialog"); ///取消按钮 $('.sp-closeDialog').click(function (event) { sp.closeCenter(".sp-dialog"); event.preventDefault(); event.stopPropagation(); }); //post消息的id $("#delDataTrue").click(function () { var getid = $(this).attr("data-id"); sp.dialoghide(); var data = { id: getid///角色编码 }; //console.log(data); $http.post(apiurljs.login + "g2app/pluginkinds/deleteDataByID", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); if (res.success) { self.getQueryDataList(); self.activeRole = -1; sp.dialoghide(); } else { sp.dialog(res.message); } }); }); } //删除插件 self.removePlugin = function ($item) { var time1 = sp.getLocalDate1(); //self.journalRecord(time1, sp.getLocalDate1(), "删除", "修改日志", window.location.pathname) var getDelID = $item.ID; var dialogHead = "温馨提示×"; var dialogBody = "
删除后不可恢复,您确认要删除吗?
"; var dialogFoot = "
"; $('.sp-dialog').html(dialogHead + dialogBody + dialogFoot); sp.openCenter(".sp-dialog"); ///取消按钮 $('.sp-closeDialog').click(function (event) { sp.closeCenter(".sp-dialog"); event.preventDefault(); event.stopPropagation(); }); //post消息的id $("#delDataTrue").click(function () { var getid = $(this).attr("data-id"); sp.dialoghide(); var data = { id: getid///角色编码 }; //console.log(data); $http.post(apiurljs.login + "g2app/plugin/deleteDataByID", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); if (res.success) { self.getQueryDataList(); sp.dialoghide(); } else { sp.dialog(res.message); } }); }); } //上移一位--来源 self.moveUp = function () { var time1 = sp.getLocalDate1(); //self.journalRecord(time1, sp.getLocalDate1(), "上移", "修改日志", window.location.pathname) if (sp.isval(self.activeKind.id)) { if (self.activeRole == 0) { sp.dialog("已处于最顶部,无法上移!"); } else { var set_index = parseInt(self.activeRole - 1); var postData = { "id1": self.rows[set_index].ID, "id2": self.activeKind.id }; //console.log(postData); $http.post(apiurljs.login + "g2app/pluginkinds/swapSortidByID", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); if (res.success) { self.getQueryDataList(); self.activeRole = -1; //self.getPluginData(self.unit, "0"); ///加载机构下方的人员 } else { sp.dialog(res.message); } }); } } else { sp.dialog("请先点击选择来源!"); } } //下移一位--来源 self.moveDown = function () { var time1 = sp.getLocalDate1(); //self.journalRecord(time1, sp.getLocalDate1(), "下移", "修改日志", window.location.pathname) if (sp.isval(self.activeKind.id)) { if (self.activeRole == self.rows.length - 1) { sp.dialog("已处于最底部,无法下移!"); } else { var set_index = parseInt(self.activeRole + 1); var postData = { "id1": self.rows[set_index].ID, "id2": self.activeKind.id }; $http.post(apiurljs.login + "g2app/pluginkinds/swapSortidByID", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); if (res.success) { self.getQueryDataList(); self.activeRole = -1; //self.getPluginData(self.unit, "0"); ///加载机构下方的人员 } else { sp.dialog(res.message); } }); } } else { sp.dialog("请先点击选择来源!"); } } //上移一位--插件 self.moveUp_plugin = function (itemdata,indexnum) { var set_index = indexnum - 2; var postData = { "id1": self.pluginArray[set_index].ID, "id2": itemdata.ID }; //console.log(postData); $http.post(apiurljs.login + "g2app/plugin/swapSortidByID", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); if (res.success) { self.getQueryDataList(); self.activeRole = -1; //self.getPluginData(self.unit, "0"); ///加载机构下方的人员 } else { sp.dialog(res.message); } }); } //下移一位--插件 self.moveDown_plugin = function (itemdata, indexnum) { var set_index = indexnum; var postData = { "id1": self.pluginArray[set_index].ID, "id2": itemdata.ID }; //console.log(postData); $http.post(apiurljs.login + "g2app/plugin/swapSortidByID", { data: s4.encryptData_CBC(JSON.stringify(postData)) }, postCfg) .success(function (obj) { var res = strToJson(s4.decryptData_CBC(obj.data)); if (res.success) { self.getQueryDataList(); self.activeRole = -1; //self.getPluginData(self.unit, "0"); ///加载机构下方的人员 } else { sp.dialog(res.message); } }); } //记录日志 self.journalRecord = function (time1, time2, title, func, url) { if (!self.CrossPage.cname) { return; } var data = { tablename: "SYS_CLICKLOG", data: { CTIME: time1 == null ? sp.getLocalDate1() : time1, TITLE: (title != "" ? self.CrossPage.cname + "/" + title : self.CrossPage.cname), REQUESTURL: url, REQUESTHEADERURL: window.location.origin, LOGTYPE: func, USERTYPE: $.cookie("GlWorkPlatform-userType"), ADMIN: $.cookie("GlWorkPlatform-userTypeEng"), CLIENTIP: sp.myIP(), PCNAME: sp.detectOS(), BROWSERNAME: sp.browser(), RESPONSETIME: time2 == null ? sp.getLocalDate1() : time2, USERID: self.userId, USERNAME: self.userCName } } $http.post(apiurljs.login + "g2app/dataabase/insertFormData", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg) .success(function (res) { }) } //用来保存当前编辑图片的地址 self.pluginUpload_view = false; self.nowImgUrl = ""; //打开截图收藏框 self.joinItem = function () { self.pluginUpload_view = true; //sp.layer('#layer_fav', 1); $("#imgUpload").blur(); $("#imgUpload").val(""); self.nowImgUrl = ""; //每次打开截图层初始化截图窗口 var image = document.querySelector('#image'); cropper = new Cropper(image, { aspectRatio: 16 / 9, viewMode: 1, scalable: false, minCropBoxWidth: 64, minCropBoxHeight: 36, autoCrop: true, fillColor: "#fff", }); } self.closeImgLayer = function () { self.nowImgUrl = ""; $("#imgUpload").blur(); $("#imgUpload").val(""); self.pluginUpload_view = false; cropper.destroy(); } self.saveData = function () { var cas = cropper.getCroppedCanvas(); var base64url = cas.toDataURL('image/png'); //console.log(base64url); //生成base64图片的格式 self.info.imagesmall = base64url; self.pluginUpload_view = false; $timeout(function () { self.nowImgUrl = ""; $("#imgUpload").blur(); $("#imgUpload").val(""); cropper.destroy(); },10) } self.reset = function () { if (self.nowImgUrl != '') { cropper.reset(); } } self.zoomOut = function () { if (self.nowImgUrl != '') { cropper.zoom(0.1); } } self.zoomIn = function () { if (self.nowImgUrl != '') { cropper.zoom(-0.1); } } self.clear = function () { if (self.nowImgUrl != '') { self.nowImgUrl = ""; $("#imgUpload").blur(); $("#imgUpload").val(""); cropper.replace(" ", false); } } }]); function imgChange(e) { var files = document.getElementById('imgUpload').files; if (files[0].size > 1 * 1024 * 1024) { alert("上传图片不得超过1MB"); return; } var dom = $("input[id^='imgUpload']")[0]; var reader = new FileReader(); reader.onload = (function (file) { return function (e) { // //把图片路径复制到angular控件中 angular.element(document.getElementById('app')).scope().ctl.nowImgUrl = this.result; angular.element(document.getElementById('app')).scope().$apply(); $("#image").prop("src", this.result); //console.log(cropper); cropper.replace(this.result, false); }; })(e.target.files[0]); reader.readAsDataURL(e.target.files[0]); } document.body.addEventListener('paste', function (event) { if (!$("#layer_fav").is(":hidden")) { var items = (event.clipboardData || window.clipboardData).items; var file = null; var fileSize = 0; if (items && items.length) { //搜索剪切板items 只取第一个 let first = items[0]; if (first.type.indexOf('image') !== -1) { file = items[0].getAsFile(); fileSize = file.size; } } else { alert('当前浏览器不支持'); return; } if (!file) { //alert('粘贴内容非图片'); return; } if (fileSize > 1 * 1024 * 1024) { alert('粘贴图片大小不得超过1MB'); return; } // 此时file就是我们的剪切板中的图片对象 // 如果需要预览,可以执行下面代码 var reader = new FileReader() reader.onload = function (event) { // //把图片路径复制到angular控件中 angular.element(document.getElementById('app')).scope().ctl.nowImgUrl = this.result; angular.element(document.getElementById('app')).scope().$apply(); $("#image").prop("src", this.result); cropper.replace(this.result, false); } reader.readAsDataURL(file); } else { } });